【问题标题】:Kafka Consumers Work QueueKafka 消费者工作队列
【发布时间】:2015-01-26 09:32:06
【问题描述】:

我们在 SOA 应用程序中有以下场景。 ServiceA 产生一些需要由 ServiceB 的实例异步处理的作业。本质上,这转化为一个工作队列问题,其中每个工作人员都是 ServiceB 的一个实例。我们使用 Kafka 作为消息代理,并具有以下设置。

5 个经纪人 B1、B2、B3、B4 和 B5。有一个 topic(A) 有 10 个分区 (P1,P2,....P10),每个分区的复制因子为 3。假设分区分配如下 P(i) 有 B(i) 作为领导者,并且B(i+1) 和 B(i+2) 作为副本。

有 3 个 ServiceB 实例正在运行。有了这个设置,我们应该如何使用 High Level Consumer API 来实现 C1 从 3 个分区消费的消费模型; C2 来自 3 个分区;来自剩余 4 个分区的 C3

【问题讨论】:

    标签: message-queue producer-consumer apache-kafka worker kafka-consumer-api


    【解决方案1】:

    您无法使用高级消费者将事物控制到这个级别。

    如果消费者 C1、C2 和 C3 属于同一消费者组(即具有相同的 group.id),则高级消费者将尝试平衡它们之间的分区。您最终应该有 2 个消费者,每个消费者从 2 个分区消费,一个从 4 个分区读取。但是你不能控制细节。

    如果您需要更好地控制哪个消费者获得多少分区,您需要使用简单的消费者 API 自己完成。

    【讨论】:

      猜你喜欢
      • 2013-05-08
      • 2018-12-24
      • 2022-01-04
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多