1、Producer &Broker& Consumer
Broker:Kafka集群包含一个或多个实例,每个实例称为Broker 三者之间的交互方式是: Producer推送数据给Broker Consumer从Broker拉取数据。
2、Topic- 逻辑概念,同一个Topic的消息可分布在一个或多个节点(Broker)上
- 一个Topic包含一个或者多个Partition
- 每条消息都属于且仅属于一个Topic
- Producer发布数据时,必须指定将该消息发布到哪一个Topic
- Consumer订阅消息时,也必须指定订阅哪个Topic的消息
从图中可以看出,kafka会将topic的数据均匀的分配到不同的broker上。
3、Partition- 物理概念,一个Partition只分布于一个Broker上(不考虑备份)
- 一个Partition物理上对应一个文件夹
- 一个Partition包含多个Segment(Segment对用户透明,即对用户是不可见的。)
- 一个Segment对应一个文件
- Segment由一个个不可变记录组成
- 记录只会被append到Segment中,不会被单独删除或者修改
- 清除过期日志时,直接删除一个或多个Segment
Partition中的数据都会有一个当前partition唯一序列号,称为Offset。
小注: 本文部分内容及全部图片来自:郭俊(Jason Guo)
作者:jiankunking 出处:http://blog.csdn.net/jiankunking