大数据(四)-用docker搭建kafka伪集群和管理平台

前面大数据(三)-canal实现实时监听mysql数据到kafka文章,咱们搭建了一个单节点消息中间件kafka。本文介绍通过docker搭建kafka伪分集群。

集群模式环境更加稳定,当kafka某一broker节点当掉,kafka会在ISR列表中马上竞选新的follower或者leader。让集群始终保持固定副本数量(replica)。在生产环境中,kafka都以集群模式进行部署存在。

zookeeper安装

旧版本的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

本次kafka配置5个broker,1个分区,3个副本。

  • 2.1 下载kafka镜像
sudo docker pull wurstmeister/kafka:2.13-2.7.0
  • 2.2 启动kafka各节点
# 启动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.0
大数据(四)-用docker搭建kafka伪集群和管理平台

zookeeper和kafka各节点正常启动

安装kafka管理工具

  • 下载kafka-manager
sudo docker pull sheepkiller/kafka-manager
  • 安装kafka-manager
sudo 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-manager
大数据(四)-用docker搭建kafka伪集群和管理平台

kafka-manager管理正常

  • 配置kafka-manager

正常启动kafka-manger后,可以通过浏览器9000端口访问web UI。在Cluster选择Add Cluster 添加管理集群。

大数据(四)-用docker搭建kafka伪集群和管理平台

web UI

输入集群名称和zookeeper地址保存,并管理成功。

大数据(四)-用docker搭建kafka伪集群和管理平台

配置项

大数据(四)-用docker搭建kafka伪集群和管理平台

管理成功

大数据(三)-canal实现实时监听mysql数据到kafka

大数据(二)-实时捕获SQLServer数据到kafka教程

大数据(一)-实时捕获mysql变化数据到kafka

码字不易,请评论转发关注。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章