简述Kafka 基础架构 ?

Kafka的基础架构包括以下组成部分:

  1. Producer:消息生产者,负责向Kafka broker发送消息。
  2. Broker:一台Kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
  3. Topic:可以理解为一个队列,生产者和消费者面向的都是一个topic。
  4. Partition:分区。为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个partition是一个有序的队列。
  5. Replica:副本。一个topic的每个分区都有若干个副本,由一个Leader和若干个Follower组成。生产者发送数据和消费者消费数据都是针对Leader而言的。如果Leader挂了,会有Follower当选为新的Leader。
  6. Consumer:消息消费者,向Kafka broker取消息的客户端。Consumer Group(CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。

配合分区的设计,Kafka还提出了消费者组的概念,组内每个消费者并行消费。另外,Kafka还为每个partition增加若干副本(分为leader和follow,无论是生产还是消费,都针对leader而言),以提高可用性。生产者–》kafka集群服务器:生产者生产数据,创建一个main线程,经过拦截器,序列化器,分区器,数据根据分区器规则,进入不同的DQuene缓存队列:(内存中)(每一个队列大小默认32m)(每一批次数据大小batch.size16k)缓存队列通常使用异步发送:外部数据发送到缓存队列中,不管缓存队列中的数据是否发送完成,外部数据会持续发往缓存队列。集群还会应答selector,通过acks方式,应答有三种级别。

发表评论

后才能评论