1、kafka中偏移量的维护
1.1 、kafka 中存在一个__consumer_offsets topic 是专门维护所有topic的偏移量,这个topic下面有很多个分区(默认情况下__consumer_offsets有50个分区),每个topic下的分区节点维护在zk中
进入zk
ls /broker/topics //可以看到kafka下所有的topic
__consumer_offsets //这个topic下面
这个topic下面有50个分区
每个分区的leader不同,并不是只有一个leader维护这个topic,每个partion都有各自的leader
2、topic过多导致性能问题
topic过多,导致分区过多,kafka中主要是会受分区数量的影响;
每个Partition都有一个ISR(ISR全称是“In-Sync Replicas”,也就是保持同步的副本,他的含义就是,跟Leader始终保持同步的Follower有哪些。),这个ISR里一定会有Leader自己,因为Leader肯定数据是最新的,然后就是那些跟Leader保持同步的Follower,也会在ISR里。
3、Kafka单集群能够支持多少分区呢?
确切的数字自然依赖于诸如可容忍的不可用窗口时间、Zookeeper延时、broker存储类型等因素。根据经验法则我们评估单台broker能够支撑的分区数可达4000个,而单集群能够支撑200000个分区。当然后者主要受限于集群对controller崩溃这种不常见情形的容忍度,另外其他影响分区数的因素也要考虑进来。
如下链接是说明kafka与分区数量的关系影响
参考链接:https://www.confluent.io/blog/apache-kafka-supports-200k-partitions-per-cluster/
翻译链接:https://www.cnblogs.com/huxi2b/p/9984523.html