前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在CentOS服务器使用Mosquitto安装和部署MQTT

在CentOS服务器使用Mosquitto安装和部署MQTT

原创
作者头像
李洋博客
发布2024-08-19 10:20:05
4560
发布2024-08-19 10:20:05
举报
文章被收录于专栏:李洋博客

之前在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】即可,如图:

在CentOS服务器使用Mosquitto安装和部署MQTT 第1张
在CentOS服务器使用Mosquitto安装和部署MQTT 第1张

安装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”表示运行状态,没有问题。

在CentOS服务器使用Mosquitto安装和部署MQTT 第2张
在CentOS服务器使用Mosquitto安装和部署MQTT 第2张

关闭匿名登录:编辑【/etc/mosquitto/mosquitto.conf】文件,设置【allow_anonymous false】,如图:

在CentOS服务器使用Mosquitto安装和部署MQTT 第3张
在CentOS服务器使用Mosquitto安装和部署MQTT 第3张

设置认证:使用mosquitto_passwd命令生成用户名和密码,并在mosquitto.conf文件中指定密码文件。

代码语言:javascript
复制
mosquitto_passwd -c /etc/mosquitto/passwd.conf user

注意:-c参数会创建新文件,如果文件已存在,则使用-b参数添加新用户。

在CentOS服务器使用Mosquitto安装和部署MQTT 第4张
在CentOS服务器使用Mosquitto安装和部署MQTT 第4张

开放端口: 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等。好了,配置完成,有问题留言反馈~

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • rabbitmq和mqtt区别
  • 添加EPEL仓库
  • 安装Mosquitto:
  • 配置Mosquitto
  • 测试MQTT
  • 注意事项
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档