-1

目前,我有一个 redis 流,它产生了许多条目。我想并行处理流,但要确保每个条目只处理一次我搜索了关于 redis stream的官方文档。似乎消费者群体是一种解决方案。

所以我尝试创建一个消费者组,并让该组中的多个消费者并行消费相同的流(可能是不同服务器上的多个消费者实例或同一服务器上的多个线程)。

Redis 消费者组能否保证并行运行的多个消费者从同一个流中消费不同的独占子集,以确保每个条目只处理一次?如果可以保证,对于每个消费者,从流中读取时,xreadgroup group mygroup consumer1 [count 1000] streams mystream >就够了吗?

4

1 回答 1

0

是的。组中的每个消费者都读取流条目的互斥子集。每条消息都将由单个消费者处理 - 已阅读它的消费者 - 除非它是XCLAIMed

只有一次是完全不同的事情。由消费者来确保这一点。

于 2021-11-22T11:17:45.267 回答