粘性会话负载均衡 - MQTT Broker 集群详解(二)

本文将通过在 EMQ X 4.3 集群前面配置 HAProxy 负载均衡器,带读者亲自体验如何充分利用粘性会话实现负载均衡。

详细内容请至 EMQ 官网博客查看:粘性会话负载均衡 - MQTT Broker 集群详解(二) | EMQ

请问基于 基于HAProxy 做emqx集群的负载均衡,来保持粘性会话,对emqx集群来说有什么具体的好处吗?是否对提升整体emqx性能有帮助。并且,文中提到:’会话接管应该对客户端完全透明,但它是有代价的,尤其是当有很多消息需要处理时’ 如果不保持黏性会话导致会话接管是有代价的,这个代价具体是指的什么?可否举出具体的例子呢。非常感谢您的解答。

这个代价是指当客户端两次连接,连接到集群中不同节点时,当前接入的节点需要从老节点接管会话,这里主要是需要把客户端离线期间的消息从老节点迁移到新节点上,再由新节点把这些消息下发给客户端。迁移的这个过程需要占用 CPU 和网络带宽。

而粘性会话指的是可以让客户端再次连接时连接到原来的节点上去,避免了接管流程。

如果客户端的Clean Session 设置为true或者客户端的消息qos仅为0,对应的消息应该就不会在broker上持久化了,这样是否还会发生消息从节点间迁移的操作,会话接管的代价也就不存在了吧。非常感谢您的解答。

没有持久会话自然就没有会话接管了

感谢解答