emqx客户端集群容器化部署的情况下,我该怎么让clientid固定指定不变那

emqx客户端集群容器化部署的情况下,我该怎么让clientid固定指定不变那

没有太理解问题…

  1. emqx”客户端““集群”“容器化”部署 是指什么意思呢?
  2. clientid 是客户端指定的。所以只要代码里自动一个确定的值就可以了

我的意思是client端用同一套代码作为集群的多个节点,那多个节点的clientid就会重复
容器化部署的又不能使用ip+端口去作为clientid

  1. 可以用环境变量
  2. 或者使用固定的前缀+随机的生成的后缀

但是需求需要固定 clientid 来保持会话,随机后缀肯定不行,环境变量的话不能保证每个节点 clientid 的唯一性,也会加大部署的复杂度

一般推荐是使用设备 ID 做为 clientid 的,得找一个与设备绑定不变的标识。

设备端 client 是有各自的设备编号作为 clientid ,这个没问题,,,问题是现在服务端 client 是集群多节点部署,这个 clientId 比较难固定,服务端 client 是用来处理设备端上报的消息的

如果需要多个 subcribe 端处理同类 topic 的消息。可以了解一下共享订阅这个功能。

我觉得你没理解我的意思。。

抱歉,误解了。我刚才又仔细看了一次,
是不是多台设备是一个集群,他们每台机器都想上来订阅一个 topic,然后消费消息。
如果还是不对,麻烦能展开说说么?
实在抱歉…