我们在SOA应用程序中有以下场景。 ServiceA生成一些需要异步处理ServiceB实例的作业。从本质上讲,这会转换为工作队列问题,其中每个工作者都是ServiceB的一个实例。我们使用Kafka作为消息代理,并进行以下设置。
5经纪人B1,B2,B3,B4和B5。有一个主题(A)有10个分区(P1,P2,...... P10),每个分区的复制因子为3.让我们假设分区分配如下P(i)有B(i)作为领导者和B(i + 1)和B(i + 2)作为复制品。
有3个ServiceB运行实例。鉴于此设置,我们应该如何使用高级消费者API来实现消耗模型C1消耗3个分区; C2来自3个分区;其余4个分区中的C3
答案 0 :(得分:0)
您无法使用高级消费者控制此级别。
如果消费者C1,C2和C3属于同一个消费者群体(即具有相同的group.id),则高级别消费者将尝试平衡它们之间的分区。您最终应该有2个消费者,每个消费者从2个分区消耗,一个消息从4个分区读取。但是,您无法控制细节。
如果您需要更多地控制哪个消费者获得了多少个分区,您需要使用简单的消费者API自行完成。