- broker:
一台Kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
一个Kafka的集群通常由多个broker组成,这样才能实现负载均衡、以及容错
broker是无状态的,它们通过Zookeeper来维护集群状态
一个Kafka的broker每秒可以处理十万次读写,每个broker都可以处理TB消息而不影响性能 - Zookeeper:
Zookeeper用来管理和协调broker,并且存储了Kafka的元数据(例如:有多少topic,partition,consumer)
Zookeeper服务主要用于通知生产者和消费者集群中有新的broker加入,或者有故障的broker。 - producer(生产者):
生产者负责将数据推送给broker的topic - consumer(消费者):
消费者负责从broker的topic中拉取数据,并进行处理。 - consumer group(消费者组):
consumer group是Kafka提供可扩展且具有容错性的消费者机制
一个消费者组可以包含多个消费者
消费者组内每个消费者负责不同分区的数据,一个分区只能由一个组内消费者消费
消费者组内之前互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。 - topic:
可以理解为一个队列,生产者和消费者面向的都是一个topic。
主题是一个逻辑概念,用于生产者发布数据,消费者消费数据。
Kafka中的主题必须要有标识符,而且是唯一的,Kafka中可以有任意数量的主题,没有数量上的限制。
在主题中的消息是有结构的,一般一个主题包含一类信息。
一旦生产者发送消息到主题中,这些消息就不能被更改。 - Partioion:
为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。 - Replica:副本:
一个topic的每一个分区都有若干副本,一个Leader和若干个Follower。
副本可以确保服务器出现故障时,确保数据依然可用。
再Kafka中,一般都会设计副本个数>1。 - Leader:
生产者发送数据的对象,以及消费者消费数据的对象都是Leader - Follower:实时从Leader中同步数据,保持个Leader数据同步,Leader发生故障时,某个Follower会成为新的Leader。
- offset偏移量:
offset记录者下一条将要发送给Consumer的消息的序号
0.9版本之前,consumer默认将offset保存在Zookeeper中;0.9版本之后,consumer默认将offset保存在kafka一个内置的topic中,该topic为_consumer_offsets.
在一个分区中,消息顺序存储,每一个分区的消费都有一个递增的id,这个就是偏移量offset。
偏移量在分区中才是有意义的,在分区之前offset没有意义。
04-01
446
06-11
01-07
06-22
1082