Kafka集群最全详解(图文全面总结)

Kafka集群

Kafka集群:是由一个、或多个 Kafka Broker 服务器组成的系统。

如下图所示:

Kafka集群最全详解(图文全面总结)-mikechen

Kafka 集群并非单点服务,而是由多台服务器(Broker)组成,这带来了更高的可用性和扩展性。

这些 Broker 协同工作,共同承担消息的存储、和传输任务。

总之,可以将 Kafka 集群视为一个分布式的消息队列系统,它具有高吞吐量、可扩展性…等特点。

 

Kafka集群架构

Kafka集群架构,主要包括以下几个核心组成部分:

Kafka集群最全详解(图文全面总结)-mikechen

1. 生产者(Producer)

将消息发送到 Kafka 中的指定 Topic 和 Partition,支持同步/异步发送。

并且,支持消息压缩、批量发送、幂等性…等优化机制。

2. 消费者(Consumer)

从 Kafka 中读取数据,支持消费者组(Consumer Group)机制。

Kafka集群最全详解(图文全面总结)-mikechen

一个 Partition 同一时间只能被消费者组内一个消费者消费,保障消费的可伸缩性与负载均衡

3. Broker

Broker(代理):集群的核心。

在 Kafka 集群中,Broker 是指运行 Kafka 服务的一个独立的服务器实例。

一个 Kafka 集群由一个或多个 Broker 组成。可以将 Broker 视为 Kafka 集群的基本构建块和核心运行单元。

它们承担着存储数据、处理客户端请求以及维护集群内部状态的关键职责,因此被称为集群的“核心”。

 

4.Partition(分区)

每个 Broker :可以托管多个 Topic 的多个 Partition。

每个 Topic 可以被划分为一个、或多个 Partition,每个 Partition 是一个有序且不可变的消息序列。

不同的 Partition 可以分布在不同的 Broker 上,实现负载均衡。

对于每个 Partition,会有一个 Broker 被选举为 Leader,负责处理该 Partition 的所有读写请求。

其他的 Broker 则作为 Follower,负责从 Leader 同步数据,以实现数据的冗余和高可用性。

 

Kafka集群配置

假设我们部署一个包含 3 个 Kafka Broker 和 3 个 Zookeeper 节点 的集群:

Kafka集群最全详解(图文全面总结)-mikechen

3 个节点分别为: broker-0 / broker-1 / broker-2。

以 broker-0 为例:

  1. broker.id=0 # 每个 broker 唯一 ID(0/1/2)
  2. listeners=PLAINTEXT://:9092
  3. log.dirs=/tmp/kafka-logs
  4. zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
  5. num.network.threads=3
  6. num.io.threads=8
  7. num.partitions=3 # 默认分区数
  8. default.replication.factor=2 # 默认副本数
  9. log.retention.hours=168
  10. log.segment.bytes=1073741824 # 1 GB
  11. log.retention.check.interval.ms=300000

其他两个 Broker 修改 broker.idlog.dirs 即可。

评论交流
    说说你的看法
欢迎您,新朋友,感谢参与互动!