docker搭建kafka集群(基于centos7)
1 docker安装
1 | arduino复制代码yum remove docker \ |
1.1 安装docker 源
1 | arduino复制代码yum install -y yum-utils device-mapper-persistent-data lvm2 |
1.2 安装docker所需工具
1 | kotlin复制代码yum install -y yum-utils device-mapper-persistent-data lvm2 |
1.3 安装指定版本docker
1 | 复制代码yum install -y docker-ce-18.09.9-3.el7 |
1.4 启动docker
1 | bash复制代码systemctl enable docker && systemctl start docker |
1.5 因国内下载docker镜像存在问题,需要配置下docker镜像源
1 | bash复制代码vi /etc/docker/daemon.json |
1.6 配置完docker 镜像后记得重启docker
1 | 复制代码systemctl restart docker |
2 docker-compose 安装
2.1 下载docker-compose
1 | bash复制代码curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
2.2 添加docker-compose 执行命令
1 | bash复制代码chmod +x /usr/local/bin/docker-compose |
3 使用docker-compose安装docker集群
3.1环境配置
3.1.1 kafka目录
1 | arduino复制代码mkdir kafka1 |
3.1.2 zookeeper集群目录
1 | arduino复制代码mkdir zookeeper1 |
3.1.3 zookeeper其他目录及配置
1 | bash复制代码mkdir zooConfig |
3.1.4在zoo1,zoo2,zoo3中分别创建myid文件,并写入分别写入id数字,如zoo1中的myid中写入1
1 | bash复制代码echo 1 ./zoo1/myid |
3.1.5 创建zoo配置文件zoo.cfg
1 | ini复制代码# The number of milliseconds of each tick |
3.2 创建docker容器网络
docker network create --driver bridge --subnet 172.23.0.0/25 --gateway 172.23.0.1 zookeeper_network
3.3 docker-compose.yml
1 | yaml复制代码version: '2' |
注意:
1.网上不少配置JMX_PORT端口,因启动就会出错,我这里没有配置,如必须要配置,见附录1kafka配置JMX_PORT出错解决方案
;
2.将配置"PLAINTEXT://172.18.255.9:9094" 中的ip换成自己的机器的ip
3.4 一定要记得开启防火墙
1 | css复制代码## 开启kafka-manager外网访问端口 |
3.5 启动kafka集群
3.5.1 启动集群
docker-compose -f docker-compose.yml up -d
3.5.2 停止集群
docker-compose -f docker-compose.yml stop
3.6 kafka集群检查
3.6.1 查看zookeeper集群是否正常
1 | bash复制代码docker exec -it zoo1 bash |
3.6.2 创建topic
1 | sql复制代码docker exec -it kafka1 bash |
3.6.3 生产消息
kafka-console-producer.sh --broker-list kafka1:9092,kafka2:9093,kafka3:9094 --topic test001
下面两条警告日志不影响使用,实际是连通状态的
3.6.3 消费消息
kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9093,kafka3:9094 --topic test001 --from-beginning
3.7 kafka-manager访问
3.7.1 浏览器打开访问
http://你的虚拟机ip:9000/
3.7.2 配置你创建的集群
3.7.2 下面就可以查看你的集群了
3 spring-boot连接kafka集群
3.1 application.yml配置
1 | yaml复制代码spring: |
3.2 启动类
1 | less复制代码@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) |
3.3 用了监听启动观察kafka生产及消费情况,小伙伴们可以单测手动调试
3.3.1 KafkaProducer
1 | less复制代码@Component |
3.3.1 KafkaConsumer
1 | typescript复制代码@Component |
以上spring-boot项目就自己搭建吧,这里不赘述了
踩坑不易,欢迎大家评阅
本文转载自: 掘金