快速理解Kafka中的术语
Kafka核心功能概念
主题
kafka中主题一般用于分类,比如订单相关的一个主题,财务相关的一个主题,或者自己根据业务上的划分来进行区分,一个主题下可以划分多个分区。
分区
一般可以设置一个主题下有多个分区,每个分区内消息是顺序的,以队列的形式存放消息,消费者和分区是对应的,比如设置某个主题下分区数量为4,消费者数量为4,那么则一个分区对应一个消费者,如果分区数量大于消费者数量则会有一个消费者消费多个分区的情况,反过来分区数量小于消费者数量则会有多余的消费者处于浪费。
生产者
生产者顾名思义负责生产消息,产生的消息会根据一定的算法被放入分区队列中。
消费者
消费者通过消息拉取的方式,拉取生产者发送到kafka的消息,消费者和分区在kafka启动时就已经分配好,消费者通过订阅主题消费消息。
偏移量
偏移量是一个主题分区中的概念,每个分区中分别对应一个偏移量,偏移量是一个递增唯一的值,根据偏移量就可以记录分区当前消费到的消息的位置。
消费者群组
多个消费者组成消费者群组,生产者发送的一条消息只会被同一个消费者群组中的一个消费者消费到,但是如果希望同时被多个消费者消费到应该怎么做呢?这时候就可以设置不同的消费者群组,每种消费者群组都订阅一个主题,那么往这个主题中发送的消息,每个消费者群组就都会接收到此消息,比如主题T,有群组G1和G2订阅,而G1和G2下分别又有G1-C1,G1-C2和G2-C1,G2-C2两个分区,那么如果往主题T发送了一条消息,最终结果就是G1-C1或G1-C2收到,G2-C1或G2-C2也能收到。
消息
生产者发送的消息,会通过序列化,变成字节数组放入分区队列中。
批次
批次主要目的是为了提高效率,批次的思想主要就是将原来单条的消息变成一组消息,以提高kafka的吞吐量,减少网络IO的次数。
Broker
broker就是kafka中的服务端,生产者将消息发送到broker,消费者从broker中拉取消息,还会负责一些偏移量的设置,消息落入磁盘的持久化操作。
最后来一个简单的流程
更多推荐
所有评论(0)