角色
Producer
消息生产者
采用推(push)模式将消息发布到broker,每条消息都被追加(append)到分区(patition)中,属于顺序写磁盘
Borker
Kafka服务器,负责消息存储和转发,一台kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
Zookeeper
保存着集群broker、topic、partition等meta数据
负责broker 故障发现,partition leader选举,负载均衡等功能
概念
Topic
消息逻辑分组类别,Kafka按照topic来分类消息
Partition
topic的物理分区,一个 topic 可以包含多个 partition,topic消息保存在各个 partition上
实现扩展性,一个partition是一个有序的队列
segment
Kafka采取了分片和索引机制,将每个partition分为多个segment
每个segment对应两个文件(*.index表示存放数据的索引,*.log表示存储的数据)
数据默认存储7天。其中的每一个消息都被赋予了一个唯一的offset值
Offset
消息在日志中的位置,可以理解是消息在 partition上的偏移量,也是代表该消息的唯一序号
Consumer Group
消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
Replica
partition 的副本,保障 partition 的高可用(的某个节点发生故障时,该节点上的partition数据不丢失,且kafka仍然能够继续工作)<br>
一个topic的每个分区都有若干个副本,一个leader和若干个follower
Leader
replica 中的一个角色,每个分区多个副本的主, producer消费数据的对象 consumer发送数据的对象只跟 leader 交互
Follower
replica 中的一个角色,每个分区多个副本中的从,实时从leader中同步数据,保持和leader数据的同步。leader发生故障时,某个follower会成为新的follower
不和producer消费数据的对象 consumer发送数据的对象,不做数据读写
Controller
kafka 集群中的其中一个服务器,用来进行 leader election 以及 各种 failover
Message
消息,通信的基本单位,每个producer可以向一个topic发布一些消息