@@ -98,76 +98,74 @@ wurstmeister/kafka:latest
9898## Docker 多机多实例部署
9999
100100- 三台机子:
101- - 内网 ip:`172.31.154.16 `
102- - 内网 ip:`172.31.154.17 `
103- - 内网 ip:`172.31.65.88 `
101+ - 内网 ip:`172.31.65.89`,外网 ip:`47.75.186.22 `
102+ - 内网 ip:`172.31.65.90`,外网 ip:`47.75.188.54 `
103+ - 内网 ip:`172.31.65.91`,外网 ip:`47.75.41.196 `
104104- 三台机子的 hosts 都修改为如下内容:` vim /etc/hosts `
105105
106106```
107- 172.31.154.16 youmeekhost1
108- 172.31.154.17 youmeekhost2
109- 172.31.65.88 youmeekhost3
107+ 172.31.65.89 youmeekhost1
108+ 172.31.65.90 youmeekhost2
109+ 172.31.65.91 youmeekhost3
110110```
111111
112112- 开发机设置 hosts:
113113
114114```
115- 47.75.107.100 youmeekhost1
116- 47.75.107.9 youmeekhost2
117- 47.75.107.27 youmeekhost3
115+ 47.75.186.22 youmeekhost1
116+ 47.75.188.54 youmeekhost2
117+ 47.75.41.196 youmeekhost3
118118```
119119
120- - 新建 docker 网络:` docker network create kafkanetwork `
121120- 查看当前网络列表:` docker network ls `
122- - 查看某个网络的具体信息:` docker network inspect kafkanetwork `
121+ - 查看某个网络的具体信息:` docker network inspect host `
123122
124123#### 各个节点部署 zookeeper:
125124
126125- 节点 1:
127126
128127```
129- docker run --net=kafkanetwork -d -p 2181 \
128+ docker run --net=host -d -p 2181 \
130129--restart=always \
131130-v /data/docker/zookeeper/data:/data \
132131-v /data/docker/zookeeper/log:/datalog \
133132-e ZOO_MY_ID=1 \
134133-e "ZOO_SERVERS=server.1=youmeekhost1:2888:3888 server.2=youmeekhost2:2888:3888 server.3=youmeekhost3:2888:3888" \
135- --name=zookeeper1 --net=host --restart=always zookeeper:3.4
134+ --name=zookeeper1 zookeeper:3.4
136135```
137136
138137
139138- 节点 2:
140139
141140```
142- docker run --net=kafkanetwork -d -p 2181 \
141+ docker run --net=host -d -p 2181 \
143142--restart=always \
144143-v /data/docker/zookeeper/data:/data \
145144-v /data/docker/zookeeper/log:/datalog \
146145-e ZOO_MY_ID=2 \
147146-e "ZOO_SERVERS=server.1=youmeekhost1:2888:3888 server.2=youmeekhost2:2888:3888 server.3=youmeekhost3:2888:3888" \
148- --name=zookeeper2 --net=host --restart=always zookeeper:3.4
147+ --name=zookeeper2 zookeeper:3.4
149148```
150149
151150
152151- 节点 3:
153152
154153```
155- docker run --net=kafkanetwork -d -p 2181 \
154+ docker run --net=host -d -p 2181 \
156155--restart=always \
157156-v /data/docker/zookeeper/data:/data \
158157-v /data/docker/zookeeper/log:/datalog \
159158-e ZOO_MY_ID=3 \
160159-e "ZOO_SERVERS=server.1=youmeekhost1:2888:3888 server.2=youmeekhost2:2888:3888 server.3=youmeekhost3:2888:3888" \
161- --name=zookeeper3 --net=host --restart=always zookeeper:3.4
160+ --name=zookeeper3 zookeeper:3.4
162161```
163162
164163#### 先安装 nc 再来校验 zookeeper 集群情况
165164
166165- 环境:CentOS 7.4
167166- 官网下载:< https://nmap.org/download.html > ,找到 rpm 包
168167- 当前时间(201803)最新版本下载:` wget https://nmap.org/dist/ncat-7.60-1.x86_64.rpm `
169- - 安装:` sudo rpm -i ncat-7.60-1.x86_64.rpm `
170- - ln 下:` sudo ln -s /usr/bin/ncat /usr/bin/nc `
168+ - 安装并 ln:` sudo rpm -i ncat-7.60-1.x86_64.rpm && ln -s /usr/bin/ncat /usr/bin/nc `
171169- 检验:` nc --version `
172170
173171#### zookeeper 测试
@@ -231,9 +229,8 @@ Node count: 4
231229- 节点 1 执行:
232230
233231```
234- docker run -d --net=kafkanetwork --name kafka1 -p 9092 \
232+ docker run -d --net=host --hostname=youmeekhost1 --name= kafka1 -p 9092 \
235233--restart=always \
236- --net=host \
237234--env KAFKA_BROKER_ID=1 \
238235--env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 \
239236--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost1:9092 \
@@ -252,9 +249,8 @@ wurstmeister/kafka:latest
252249- 节点 2 执行:
253250
254251```
255- docker run -d --net=kafkanetwork --name kafka2 -p 9092 \
252+ docker run -d --net=host --hostname=youmeekhost2 --name= kafka2 -p 9092 \
256253--restart=always \
257- --net=host \
258254--env KAFKA_BROKER_ID=2 \
259255--env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 \
260256--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost2:9092 \
@@ -273,9 +269,8 @@ wurstmeister/kafka:latest
273269- 节点 3 执行:
274270
275271```
276- docker run -d --net=kafkanetwork --name kafka3 -p 9092 \
272+ docker run -d --net=host --hostname=youmeekhost3 --name= kafka3 -p 9092 \
277273--restart=always \
278- --net=host \
279274--env KAFKA_BROKER_ID=3 \
280275--env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 \
281276--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost3:9092 \
@@ -293,22 +288,26 @@ wurstmeister/kafka:latest
293288
294289#### 测试
295290
296- - 进入 kafka 容器:` docker exec -it kafka1 /bin/bash `
297- - 根据官网 Dockerfile 说明,kafka home 应该是:` cd /opt/kafka `
298- - 创建 topic 命令:` bin/kafka-topics.sh --create --zookeeper one-zookeeper:2181 --replication-factor 1 --partitions 1 --topic my-topic-test `
299- - 查看 topic 命令:` bin/kafka-topics.sh --list --zookeeper one-zookeeper:2181 `
300- - 删除 topic:` bin/kafka-topics.sh --delete --topic my-topic-test --zookeeper one-zookeeper:2181 `
301- - 给 topic 发送消息命令:` bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic-test ` ,然后在出现交互输入框的时候输入你要发送的内容
302- - 再开一个终端,进入 kafka 容器,接受消息:` bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic-test --from-beginning `
303- - 此时发送的终端输入一个内容回车,接受消息的终端就可以收到。
304-
291+ - 在 kafka1 上测试:
292+ - 进入 kafka1 容器:`docker exec -it kafka1 /bin/bash`
293+ - 根据官网 Dockerfile 说明,kafka home 应该是:`cd /opt/kafka`
294+ - 创建 topic 命令:`bin/kafka-topics.sh --create --zookeeper youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 --replication-factor 3 --partitions 3 --topic my-topic-test`
295+ - 查看 topic 命令:`bin/kafka-topics.sh --list --zookeeper youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181`
296+ - 给 topic 发送消息命令:`bin/kafka-console-producer.sh --broker-list youmeekhost1:9092 --topic my-topic-test`,然后在出现交互输入框的时候输入你要发送的内容
297+ - 在 kafka2 上测试:
298+ - 进入 kafka2 容器:`docker exec -it kafka2 /bin/bash`
299+ - 接受消息:`cd /opt/kafka && bin/kafka-console-consumer.sh --bootstrap-server youmeekhost2:9092 --topic my-topic-test --from-beginning`
300+ - 在 kafka3 上测试:
301+ - 进入 kafka3 容器:`docker exec -it kafka3 /bin/bash`
302+ - 接受消息:`cd /opt/kafka && bin/kafka-console-consumer.sh --bootstrap-server youmeekhost3:9092 --topic my-topic-test --from-beginning`
303+ - 如果 kafka1 输入的消息,kafka2 和 kafka3 能收到,则表示已经成功。
305304
306305#### 部署 kafka-manager
307306
308307- 节点 1:
309308
310- docker run -d --name=kafka-manager --restart=always -p 9000:9000 -e ZK_HOSTS="youmeekhost1:2181" sheepkiller/kafka-manager: latest
311-
309+ docker run -d --name=kafka-manager --restart=always -p 9000:9000 -e ZK_HOSTS="youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 " sheepkiller/kafka-manager: latest
310+ 访问:192.168.83.153:9000
312311----------------------------------------------------------------------------------------------
313312
314313#### Docker 单实例 kafka
0 commit comments