我们使用k8s搭建了2节点的emqx集群,发现两个集群节点之间订阅的消息不能同步。
客户端1连接到节点A,客户端2连接到节点B,客户端1正确订阅了topic,但是收不到客户端2发送到该topic上的消息
通过如下命令查看两个节点的数据库:
%% 定义一个匿名函数来遍历并打印表中的所有记录
Fun = fun() →
mnesia:foldl(
fun(Record, Acc) →
io:format(“~p~n”, [Record]),
[Record | Acc]
end,
,
emqx_route
)
end.
%% 执行事务
{atomic, Result} = mnesia:transaction(Fun).
发现,两个节点的topic路由不一致,节点B上少了节点A订阅的topic信息,导致集群节点之间无法正确同步消息。
以上问题,存在概率性。
请问,可能是什么原因?