本教程基于 Docker
进行 Kafka
环境搭建,如果你还没安装 Docker
可以参考之前的教程:Docker安装教程。
1. 端口开放
Kafka
和 Zookeeper
服务的默认端口号为 9092
和 2181
,在安装之前需要在服务器添加防火墙规则并在服务器开放端口。
在服务器内开放端口命令如下:
# 永久开放 2181 端口
firewall-cmd --add-port=2181/tcp --zone=public --permanent
# 永久开放 9092 端口
firewall-cmd --add-port=9092/tcp --zone=public --permanent
# 重载文件使生效
firewall-cmd --reload
2. ZK安装
Kafka
需要使用 Zookeeper
管理,所以我们需要先安装 Zookeeper
。
# 拉取镜像
docker pull wurstmeister/zookeeper
# 启动容器
docker run -dit --restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name zookeeper \
-p 2181:2181 \
-v /etc/localtime:/etc/localtime \
-t wurstmeister/zookeeper
3. Kafka安装
安装完Zookeeper
之后接下来就可以开始安装 Kafka
了,注意把将其中的 192.168.0.20
替换为你自己的服务器 IP
。
# 拉取镜像
docker pull wurstmeister/kafka
# 启动容器
docker run -dit --restart=always \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=192.168.0.20:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.20:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
4. 测试连接
完成安装之后通过简单的 Kafka 消息发送测试服务是否安装成功。
需要注意这里需要打开两个窗口,一个用户订阅信息,另一个用于发送消息。
# 进入容器
docker exec -it kafka bash
# 打开脚本目录
cd /opt/kafka/bin/
# 创建 Topic
kafka-topics.sh --create --topic <Topic Name> --zookeeper localhost:2181 --replication-factor 1 --partitions 1
# 查看 Topic 列表
kafka-topics.sh --zookeeper localhost:2181 --list
# 消费者监听 Topic
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic <Topic Name>
# 生产者发送消息
kafka-console-producer.sh --broker-list localhost:9092 --topic <Topic Name>
5. 连接工具
这里推荐两个 Kafka
和 Zookeeper
管理工具。
Kafka : Offset Explorer。
Zookeeper : PrettyZoo。