物联网级消息中间件EMQ

1.EMQX 简介

EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。

EMQ官网:https://www.emqx.cn/

为什么选择EMQ X ?从支持 MQTT5.0、稳定性、扩展性、集群能力等方面考虑,EMQX 的表现应该是最好的。

图片[1]-物联网级消息中间件EMQ-不念博客

EMQX的特点

  • EMQ X 目前为开源社区中最流行的 MQTT 消息中间件;
  • EMQ X 是开源社区中第一个支持 5.0协议规范的消息服务器,并且完全兼容 MQTT V3.1 和 V3.1.1 协议。
  • 除了 MQTT 协议之外,EMQ X 还支持MQTT-SN、CoAP、 LwM2M、LoRaWAN 和 WebSocket 等物联网协议
  • 单机支持百万连接,集群支持千万级连接;毫秒级消息转发。
  • 易于安装和使用;
  • 中国本地的技术支持服务;
  • 扩展模块和插件,EMQ X 提供了灵活的扩展机制,支持企业的一些定制场景;
  • 桥接
  • 共享订阅

2.环境搭建与配置

Docker 运行与安装

拉取emqx镜像

[root@docker emqx]# docker pull emqx/emqx:v4.1.0

创建emqx容器

[root@docker emqx]# docker run -tid --name emqx -p 1883:1883 -p 8083:8083 -p 8081:8081 -p 8883:8883 -p 8084:8084 -p 18083:18083  emqx/emqx:v4.1.0
图片[2]-物联网级消息中间件EMQ-不念博客

EMQ X 目录结构

3.EMQDashboard

EMQ X 提供了 Dashboard 以方便用户管理设备与监控相关指标。

通过 Dashboard可以查看服务器基本信息、负载情况和统计数据,可以查看某个客户端的连接状态等信息甚至断开其连接,也可以动态加载和卸载指定插件。

访问地址 http://192.168.150.102:18083 来查看Dashboard,**默认用户名是 admin,密码是 public*

图片[3]-物联网级消息中间件EMQ-不念博客
图片[4]-物联网级消息中间件EMQ-不念博客
图片[5]-物联网级消息中间件EMQ-不念博客

4.客户端调试工具MQTTX

MQTT X 是 EMQ 开源的一款优雅的跨平台 MQTT 5.0 桌面客户端,它支持 macOS, Linux, Windows。

MQTT X 的 UI 采用了聊天界面形式,简化了页面操作逻辑,用户可以快速创建连接,允许保存多个客户端,方便用户快速测试 MQTT/MQTTS 连接,及 MQTT 消息的订阅和发布。

图片[6]-物联网级消息中间件EMQ-不念博客

5.延迟消息

EMQ X 的延迟发布功能可以实现按照用户配置的时间间隔延迟发布 PUBLISH 报文的功能。模块开启emqx_mod_delayed

延迟发布主题的具体格式如下:

$delayed/{DelayInterval}/{TopicName}

– 使用delayed 作为主题前缀的消息都将被视为需要延迟发布的消息。

– {DelayInterval}: 指定该 MQTT 消息延迟发布的时间间隔,单位是秒,允许的最大间隔是 4294967 秒。

– {TopicName}: MQTT 消息的主题名称。

1.在Websocket上订阅主题:t2/a

2.在Websocket上发布消息主题:topic:  $delayed/10/t2/a

观察运行效果

图片[7]-物联网级消息中间件EMQ-不念博客

6.共享订阅

不带群组的共享订阅

格式:

$queue/{TopicName}
图片[8]-物联网级消息中间件EMQ-不念博客
图片[9]-物联网级消息中间件EMQ-不念博客

带群组的共享订阅

格式:

$share/<group-name>/{TopicName}
图片[10]-物联网级消息中间件EMQ-不念博客
© 版权声明
THE END