Kafka-topicCountMap
本文转自聊聊kafka0.8的topic的partition以及topicCountMap
topicCountMap
告诉Kafka我们在Consumer中将用多少个线程来消费该topic。topicCountMap的key是topic name,value针对该topic是线程的数量。
假设有个topic,有6个partiton,然后启动了两个consumer,每个consumer的topicCount为3,则观察会发现,每个consumer的消费线程都在运行;
如果每个consumer的topicCount变为4,则会发现,先启动的consmer中4个线程都在运行,而后启动的consumer中只有2个线程在运行,其他2个被阻塞住了。
也就是说,对于consumer来说,实际的消费个数=consumer实例个数 * 每个consumer的topicCount个数,如果这个值>partition,则会造成某些消费线程多余,阻塞住。
如果这个值<=partition,则所有消费线程都在消费。
因此实际分布式部署consumer的时候,其consumer实例个数 * 每个consumer的topicCount个数<=topic的partition值。