转自:https://www.cnblogs.com/cxuanBlog/p/11949238.html
1.介绍
Kafka 消费者从属于消费者群组
。一个群组中的消费者订阅的都是相同
的主题,每个消费者接收主题一部分分区的消息。
图1
上图中,左图为两个消费者消费4个分区,如果在某些环境下比如用户产生消息特别多的时候,生产者产生的消息仍旧让消费者吃不消,那就继续增加消费者。右图为增加后,4个消费者。可以通过增加消费组的消费者来进行水平扩展提升消费能力。
这也是为什么建议创建主题时使用比较多的分区数,这样可以在消费负载高的情况下增加消费者来提升性能。另外,消费者的数量不应该比分区数多,因为多出来的消费者是空闲的,没有任何帮助。
如果应用需要读取全量消息,那么请为该应用设置一个消费组;如果该应用消费能力不足,那么可以考虑在这个消费组里增加消费者。
图2
上图中,消费者群组1和2都能够收到 T1 主题的全量消息,在逻辑意义上来说它们属于不同的应用。Kafka 一个很重要的特性就是,只需写入一次消息,可以支持任意多的应用读取这个消息。【那这样看,每个群组针对同一个分区都会有不同的偏移量来指示读取到哪了?】
2.例子
明天再来总结。