Kafka 集群环境搭建

复制和安装 kafka

  1. 将本地kafka_2.11-2.4.1.tgz复制进master容器中root目录中
1
docker cp /path/to/kafka_2.11-2.4.1.tgz master:/root
  1. kafka解压进/opt/module目录下
1
tar zxvf /root/kafka_2.11-2.4.1.tgz -C /opt/module/
  1. 将解压后的目录改名为kafka
1
mv /opt/module/kafka_2.11-2.4.1 /opt/module/kafka

配置 kafka

  1. kafka的配置文件都存放在${KAFKA_HOME}/conf
1
cd /opt/module/kafka/config
  1. 配置server.properties
1
2
3
4
broker.id=0
listeners=PLAINTEXT://master:9092
log.dirs=/opt/module/kafka/data
zookeeper.connect=master:2181,slave1:2181,slave2:2181
  • broker.id 用于标识 Kafka broker 的唯一 ID。每个 broker 在集群中必须有一个唯一的 ID
  • listeners=PLAINTEXT://:9092listeners 用于指定 broker 监听客户端连接的地址和端口、PLAINTEXT 表示使用明文传输(不加密)
  • log.dirs:用于指定 Kafka 存储日志数据(包括消息)的目录。这个目录将包含 Kafka topic 的分区数据
  • zookeeper.connect=master:2181,slave1:2181,slave2:2181:用于指定 Kafka 集群使用的 Zookeeper 集群的连接字符串、Zookeeper 是 Kafka 用来进行集群管理和协调的服务、连接字符串包括 Zookeeper 的主机名和端口号。多个 Zookeeper 实例用逗号分隔
  1. 分发kafka
1
2
scp -r /opt/module/kafka/ slave1:/opt/module/
scp -r /opt/module/kafka/ slave2:/opt/module/
  1. 修改slave1 slave2中的server.properties
  • slave1
1
2
broker.id=1
listeners=PLAINTEXT://slave1:9092
  • slave2
1
2
broker.id=2
listeners=PLAINTEXT://slave2:9092

启动群集

在开启 kafka 之前确保 zookeeper 是开启状态

  1. !!!三个容器中都有执行!!!
1
/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties

验证集群

  1. 使用jps命令查看zookeeper进程:
1
jps
  • 出现以下进程表示开启成功
1
4548 Kafka

参考文章

Kafka 官方文档