@@ -98,31 +98,35 @@ wurstmeister/kafka:latest
9898## Docker 多机多实例部署
9999
100100- 三台机子:
101- - 内网 ip:`172.18.218.98 `
102- - 内网 ip:`172.18.218.99 `
103- - 内网 ip:`172.18.218.100
101+ - 内网 ip:`172.31.154.16 `
102+ - 内网 ip:`172.31.154.17 `
103+ - 内网 ip:`172.31.65.88`
104104- 三台机子的 hosts 都修改为如下内容:` vim /etc/hosts `
105105
106106```
107- 172.18.218.98 youmeekhost1
108- 172.18.218.99 youmeekhost2
109- 172.18.218.100 youmeekhost3
107+ 172.31.154.16 youmeekhost1
108+ 172.31.154.17 youmeekhost2
109+ 172.31.65.88 youmeekhost3
110110```
111111
112112- 开发机设置 hosts:
113113
114114```
115- 47.106.78.154 youmeekhost1
116- 47.106.72.69 youmeekhost2
117- 47.106.76.16 youmeekhost3
115+ 47.75.107.100 youmeekhost1
116+ 47.75.107.9 youmeekhost2
117+ 47.75.107.27 youmeekhost3
118118```
119119
120+ - 新建 docker 网络:` docker network create kafkanetwork `
121+ - 查看当前网络列表:` docker network ls `
122+ - 查看某个网络的具体信息:` docker network inspect kafkanetwork `
123+
120124#### 各个节点部署 zookeeper:
121125
122126- 节点 1:
123127
124128```
125- docker run -d \
129+ docker run --net=kafkanetwork -d -p 2181 \
126130--restart=always \
127131-v /data/docker/zookeeper/data:/data \
128132-v /data/docker/zookeeper/log:/datalog \
@@ -135,7 +139,7 @@ docker run -d \
135139- 节点 2:
136140
137141```
138- docker run -d \
142+ docker run --net=kafkanetwork -d -p 2181 \
139143--restart=always \
140144-v /data/docker/zookeeper/data:/data \
141145-v /data/docker/zookeeper/log:/datalog \
@@ -148,7 +152,7 @@ docker run -d \
148152- 节点 3:
149153
150154```
151- docker run -d \
155+ docker run --net=kafkanetwork -d -p 2181 \
152156--restart=always \
153157-v /data/docker/zookeeper/data:/data \
154158-v /data/docker/zookeeper/log:/datalog \
@@ -168,23 +172,57 @@ docker run -d \
168172
169173#### zookeeper 测试
170174
171- - 各节点执行命令 :` echo stat | nc youmeekhost1 2181 ` ,能得到如下信息:
175+ - 节点 1 执行命令 :` echo stat | nc youmeekhost1 2181 ` ,能得到如下信息:
172176
173177```
174178Zookeeper version: 3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
175179Clients:
176- /172.21.0.1:33344 [0](queued=0,recved=1,sent=0)
180+ /172.31.154.16:35336 [0](queued=0,recved=1,sent=0)
177181
178182Latency min/avg/max: 0/0/0
179183Received: 1
180184Sent: 0
181185Connections: 1
182186Outstanding: 0
183- Zxid: 0x500000000
187+ Zxid: 0x0
188+ Mode: follower
189+ Node count: 4
190+ ```
191+
192+ - 节点 2 执行命令:` echo stat | nc youmeekhost2 2181 ` ,能得到如下信息:
193+
194+ ```
195+ Zookeeper version: 3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
196+ Clients:
197+ /172.31.154.17:55236[0](queued=0,recved=1,sent=0)
198+
199+ Latency min/avg/max: 0/0/0
200+ Received: 1
201+ Sent: 0
202+ Connections: 1
203+ Outstanding: 0
204+ Zxid: 0x100000000
184205Mode: leader
185206Node count: 4
186207```
187208
209+ - 节点 3 执行命令:` echo stat | nc youmeekhost3 2181 ` ,能得到如下信息:
210+
211+ ```
212+ Zookeeper version: 3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
213+ Clients:
214+ /172.31.65.88:41840[0](queued=0,recved=1,sent=0)
215+
216+ Latency min/avg/max: 0/0/0
217+ Received: 1
218+ Sent: 0
219+ Connections: 1
220+ Outstanding: 0
221+ Zxid: 0x100000000
222+ Mode: follower
223+ Node count: 4
224+ ```
225+
188226
189227#### 部署 Kafka 1.0.1
190228
@@ -193,12 +231,11 @@ Node count: 4
193231- 节点 1 执行:
194232
195233```
196- docker run -d --name kafka1 -p 9092: 9092 \
234+ docker run -d --net=kafkanetwork -- name kafka1 -p 9092 \
197235--restart=always \
198236--net=host \
199- --link zookeeper1 \
200237--env KAFKA_BROKER_ID=1 \
201- --env KAFKA_ZOOKEEPER_CONNECT=zookeeper1 :2181 \
238+ --env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3 :2181 \
202239--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost1:9092 \
203240--env KAFKA_LOG_DIRS=/data/docker/kafka/logs \
204241--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
@@ -215,12 +252,11 @@ wurstmeister/kafka:latest
215252- 节点 2 执行:
216253
217254```
218- docker run -d --name kafka2 -p 9092: 9092 \
255+ docker run -d --net=kafkanetwork -- name kafka2 -p 9092 \
219256--restart=always \
220257--net=host \
221- --link zookeeper2 \
222258--env KAFKA_BROKER_ID=2 \
223- --env KAFKA_ZOOKEEPER_CONNECT=zookeeper2 :2181 \
259+ --env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3 :2181 \
224260--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost2:9092 \
225261--env KAFKA_LOG_DIRS=/data/docker/kafka/logs \
226262--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
@@ -237,12 +273,11 @@ wurstmeister/kafka:latest
237273- 节点 3 执行:
238274
239275```
240- docker run -d --name kafka3 -p 9092: 9092 \
276+ docker run -d --net=kafkanetwork -- name kafka3 -p 9092 \
241277--restart=always \
242278--net=host \
243- --link zookeeper3 \
244279--env KAFKA_BROKER_ID=3 \
245- --env KAFKA_ZOOKEEPER_CONNECT=zookeeper3 :2181 \
280+ --env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3 :2181 \
246281--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost3:9092 \
247282--env KAFKA_LOG_DIRS=/data/docker/kafka/logs \
248283--env KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
@@ -256,6 +291,18 @@ docker run -d --name kafka3 -p 9092:9092 \
256291wurstmeister/kafka:latest
257292```
258293
294+ #### 测试
295+
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+
305+
259306#### 部署 kafka-manager
260307
261308- 节点 1:
0 commit comments