最近的开发中用到MQTT协议和EMQ消息服务器,MQTT和EMQ是物联网的产物,想必会随着5G时代和万物互联的到来而逐渐火热。
# EMQ:
是一个MQTT消息服务器
### 基于 Apache 2.0 协议许可,完全开源。
EMQ X 的代码都放在 Github 中,用户可以查看所有源代码。
EMQ X 3.0 支持 MQTT 5.0 协议,是 开源社区中第一个 支持 5.0 协议规范的消息服务器,并且完全兼容 MQTT V3.1 和 V3.1.1 协议。除了 MQTT 协议之外,EMQ X 还支持别的一些物联网协议(具体请参见下文的 EMQ X Broker 产品功能介绍)。
### 单机支持百万连接,集群支持千万级连接;毫秒级消息转发。
EMQ X 中应用了多种技术以实现上述功能,
利用 Erlang/OTP 平台的软实时、高并发和容错
全异步架构
连接、会话、路由、集群的分层设计
消息平面和控制平面的分离等
扩展模块和插件,EMQ X 提供了灵活的扩展机制,可以实现私有协议、认证鉴权、数据持久化、桥接转发和管理控制台等的扩展
桥接:EMQ X 可以跟别的消息系统进行对接,比如 EMQ X Enterprise 版本中可以支持将消息转发到 Kafka、RabbitMQ 或者别的 EMQ 节点等
共享订阅:共享订阅支持通过负载均衡的方式在多个订阅者之间来分发 MQTT 消息。比如针对物联网等数据采集场景,会有比较多的设备在发送数据,通过共享订阅的方式可以在订阅端设置多个订阅者来实现这几个订阅者之间的工作负载均衡
### MQTT:
MQTT 是 Message Queuing Telemetry Transport(消息队列遥测传输)的缩写,是 IBM 开发的一个即时通讯协议,它比较适合于在低带宽、不可靠的网络的进行远程传感器和控制设备通讯等,正在日益成为物联网通信协议的重要组成部分。
基于发布 / 订阅范式的 “轻量级” 消息协议(头部 2 字节)
专为资源受限的设备、低带宽占用高延时或者不可靠的网络设计,适用于 IoT 与 M2M
基于 TCP/IP 协议栈
事实的 IoT 通讯的标准协议
该协议于 1999 年由