CC00026.kafka——|Hadoop&kafka.V11|——|kafka.v11|消费者|消费组|心跳机制.v01|

一、概念入门
### --- [kafka高级特性解析]

~~~     [消费者/消费组]  
~~~     [心跳机制]
### --- 消费者、消费组

~~~     # 消费者从订阅的主题消费消息,
~~~     消费消息的偏移量保存在Kafka的名字是__consumer_offsets 的主题中。
~~~     消费者还可以将自己的偏移量存储到Zookeeper,需要设置offset.storage=zookeeper。
~~~     推荐使用Kafka存储消费者的偏移量。因为Zookeeper不适合高并发。
~~~     # 多个从同一个主题消费的消费者可以加入到一个消费组中。

~~~     消费组中的消费者共享group_id。
~~~     configs.put("group.id", "xxx");
~~~     group_id一般设置为应用的逻辑名称。
~~~     比如多个订单处理程序组成一个消费组,可以设置group_id为"order_process"。
~~~     group_id通过消费者的配置指定: group.id=xxxxx
~~~     # 消费组均衡地给消费者分配分区,每个分区只由消费组中一个消费者消费。

~~~     一个拥有四个分区的主题,包含一个消费者的消费组。
~~~     此时,消费组中的消费者消费主题中的所有分区。并且没有重复的可能。
~~~     如果在消费组中添加一个消费者2,则每个消费者分别从两个分区接收消息。
二、如果消费组有四个消费者,则每个消费者可以分配到一个分区。
三、如果向消费组中添加更多的消费者超过主题分区数量,则有一部分消费者就会闲置,不会接收任何消息。
~~~     向消费组添加消费者是横向扩展消费能力的主要方式。
~~~     必要时,需要为主题创建大量分区,在负载增长时可以加入更多的消费者。
~~~     但是不要让消费者的数量超过主题分区的数量。
~~~     除了通过增加消费者来横向扩展单个应用的消费能力之外,
~~~     经常出现多个应用程序从同一个主题消费的情况。
~~~     此时,每个应用都可以获取到所有的消息。
~~~     只要保证每个应用都有自己的消费组,就可以让它们获取到主题所有的消息。
~~~     横向扩展消费者和消费组不会对性能造成负面影响。
~~~     为每个需要获取一个或多个主题全部消息的应用创建一个消费组,
~~~     然后向消费组添加消费者来横向扩展消费能力和应用的处理能力,则每个消费者只处理一部分消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值