前言
在上一篇,我们谈到了从生产者一端,kafka是基于何种策略,将消息推送到集群下topic的不同分区中,可以使用kafka自带的分区策略,也可以根据自身的业务定制消息推送的分区策略
而从消费者一端来看,consumer连接到kafka集群之后,是基于什么样的分区策略进行消息消费的呢?
kafka消息消费原理
如上图所示,kafka的设计架构让它从开始就为分布式而生,上图是一个简单的消息消费示意图,我们知道,一个topic下可以设置多个分区,每隔分区又可以设置多个副本
消费者从topic拉取消息的时候,实际上就是从topic下的各个分区获取消息,在实际应用中,为提升和最大化发挥kafka的吞吐量和整体性能,在设计消费端的程序时,往往通过设置消费者组,通过消费者组中的多个消费者共同去消费分区中的数据
这样做的好处很明显,提升了整体消费的效率,由于kafka往往应用在数据量非常大的场景中,单个消费者肯定很难支撑kafka每秒上万的消息投递量,通过设置消费者组就可以达到高速消