作用
- 削峰
- 解耦
- 异步
体系相关
基本结构是生产者-消费者模型
ZooKeeper
- 用来负责群元数据的管理
- 控制器的选举
Broker
- 服务节点,如果单机部署kafka,也可以理解为服务实例
Topic
- 译为主题,消息以主题为单位进行归类,生产者发送消息到指定主题,消费者到指定主题去pull消息
Partition
- 译为分区,同主题密切相关。
- 一个主题可以划分多个分区,一个分区只属于一个主题。
- 分区在存储层面可以理解为可追加的日志文件
OffSet
- 偏移量。是消息在分区中的唯一标识。
- 通过偏移量来保证消息在分区中的顺序性,但OffSet不跨越分区。Kafka保证分区有序而不是主题有序。
Replica
- 多副本,通过增加副本来提供容灾能力
- 同一分区的不同副本保存的是相同的消息,但可能会有时延。
- 一主多从,故障转移通过ZooKeeper
- 消息先发送到leader副本,follower才能去拉取消息同步
AR
- 分区中的所有副本
ISR
- 所有与leader副本保持一定程度同步的副本
- 与Kafka的复制机制有关,权衡可靠性和性能。
- 如果是同步复制(所有副本都同步才提交,能消费消息),影响吞吐量
- 如果是异步复制(有一个副本复制消息即可),有数据丢失问题
OSR
- 与leader副本滞后过多的副本