Bee*_*ice 5 publish-subscribe redis node.js
我有一个有趣的难题;我使用 Redis PubSub 模式在 NodeJS 微服务网络中发出事件。我放弃了 RabbitMQ,因为我需要多播消息,以便多个微服务可以接收和处理同一事件。因此,如果我发出 LOGOUT 事件,UserService 和 WebSocketService 都应该听到它。
在我的客户端部署在每个微服务的多个实例运行的环境中之前,这种方法工作得很好。现在,给定 UserService 的 3 个实例,所有实例都连接到 Redis,并且它们都接收并处理 LOGOUT 事件,这很糟糕。
因此,一方面,我需要不同的微服务来监听事件,但另一方面,我需要防止同一微服务的重复副本全部处理该事件。摇滚,遇到困难的地方。
到目前为止,我最好的想法有点老套,但类似于:
我不喜欢这个解决方案,因为该列表将在内存中而不是在瞬态消息中不断增长。此外,我还必须开始添加代码来管理已检查的事件;否则,每个周期,所有服务的所有实例都必须再次解析整个列表。
欢迎提出想法。
| 归档时间: |
|
| 查看次数: |
2890 次 |
| 最近记录: |