单机的 MQTT 服务在高可用上是得不到保证的,接下来看看,如何集群部署
emqx 部署集群存在两种方式,静态部署和动态部署,考虑到会因需横向扩充,动态部署更适合。
单机部署的方式即可,具体步骤可以参考搭建 EMQX 的 MQTT 服务
虚拟机 A(IP:XXX.XXX.XXX.3)
虚拟机 B(IP:XXX.XXX.XXX.5)
2.1 配置虚拟机 B
修改虚拟机 B 的 emqx.conf, 配置节点名
cd /etc/emqx/
sudo gedit emqx.conf
修改如下内容
allow_anonymous = false
name = "emqx@XXX.XXX.XXX.5" # 虚拟机 B 的 IP
重启虚拟机 B
emqx 5.0 好像是不支持 restart 命令了,可以先 stop 再 start
2.2 配置虚拟机 A
修改虚拟机 A 的 emqx.conf, 配置节点名
cd /etc/emqx/
sudo gedit emqx.conf
新增如下内容
allow_anonymous = false
name = "emqx@XXX.XXX.XXX.3" # 虚拟机 A 的 IP
重启虚拟机 A
为虚拟机 A 的 emqx 服务添加节点
sudo emqx_ctl cluster join emqx@XXX.XXX.XXX.5
添加成功后会有如下提示
也可以使用 emqx_ctl cluster status 查看集群状态
sudo emqx_ctl cluster status
通过虚拟机 A 上的 emqx 服务的管理端也可以验证集群部署是否成功
使用在线测试工具进行验证。
开两个测试网页,分别连接集群内不同的节点,连接虚拟机 B 的节点(XXX.XXX.XXX.5)的网页发送数据,连接虚拟机 A 的节点(XXX.XXX.XXX.3)的网页可以收到数据。