kafka中的术语解释

1、broker

集群中的节点为broker。broker存储topic的数据,如果某个topic有N个partition,集群有(N+M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。如果topic有N个partition,集群中broker的数量少于N,则出现至少一个partition存储该topic的多个partiton。在实际生产中,这种情况容易导致kafka集群数据不均衡,应避免该情况的发生。


partition的数量应该等于broker的数量。


2、topic


每条发布到kafka集群的消息都有一个类别,这个类别被称为topic,在物理上不同topic的消息是分开存储的,逻辑上同一个topic的消息虽然保存于一个或多个broker上,但用户只需要指定消息的topic,即可生产或消费数据而不必关心数据存储于何处,类似于数据库的表名。


3、partition


topic中的数据分割为一个或多个partition,每个topic至少一个partition,每个partition中的数据使用多个segment文件存储,partition中的数据是有序的,不同partition间的数据丢失了数据顺序,如果topic有多个partition,消费数据时就不能保证数据的顺序,在需要严格保证下次的消费顺序的场景下,partition的数目设为1。


4、producer


生产者即数据的发布者,该角色将消息发布到kafka的topic中,broker接收到生产者发送的消息后,broker将消息追加到当前用于追加数据的segment文件中,生产者发送的消息,存储到一个partition中,生产者也可以指定数据存储的partition。


5、consumer


消费者从broker中读取数据,消费者可以消费多个topic中的数据。


6、consumer group


每个consumer属于一个特定的consumer group。


7、leader


每个partition有多个副本,其中有且只有一个作为leader,leader是当前负责数据读写的partition。


8、follower


follower跟随leader,所有的写请求都通过leader路由,数据变更会广播给所有的follower,follower与leader保持数据同步。如果leader失效,则从follower中选举出一个新的leader。


9、offset


偏移量,比如偏移量为3的消费者,表示已经消费了0-2偏移量的消息了。