VerneMQ 集群化操作
VerneMQ 集群化操作
创建时间:2024-08-19 05:30:23
https://docs.vernemq.com/vernemq-clustering/introduction
VerneMQ 使用 4369 和 25672 端口进行节点间通信
1. 修改配置
vi /etc/vernemq/vernemq.conf
listener.vmq.clustering = 10.0.0.100:44053
nodename = VerneMQ@10.0.0.100
listener.tcp.default = 10.0.0.100:1883
listener.ssl.default = 10.0.0.100:8883
vmq_bridge.tcp.br0 = 10.0.0.100:1889
1. 获取集群状态信息
vmq-admin cluster show
1. 加入集群
vmq-admin cluster join discovery-node=
1. 离开集群
vmq-admin cluster leave node= (only the first step!)
第一步只会停止节点的 MQTT 监听器,以确保不接受任何新连接。它不会中断现有连接,并且在幕后节点不会离开集群。此时,现有客户端仍能够发布和接收消息。
这个是给一个宽限期,希望现有的客户端可以重新连接(到另一个节点)。如果您决定这段时间结束(5 分钟或 1 天后由您决定),请继续执行第 2 步:断开其余客户端的连接。
vmq-admin cluster leave node= -k
该标志将删除离开节点的 MQTT 侦听器,并关闭所有实时连接。如果这是您从一开始就想要的,您可以立即执行此操作作为第一步。-k
现在,队列迁移是由客户端重新连接到其他节点触发的。他们将声明自己的队列,并且该队列将被迁移。尽管如此,离开的节点上仍可能保留一些脱机队列,因为它们是预先存在的,或者因为某些客户端不会重新连接并且不会回收其队列。
如果在可配置的超时后仍有剩余的离线队列,VerneMQ 将抛出异常。默认值为 60 秒,但您可以将其设置为集群离开命令的一个选项。一旦异常显示在控制台或console.log中,您实际上可以重试集群离开命令(包括设置迁移超时 () 和以秒为单位的间隔 (),指示应将迁移进度信息打印到console.log的频率):-t-i
vmq-admin cluster leave node= -k -i 5 -t 120
在执行集群离开时,最好将 -f 结尾 VerneMQ console.log以查看队列迁移进度。
已离开集群的节点被视为已死亡。如果您想将该节点重用为单节点代理,则必须(备份 & 重命名 &)删除整个 VerneMQ 目录并从新目录开始。(它将由 VerneMQ 在启动时自动创建)。data
否则,当您重新启动该节点时,该节点将开始查找其旧的集群对等体。