标签:解决 range 排序 不同的 负载均衡 消费 总结 消息 增加
这种设计让一个topic的消息能够分散存储到多个broker服务器里的partition分区中,消费组里面的消费者又可以同时消费不同的partition分区。
解决问题:
1.实现了负载均衡(分布在多个broker上,可以同时对外提供服务)。
2.多消费者并发消费,提升kafka的吞吐量。
现有两个主题topic1、topic2,各自都有三个partition。两个消费者
[topic1_partition0,topic1_partition1,topic1_partition2]
[topic2_partition0,topic2_partition1,topic2_partition2]
TopicAndPartition(string Topic,integer Partition);
TopicAndPartition对象,多个主题整体排序
[topic1_partition0,topic1_partition1,topic1_partition2,topic2_partition0,topic2_partition1,topic2_partition2]
优点:多个消费者消费分区最多相差一个,相对均衡。
问题:consumer1可能完全被分配到Topic1,Consumer2完全消费Topic2。
总结:轮询是按照消费者组来划分的,需要保证当前消费组里面的消费者订阅同一个topic。
consumer1 消费 topic1_partition0,topic1_partition1,
consumer2消费 topic1_partition2
consumer1再消费topic2_partition0,topic2_partition1
consumer2再消费topic2_partition2
问题:consumer2消费的少
总结:范围是按照主题来划分的。
kafka默认采用的是range范围
标签:解决 range 排序 不同的 负载均衡 消费 总结 消息 增加
原文地址:https://blog.51cto.com/phpme/2515433