上下文:
我确实有一个看起来像这样的PUBSUB系统:
Client -- PUB on Topic A/1 ---> MQTT Broker <--- SUB on A/# -- SERVER A
一个容器正在SERVER A上运行,用于发布处理内容, 通信使用TLS 1.2和QoS 2完成。一切正常。
进化:
为了实现负载平衡,我计划添加SERVER B和SERVERC。为了更加方便,将SERVER A,B和C部署在SWARM中。
Client -- PUB on Topic A/1 ---> MQTT Broker <--- SUB on A/# -- SERVER A
<--- SUB on A/# -- SERVER B
<--- SUB on A/# -- SERVER C
想法1:
想法仅处理一次消息。 当时我以为QoS = 2将对我有帮助,因为我认为消息将由SERVER A,B或C处理。服务器A,B和C上的分布式证书是相同的。
运行此命令,服务器A,B和C正在接收消息。
结论:QoS = 2确保订户只收到一次消息。
想法2:
我认为这可能是由于所有服务器上的证书相同。 与1相同,不同之处在于,已经为每个服务器A,B和C生成了唯一的具有相同名称的证书。
运行此命令,服务器A,B和C正在接收消息。
结论:在这种情况下,QoS不会帮助我。
想法3 :(尚未测试)
在8883端口(前端)上使用HAProxy,然后分派到后端(服务器A,B和C)
问题:
有人可以给我一些有关如何正确执行此操作的见解吗?
关于, 皮埃尔