KafKa(二):具体名词概念
分类:
文章
•
2025-03-31 17:21:51
一、kafka流程图

二、具体概念
-
producer: 生产者即数据的发布者,该角色将消息发布到kafka的topic中,broker接收到生产者发布的消息后,broker将该消息追加到当前用于追加数据的segment文件中,生产者发送的消息,存储到一个partition中,生产者也可以指定存储的partition。
-
consumer:消费者可以从broker中读取数据,消费者可以消费多个topic中的数据。
-
Topic:在kafka中,使用一个类别属性来划分数据的所属类,划分数据的这个类称之为topic,如果把kafka看作为一个数据库,topic可以理解为数据库中的一张表,topic的名字即为表名。
-
Partition:topic中的数据分割为一个或者多个partition,每个topic至少一个partition,每个partition中的数据使用多个segment文件存储,partition中的数据是有序的,partition间的数据丢失了数据的顺序,如果topic有多个partition,消费数据时就不能保证数据的有序性。在需要严格保证消息的消费顺序的场景下,需要将partition的数目设置为1.
-
partition offset:每条消息都有一个当前partition下唯一的64字节的offset,它指明了这条消息的起始位置。
- Replicas of partition:副本是一个分区的备份,副本不会被消费,副本之用于防止数据丢失,即消费者不从follower的partition中消费数据,只从leader的partition中读取数据,副本之间是一主多从的关系。
-
Broker:kafka集群中包含一个或者多个服务器,服务器节点称为broker,broker存储topic的数据。如果某topic有N个partition,集群有N个broker,那么每个节点存储该topic的一个partition。如果某topic有N个partition,集群有(N+M)个broker,那么,其中N个存储该topic的一个partition,剩下的m个broker不存储该topic的partition。这种情况容易导致kafka集群数据不均衡,出现数据缺少的情况。
-
Leader:每个partition有多个副本,每个副本只有一个leader,leader是负责当前数据读写的partition.
-
Follower:follower跟随leader,所有请求都通过leader路由,数据变更会通过路由广播给所有的follower,Follower保持跟leader同步,如果leader失败,则从Follower中选举出来一个新的leader。当follower挂掉、卡住或者同步太慢,leader会将该follower从"in sync replicas"列表中删除,重新创建一个follower。
-
zookeeper:zookeeper负责维护和协调broker,当kafka系统中新增了broker或者broker发生重大故障的时候,由zookeeper同志生产者和消费者,生产者和消费者依据zookeeper的broker状态信息,与broker协调数据状态的发布和订阅任务。
-
AR(assigned replicas):分区中所有的副本统称为AR.
- ISR(in-sync-replicas):所有leader部分保持一定程度的副本(包括leader副本在内)lsr。
-
osr(out of sync replicas):与leader副本同步滞后过多的副本。
-
hw(height watermark):高水位,标示了一个特定的offset,消费者只能拉取到这个offset之前的消息。
-
LEO(log end offset):即日志末端位移,记录了该副本底层日志(log)消息下一条消息的位移值,注意下一条消息是说,如果leo=10,表示该副本保存了10条信息,位移范围是[0,9].
