集群之间路由消息

ubuntu 20.04
通过apt安装 emqx5.6.0

安装了2个节点服务,节点A和节点B,也把两个节点join成集群了。

问题:
代码中连接的节点A,并订阅的$share/msg/server来接收消息,

然后用客户端连接的节点B,并向server发送消息,代码中连接了节点A的客户端收不到消息。这个是正常的吗?

如果用客户端连接节点A,并向server发送消息是正常的。

  1. 检查下非共享订阅是否能收消息
  2. 如果1可以,那看下还有其他人也订阅这个共享订阅的主题。因为同时只有一个订阅端可以收到

非共享订阅也不行。

还是只能同节点的接收到。

import asyncio
from aiomqtt import Client
async def a():

    async with Client(hostname="192.168.5.201", port=1883,
                  username="qwer", password="123456") as client:
        await client.subscribe("test")
        async with client.messages() as messages:
            async for message in messages:
                print(message.payload)
if __name__ == '__main__':
    asyncio.run(a())
import asyncio

from aiomqtt import Client

async def a():

    async with Client(hostname="192.168.5.202", port=1883,
                  username="qwer", password="123456") as client:
        await client.publish(topic=f"test", payload='qwer')

if __name__ == '__main__':
    asyncio.run(main())

如果用5.201给topic="test"发就可以收到,202不行

我把两台上的emqx都卸载,从5.6.0降到5.3.0后,正常了。

我在重装下5.6.0试试

5.6.0重装之后也正常了。

貌似是因为之前一个是docker的emqx,另一个是apt下载的emqx,这样的组合组成集群的时候dashboard开关某些请求的时候会有报错,后来把docker换成了apt的,没报错了,但是不能路由消息, 重装后解决。 感觉像是节点之间同步配置有问题?