之前在Windows服务器上安装部署RabbitMQ3.8,今天又双叒叕换了软件,叫MQTT,首先先了解下软件,RabbitMQ : 是一个支持AMQP协议的消息中间件,用于在多个应用程序之间传递消息。它有助于分发任务,协调过程,实现异步通信,而MQTT : 是一种轻量级的发布/订阅消息协议,用于在网络连接的设备之间传递消息数据。它使用基于可移植的文本协议,可以节约带宽和电力,帮助物联网开发人员在受限网络中运行应用程序。
rabbitmq和mqtt区别
传输协议不同:RabbitMQ采用AMQP协议,而MQTT采用MQTT协议。
投递策略不同:RabbitMQ支持各种投递策略,包括可靠性投递、事务投递、穿透投递、发布订阅等,而MQTT只支持发布订阅模式。
安全性不同:RabbitMQ支持SSL安全传输,而MQTT则不支持。
消息分发能力不同:RabbitMQ支持消息路由、分组多队列分发,MQTT支持多主题广播分发。
性能不同:RabbitMQ的性能要比MQTT高,支持更多的功能,支持更多的消息分发策略。
了解完程序就开始安装吧,在CentOS上安装和部署MQTT通常意味着安装一个MQTT代理(broker),安装步骤如下:
添加EPEL仓库
Mosquitto可能不在CentOS默认的Yum仓库中,因此需要先添加EPEL(Extra Packages for Enterprise Linux)仓库。
代码语言:javascript复制sudo yum install -y epel-release
更新Yum包索引: 添加了新的仓库后,更新Yum包管理器的索引。
代码语言:javascript复制sudo yum update
在安装过程中会提示:有2个软件包,升级41个软件包等信息,总下载大小:230 M
询问是否需要,[y/d/N]:直接【y】即可,如图:
安装Mosquitto:
使用Yum安装Mosquitto及其客户端。
代码语言:javascript复制sudo yum install -y mosquitto
配置Mosquitto
启动Mosquitto服务: 安装完成后,启动Mosquitto服务。
代码语言:javascript复制sudo systemctl start mosquitto
设置开机自启: 如果希望在系统启动时自动启动Mosquitto服务,可以设置开机自启。
代码语言:javascript复制sudo systemctl enable mosquitto
检查服务状态: 确认Mosquitto服务正在运行。
代码语言:javascript复制sudo systemctl status mosquitto
如图“active”表示运行状态,没有问题。
关闭匿名登录:编辑【/etc/mosquitto/mosquitto.conf】文件,设置【allow_anonymous false】,如图:
设置认证:使用mosquitto_passwd命令生成用户名和密码,并在mosquitto.conf文件中指定密码文件。
代码语言:javascript复制mosquitto_passwd -c /etc/mosquitto/passwd.conf user
注意:-c参数会创建新文件,如果文件已存在,则使用-b参数添加新用户。
开放端口: MQTT默认使用1883端口,确保防火墙已开放此端口。
代码语言:javascript复制firewall-cmd --zone=public --add-port=1883/tcp --permanentfirewall-cmd --reload
测试MQTT
发布消息:
代码语言:javascript复制mosquitto_pub -h localhost -t test -m "hello world" -u "user" -P "password"
订阅消息:
代码语言:javascript复制mosquitto_sub -h localhost -t test -u "user" -P "password"
注意事项
确保在安装和配置过程中遵循官方文档和最佳实践。根据实际需求调整MQTT代理的配置,如端口号、认证方式等。在生产环境中,务必确保MQTT代理的安全性,包括使用强密码、限制访问IP等。好了,配置完成,有问题留言反馈~