【问题标题】:Can Redis consumer group guarantee that multi-consumers running parallelly consume different exclusive subset from the same stream?Redis消费者组能否保证并行运行的多个消费者从同一个流中消费不同的独占子集?
【发布时间】:2021-12-31 18:12:45
【问题描述】:

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

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

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

【问题讨论】:

    标签: redis redis-streams


    【解决方案1】:

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

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

    【讨论】:

    • 即使在多消费者并行运行的情况下,仍然保证互斥子集?
    • 是的,这就是消费者组功能首先出现的原因:)
    猜你喜欢
    • 2019-06-10
    • 2016-04-12
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多