使用docker搭建真机kafka集群
首先搭建zookeeper、可以使用docker搭建zookeeper集群,如果是自己测试,可以在一台机器上使用docker搭建一个伪集群
这里贴一份单机上搭建zookeeper伪集群的docker-compose文档
docker-compose.yaml
version: '3.1'
services:
zoo1:
image: zookeeper
restart: always
hostname: zoo1
ports:
- 42181:2181
volumes:
- ./zoo1/conf:/conf
- ./zoo1/data:/data
- ./zoo1/datalog:/datalog
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo2:
image: zookeeper
restart: always
hostname: zoo2
ports:
- 42182:2181
volumes:
- ./zoo2/conf:/conf
- ./zoo2/data:/data
- ./zoo2/datalog:/datalog
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=0.0.0.0:2888:3888;2181 server.3=zoo3:2888:3888;2181
zoo3:
image: zookeeper
restart: always
hostname: zoo3
ports:
- 42183:2181
volumes:
- ./zoo3/conf:/conf
- ./zoo3/data:/data
- ./zoo3/datalog:/datalog
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=0.0.0.0:2888:3888;2181
如果不用docker搭建真机的zookeeper集群,可以参考这篇文章:
选择三台真机(如果是自己测试玩的,也可以用虚拟机了)
比如我选择真机是下面三台
192.168.0.1
192.168.0.2
192.168.0.3
那么需要分别在三台主机上创建下面三个文件
docker-compose.yaml
version: '3'
services:
kafka:
container_name: kafka_ai_1
image: wurstmeister/kafka
restart: always
network_mode: "host"
volumes:
- ./kafka/logs:/kafka
environment:
- CLUSTER_NAME=KAFKA
- KAFKA_ADVERTISED_HOST_NAME=<host_ip>
- KAFKA_ADVERTISED_PORT=9092
- KAFKA_ZOOKEEPER_CONNECT=<zk1>:42181,<zk2>:42182,<zk3>:42183
- KAFKA_HOST_NAME=<host_ip>
- KAFKA_BROKER_ID=1
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://<host_ip>:9092
- KAFKA_LISTENERS=PLAINTEXT://<host_ip>:9092
- KAFKA_DELETE_TOPIC_ENABLE=true
上面的docker-compose不能直接使用,需要给<host_ip>具体的值,以及zookeeper集群的地址,如下:
<host_ip>:当前主机的ip
:zookeeper集群的第一个节点,端口也是一样
:zookeeper集群的第二个节点,端口也是一样
zookeeper集群的第三个节点,端口也是一样
container_name:你可以定义自己容易区分的名字
端口9092端口没有被占用的话,可以直接使用
另外如果有防火墙的,需要关闭防火墙,或者开启9092端口
我这边测试使用的是kafka tool工具,下载地址:https://www.kafkatool.com/download.html
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/111206.html原文链接:https://javaforall.cn