] Greetings from [consumer-1] [1532099804] Greetings from [consumer-2] [1532099804] Greetings from [consumer -3] [1532099805] [consumer-3] got event from fd-4 [1532099805] [consumer-3] got event from fd-5 [1532099806 -3] got event from fd-4 [1532099808] [consumer-3] got event from fd-5 ^C 结果符合预期(附:源码链接) 注意,推荐在eventfd -3] got event from fd-4 [1532099144] [consumer-3] got event from fd-5 [1532099147] [consumer-3] got event from fd-4 [1532099147] [consumer-3] got event from fd-5 [1532099150] [consumer-0] got event from fd-
tag-service,,,] 1 --- [ntainer#2-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer tag-service,,,] 1 --- [ntainer#2-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer tag-service,,,] 1 --- [ntainer#2-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer tag-service,,,] 1 --- [ntainer#2-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer
-3] 7[1532099805] [consumer-3] got event from fd-4 8[1532099805] [consumer-3] got event from fd-5 -3] got event from fd-4 14[1532099808] [consumer-3] got event from fd-5 15^C 结果符合预期(附:源码链接) 注意,推荐在eventfd [1532099143] Greetings from [consumer-0] 6[1532099143] Greetings from [producer-0] 7[1532099144] [consumer -3] got event from fd-4 8[1532099144] [consumer-3] got event from fd-5 9[1532099147] [consumer-3] got event from fd-4 10[1532099147] [consumer-3] got event from fd-5 11[1532099150] [consumer-0] got event
| consumer-2 my-group | orders-topic | 2 | 0 | 100 | 100 | consumer -3 | /127.0.0.1 | consumer-3 ``` 可以看到,consumer-3 的偏移量为 0,而 log-end-offset 是 100,说明它还没有消费任何消息。
-p5,在 kafka 中,使用了 consumer-group 且该 group 下有三个 consumer,上文中提到,kafka 支持 reblance 机制,所以当 consumer-2 与 consumer consumer-1 的消费压力,表现为如上图右半部分所示,cousumer-1 消费 topic1-p1 和 ropic1-p2,consumer-2 消费 topic1-p3 和 topic1-p4,consumer
按照上述例子来看,10/4=2,即表示每个消费者平均均摊2个queue;而10%4=2,即除了均摊之外,多出来2个queue还没有分配,那么,根据消费者的顺序consumer-1、consumer-2、consumer 最终,分摊关系如下: consumer-1:3个;consumer-2:3个;consumer-3:2个;consumer-4:2个,如下图所示: ? 这种算法最终分配的结果是: consumer-1: #0,#4,#8 consumer-2: #1, #5, # 9 consumer-3: #2,#6 consumer-4: #3,#7
线程名称 消费者 分区 消费者-0 consumer-1 topic01的分区0,topic02的分区0 消费者-1 consumer-2 topic01的分区1,topic02的分区1 消费者-2 consumer ConsumerCoordinator重新分配了消费分区: 线程名称 消费者 分区 消费者-0 consumer-1 topic01的分区1,topic02的分区1 消费者-1 consumer-2 topic01的分区2 消费者-2 consumer
nullptr, consumer_func, (void *)"Consumer-2"); pthread_create(&c3, nullptr, consumer_func, (void *)"Consumer 45 Productor-2 生产数据:78 Consumer-1 消费数据:45 Consumer-2 消费数据:78 Productor-1 生产数据:23 Productor-2 生产数据:91 Consumer -3 消费数据:23 Consumer-1 消费数据:91 Productor-1 生产数据:56 Productor-2 生产数据:88 Consumer-2 消费数据:56 Consumer-3 消费数据
-1 所有支持的分配策略为:roundrobin,rang 每个consumer都在1的基础上,给自己排最前面的投票, consumer-0投roundrobin, consumer-1投rang, consumer