java多实例消费kafka_Kafka:多个实例中的单个消费者群体

Daniccan..

8

首先解释消费者和消费者群体的概念,

消费者使用消费者组名称标记自己,并且发布到主题的每个记录被传递到每个订阅消费者组中的一个消费者实例.

记录将在消费者组中的消费者实例上进行有效负载平衡.如果所有消费者实例具有不同的消费者组,则每个记录将广播到所有消费者进程.

在Kafka中实现消费的方式是通过在消费者实例上划分日志中的分区,以便每个实例在任何时间点都是分配的"公平份额"的独占消费者.如果新实例加入该组,他们将从该组的其他成员接管一些分区; 如果实例死亡,其分区将分发给其余实例.

现在回答你的问题,

1.我不希望一个实例使用另一个实例消耗的相同消息.但是如果一个实例发生故障,其他三个实例应该能够处理所有消息.

默认情况下,这在Kafka架构中是可行的.您只需使用相同的使用者组名称标记所有4个实例.

2.我应该为每个实例使用10个线程的同一个消费者组吗?

这样做会为每个线程分配一个kafka分区,它将从中消耗数据,这是最佳的.减少线程数将负载平衡消费者实例之间的记录分布,并且可能会使某些消费者实例超载.

3.在Apache Kafka中,为什么不能有比分区更多的消费者实例?

在Kafka中,分区只能分配给一个消费者实例.因此,创建比分区更多的消费者实例将导致闲置的消费者不会消费来自kafka的任何记录.

我应该为每个实例选择不同的消费者群体吗?

不会.这将导致记录重复,因为每个记录都将发送到所有实例,因为它们来自不同的消费者群体.

希望这能澄清你的疑虑.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值