gpt4 book ai didi

java - 微服务处理来自 redis pubsub 的事件

转载 作者:可可西里 更新时间:2023-11-01 11:13:06 26 4
gpt4 key购买 nike

我正在尝试创建一个微服务来监听 redis pubsub channel 并将一些事件保存到数据库中。

在我的测试用例中,我正在启动我的微服务的 2 个实例,它们都在收听同一个 channel 。

我现在面临的问题是,对于收到的每个事件,两个实例都会同时更新数据库,我想知道是否有办法阻止此操作?

比如对于每个事件都会选出一个实例来执行更新?

最佳答案

有两种消息系统:pub-subqueue。对于pub-sub系统,每个客户端处理所有事件,而对于queue系统,每个事件仅由一个客户端处理。看来您需要的是队列,而不是pub-sub

您可以使用 Redis LIST 来实现一个简单的消息传递 queue:

// producers push events into a queue
RPUSH que event1
RPUSH que event2
// push other events...

// consumers pop events from the queue
BLPOP que timeout

注意:这不是一个完美的解决方案,它有一些可靠的问题。但是,有一些基于 Redis 的开源解决方案,您无需重新发明轮子。

关于java - 微服务处理来自 redis pubsub 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42079952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com