我正在构建一个纸牌系统,并且我决定使用SSE来发布/订阅系统,以使客户保持最新状态。我面临的一个问题是保留邮件以供以后查询。一个用例是玩家加入桌面游戏。我想从当前手中获取所有事件,然后为该用户重播。
我当前正在使用redis的发布/订阅,但消息完全是短暂的。我已经对RabbitMQ进行了一些深入研究,情况似乎也是如此。 Kafka似乎有一些重播功能?不过,我无法确定它是否如我所愿。
期望我的发布/订阅层的持久性是否合理?还是应该分开逻辑?我可以让一个消费者运行以仅接收事件并将其存储。但是,这似乎很沉重,失败的机会太多。
我还想查询旧事件,以获取玩家的状态以及所玩的纸牌。但是,速度并不是这些查询的因素。
答案 0 :(得分:1)
答案 1 :(得分:1)
看看Redis Streams,它是v5以来Redis的一部分。
What are the main differences between Redis Pub/Sub and Redis Stream?
它将保留您的消息。使用消费者群体,消费者可以处在流的不同位置