EMQX5.8 群组共享订阅和会话持久化的如何协调,实现类似于Kafka的消费模式,一个消费组内的多个消费者可以负载均衡,如果多个消费者都不在线期间的消息可以在server侧存储
MEQX的现状:
客户端1订阅$share/groupUserAccount/topicA
客户端2订阅$share/groupUserAccount/topicA
场景一 如果客户端1和客户端2都不做会话持久化且离线
发布消息msg1、msg2、msg3、msg4到主题topicA
5分钟后,客户端1和客户端2重新上线,则客户端1和客户端2都不会收到任何消息
场景二 如果客户端1和客户端2都会话持久化,但是客户端1未连接
发布消息msg1、msg2、msg3、msg4到主题topicA
客户端2可以收到消息msg2、msg4
5分钟后,等客户端1重新上线后,客户端1可以收到消息msg1、msg3
是否可以做到在客户端2离线期间,msg2、msg4让客户端1消费?
业务真实场景诉求:
假设消费组内的多个客户端都不在线,云端要存储消息,客户端上线后消费离线期间的消息
假设消费组内的某一个客户端不在线,其他客户端可以消费全部的消息