本节主要是 Kafka 配置文件层面的

Broker 使用哪些磁盘

  1. log.dirs=/home/kafka1,/home/kafka2,/home/kafka3


ZooKeeper 相关的设置

ZooKeeper 是做什么的呢?它是一个分布式协调框架,负责协调管理并保存 Kafka 集群的所有元数据信息,比如集群都有哪些 Broker 在运行、创建了哪些 Topic,每个 Topic 都有多少分区以及这些分区的 Leader 副本都在哪些机器上等信息。

  1. # 普通配置
  2. zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
  3. # 让多个 Kafka 集群使用同一套 ZooKeeper 集群
  4. # 第 1 组 kafka 集群
  5. zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka1
  6. # 第 2 组 kafka 集群
  7. zookeeper.connect=zk1:2181,zk2:2181,zk3:2181/kafka2

Broker 连接相关

  1. # 该 brocker 连接方式
  2. listeners=PLAINTEXT://localhost:9092

Topic 管理

  1. # 是否允许自动创建 Topic
  2. auto.create.topics.enable
  3. # 是否允许 Unclean Leader 选举,需要显示配置为 false。防止落后进度较多的 brocker 被选举为 leader
  4. unclean.leader.election.enable
  5. # 是否允许定期进行 Leader 选举。不是选,而是换 leader。需要置为 false,减少不必要的性能消耗。
  6. auto.leader.rebalance.enable


数据留存方面

  1. # 控制一条消息数据被保存多长时间
  2. log.retention.{hour|minutes|ms}
  3. # 指定 Broker 为消息保存的总磁盘容量大小
  4. log.retention.bytes
  5. # 控制 Broker 能够接收的最大消息大小
  6. message.max.bytes