天天看点

CentOS7.9安装mqtt消息中间件mosquitto

MQTT(MQ Telemetry Transport),消息队列遥测传输协议,轻量级的发布/订阅协议, 适用于一些条件比较苛刻的环境,进行低带宽、不可靠或间歇性的通信。目前已经是物联网消息通信事实上的标准协议了。值得一提的是mqtt提供三种不同质量的消息服务。

1).“至多一次”:消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
2).“至少一次”:确保消息到达,但消息重复可能会发生。
3).“只有一次”:确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。      

基于MQTT(但不仅限于)开源消息代理中间件(Brokers/servers),又有测试客户端,看了几个代理中间件,也百度了一下,应用比较多的有ActiveMQ、Apollo、Mosquitto等。先选择一个没那么复杂的Mosquitto来尝尝鲜。Mosquitto是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。

安装:(参考官网 ​​http://mosquitto.org/download/​​)

1.安装

(1).添加EPEL软件库
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm      

查看安装结果

[root@localhost ~]# yum repolist all | grep enabled
base/7/x86_64                 CentOS-7 - Base                    enabled: 10,070
epel/x86_64                   Extra Packages for Enterprise Linu enabled: 13,426
extras/7/x86_64               CentOS-7 - Extras                  enabled:    413
updates/7/x86_64              CentOS-7 - Updates                 enabled:  1,112
[root@localhost ~]#       
(2).安装 mosquitto

查找 mosquitto 软件包

yum list all | grep mosquitto      

查看 mosquitto 信息

[root@localhost ~]# yum info mosquitto
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * epel: hkg.mirror.rackspace.com
 * extras: mirrors.ustc.edu.cn
 * updates: mirrors.aliyun.com
Installed Packages
Name        : mosquitto
Arch        : x86_64
Version     : 1.6.10
Release     : 1.el7
Size        : 748 k
Repo        : installed
From repo   : epel
Summary     : An Open Source MQTT v3.1/v3.1.1 Broker
URL         : http://mosquitto.org/
License     : BSD
Description : Mosquitto is an open source message broker that implements the MQ Telemetry
            : Transport protocol version 3.1 and 3.1.1 MQTT provides a lightweight method
            : of carrying out messaging using a publish/subscribe model. This makes it
            : suitable for "machine to machine" messaging such as with low power sensors
            : or mobile devices such as phones, embedded computers or micro-controllers
            : like the Arduino.

[root@localhost ~]#       
yum install mosquitto      
[root@localhost ~]# yum list installed | grep mosquitto
mosquitto.x86_64                     1.6.10-1.el7                   @epel       
[root@localhost ~]#       

2.测试 mosquitto

(1).启动 mosquitto 主程序 会话1
[root@localhost ~]# mosquitto
1597721219: mosquitto version 1.6.10 starting
1597721219: Using default config.
1597721219: Opening ipv4 listen socket on port 1883.
1597721219: Opening ipv6 listen socket on port 1883.      
(2).启动订阅 会话2
mosquitto_sub -t rimelink      
(3).启动发布 会话3
mosquitto_pub -t rimelink -h localhost -m "hello,zhangsan"
mosquitto_pub -t rimelink -h localhost -m "hi,lisi"      
(4).查看结果 会话2
[root@localhost ~]# mosquitto_sub -t rimelink
hello,zhangsan
hi,lisi      

继续阅读