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

 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(21)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示