一、角色介绍:

  • Producer:消息生产者,负责发送消息到kafka集群
  • Broker: kafka服务端,负责接收客户端(producer/consumer )请求、存储消息、协调消费组等。Broker没有主从之分,只不过通过Zookeeper选择出一个控制节点,控制节点负责管理整个集群中所有分区和副本的状态,例如分区故障后重新选择leader分区等。
  • Consumer:负责从Broker上拉取消息进行业务处理。
  • Zookeeper:负责协调整个Broker集群,负责选取控制Broker、存储集群元数据、topic路由信息存储等。
  • Log:磁盘上的日志目录,消息就是存储在log中。
  • Topic:kafka中的消息以topic为单位进行划分,生产者将消息发送到特定topic,而消费者负责订阅topic的消息并进行消费。
  • Offset:offset是消息在分区中的唯一标识,kafka通过它来保证消息在分区的顺序性,不过offset并不跨越分区,也就是kafka保证的是分区有序性而不是主题有序性。
  • Record:实际写入kafka中并可以被读取的消息记录。每个record包含了key、value和timestamp。
  • Leader:每个分区多个副本的“主”leader,生产者发送数据的对象,以及消费者消费数据的对象都是leader。
  • Follower:每个分区多副本中的“从”follower,实时从Leader中同步数据,保持和leader数据的同步。Leader发生故障时,某个follower会成为新的leader。
  • ConsumerGroup:ConsumerGroup 为消费者组,一个消费者组可以包含一个或多个Consumer。使用多分区 + 多消费者 方式可以极大提高数据下游的处理速度,同一消费者组中的消息不会重复消费,同样的,不同消费组中组中的消费者消费消息时互不影响。Kafka就是通过消费者组的方式来实现P2P模式和广播模式。
  • Replicat