关于eMQTT的部署架构

一:emqtt的架构设计为:

Topic tree每台机器有副本,down机不影响数据
连接、订阅是单节点,一台down机客户端必须重连其他节点,并重新订阅相关主题。

二:官方推荐部署架构为:

典型部署结构:

LB (负载均衡 HAProxy)

LB (负载均衡器) 负责分发设备的 MQTT 连接与消息到 EMQ 集群,LB 提高 EMQ 集群可用性、实现负载平衡以及动态扩容。

部署架构推荐在 LB 终结 SSL 连接。设备与 LB 之间 TLS 安全连接,LB 与 EMQ 之间普通 TCP 连接。

私有部署推荐使用 HAProxy 作为 LB。

虽然这里没有说高可用问题,但是查haproxy的文档里haproxy是有高可用功能的。

EMQ 集群(EMQ需要以集群形式存在)

EMQ 节点集群部署在 LB 之后,建议部署在 VPC 或私有网络内。公有云厂商青云、AWS、UCloud、QCloud 均支持 VPC 网络。

EMQ 默认开启的 MQTT 服务 TCP 端口:

1883 MQTT 协议端口
8883 MQTT/SSL 端口
8083 MQTT/WebSocket 端口
8084 MQTT/WebSocket/SSL 端口

防火墙根据使用的 MQTT 接入方式,开启上述端口的访问权限。

EMQ 节点集群使用的 TCP 端口:

4369 集群节点发现端口
6369 集群节点控制通道

集群节点间如有防护墙,需开启上述 TCP 端口互访权限。

:第三方高可用+LB方案(keepalived+haproxy):

  • 架构图

  • 架构服务器规划
服务器ip 部署业务 作用
172.16.40.20 EMQTTD EMQ集群
172.16.40.21 EMQTTD EMQ集群
172.16.40.22 haproxy、keepalived HA和LB
172.16.40.23 haproxy、keepalived HA和LB
更多查看 https://www.jianshu.com/p/5c8b7c09b43e

参考:

https://developer.emqx.io/docs/broker/v2/cn/deploy.html

https://developer.emqx.io/docs/broker/v2/cn/cluster.html

https://www.jianshu.com/p/5c8b7c09b43e

 


关于eMQTT的部署架构
标签: