前面大数据(三)-canal实现实时监听mysql数据到kafka文章,咱们搭建了一个单节点消息中间件kafka。本文介绍通过docker搭建kafka伪分集群。
集群模式环境更加稳定,当kafka某一broker节点当掉,kafka会在ISR列表中马上竞选新的follower或者leader。让集群始终保持固定副本数量(replica)。在生产环境中,kafka都以集群模式进行部署存在。
旧版本的kafka依赖zookeeper进行节点之间的资源协调,所以在安装kafka前要先安装zookeeper。
# 拉取zookeeper
sudo docker pull wurstmeister/zookeeper:latest
# 安装zookeeper
sudo docker run \
-itd \
-p 2181:2181 \
--name zookeeper \
-e TZ="Asia/Shanghai" \ # 将容器时区设定为上海时区
wurstmeister/zookeeper本次kafka配置5个broker,1个分区,3个副本。
sudo docker pull wurstmeister/kafka:2.13-2.7.0# 启动kafka1
sudo docker run \
-p 9092:9092 \
--name kafka1 \
-itd \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=10.0.2.15:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.2.15:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-e KAFKA_NUM_PARTITIONS=1 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=168 \
-e TZ="Asia/Shanghai" \
wurstmeister/kafka:2.13-2.7.0
# 启动kafka2
sudo docker run \
-p 9093:9093 \
--name kafka2 \
-itd \
-e KAFKA_BROKER_ID=2 \
-e KAFKA_ZOOKEEPER_CONNECT=10.0.2.15:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.2.15:9093 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9093 \
-e KAFKA_NUM_PARTITIONS=1 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=168 \
-e TZ="Asia/Shanghai" \
wurstmeister/kafka:2.13-2.7.0
# 启动kafka3
sudo docker run \
-p 9094:9094 \
--name kafka3 \
-itd \
-e KAFKA_BROKER_ID=3 \
-e KAFKA_ZOOKEEPER_CONNECT=10.0.2.15:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.2.15:9094 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9094 \
-e KAFKA_NUM_PARTITIONS=1 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=168 \
-e TZ="Asia/Shanghai" \
wurstmeister/kafka:2.13-2.7.0
# 启动kafka4
sudo docker run \
-p 9095:9095 \
--name kafka4 \
-itd \
-e KAFKA_BROKER_ID=4 \
-e KAFKA_ZOOKEEPER_CONNECT=10.0.2.15:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.2.15:9095 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9095 \
-e KAFKA_NUM_PARTITIONS=1 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=168 \
-e TZ="Asia/Shanghai" \
wurstmeister/kafka:2.13-2.7.0
# 启动kafka5
sudo docker run \
-p 9096:9096 \
--name kafka5 \
-itd \
-e KAFKA_BROKER_ID=5 \
-e KAFKA_ZOOKEEPER_CONNECT=10.0.2.15:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.2.15:9096 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9096 \
-e KAFKA_NUM_PARTITIONS=1 \
-e KAFKA_DEFAULT_REPLICATION_FACTOR=3 \
-e KAFKA_LOG_RETENTION_HOURS=168 \
-e TZ="Asia/Shanghai" \
wurstmeister/kafka:2.13-2.7.0zookeeper和kafka各节点正常启动
sudo docker pull sheepkiller/kafka-managersudo docker run \
-itd \
--name kafka-manager \
--link zookeeper:zookeeper \
--link kafka1:kafka1 \
--link kafka2:kafka2 \
--link kafka3:kafka3 \
--link kafka4:kafka4 \
--link kafka5:kafka5 \
-p 9000:9000 \
--env ZK_HOSTS=zookeeper:2181 \
-e TZ="Asia/Shanghai" \
sheepkiller/kafka-managerkafka-manager管理正常
正常启动kafka-manger后,可以通过浏览器9000端口访问web UI。在Cluster选择Add Cluster 添加管理集群。
web UI
输入集群名称和zookeeper地址保存,并管理成功。
配置项
管理成功
大数据(三)-canal实现实时监听mysql数据到kafka
大数据(二)-实时捕获SQLServer数据到kafka教程
码字不易,请评论转发关注。
| 留言与评论(共有 0 条评论) “” |