@@ -98,76 +98,74 @@ wurstmeister/kafka:latest
98
98
## Docker 多机多实例部署
99
99
100
100
- 三台机子:
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 `
104
104
- 三台机子的 hosts 都修改为如下内容:` vim /etc/hosts `
105
105
106
106
```
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
110
110
```
111
111
112
112
- 开发机设置 hosts:
113
113
114
114
```
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
118
118
```
119
119
120
- - 新建 docker 网络:` docker network create kafkanetwork `
121
120
- 查看当前网络列表:` docker network ls `
122
- - 查看某个网络的具体信息:` docker network inspect kafkanetwork `
121
+ - 查看某个网络的具体信息:` docker network inspect host `
123
122
124
123
#### 各个节点部署 zookeeper:
125
124
126
125
- 节点 1:
127
126
128
127
```
129
- docker run --net=kafkanetwork -d -p 2181 \
128
+ docker run --net=host -d -p 2181 \
130
129
--restart=always \
131
130
-v /data/docker/zookeeper/data:/data \
132
131
-v /data/docker/zookeeper/log:/datalog \
133
132
-e ZOO_MY_ID=1 \
134
133
-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
136
135
```
137
136
138
137
139
138
- 节点 2:
140
139
141
140
```
142
- docker run --net=kafkanetwork -d -p 2181 \
141
+ docker run --net=host -d -p 2181 \
143
142
--restart=always \
144
143
-v /data/docker/zookeeper/data:/data \
145
144
-v /data/docker/zookeeper/log:/datalog \
146
145
-e ZOO_MY_ID=2 \
147
146
-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
149
148
```
150
149
151
150
152
151
- 节点 3:
153
152
154
153
```
155
- docker run --net=kafkanetwork -d -p 2181 \
154
+ docker run --net=host -d -p 2181 \
156
155
--restart=always \
157
156
-v /data/docker/zookeeper/data:/data \
158
157
-v /data/docker/zookeeper/log:/datalog \
159
158
-e ZOO_MY_ID=3 \
160
159
-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
162
161
```
163
162
164
163
#### 先安装 nc 再来校验 zookeeper 集群情况
165
164
166
165
- 环境:CentOS 7.4
167
166
- 官网下载:< https://nmap.org/download.html > ,找到 rpm 包
168
167
- 当前时间(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 `
171
169
- 检验:` nc --version `
172
170
173
171
#### zookeeper 测试
@@ -231,9 +229,8 @@ Node count: 4
231
229
- 节点 1 执行:
232
230
233
231
```
234
- docker run -d --net=kafkanetwork --name kafka1 -p 9092 \
232
+ docker run -d --net=host --hostname=youmeekhost1 --name= kafka1 -p 9092 \
235
233
--restart=always \
236
- --net=host \
237
234
--env KAFKA_BROKER_ID=1 \
238
235
--env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 \
239
236
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost1:9092 \
@@ -252,9 +249,8 @@ wurstmeister/kafka:latest
252
249
- 节点 2 执行:
253
250
254
251
```
255
- docker run -d --net=kafkanetwork --name kafka2 -p 9092 \
252
+ docker run -d --net=host --hostname=youmeekhost2 --name= kafka2 -p 9092 \
256
253
--restart=always \
257
- --net=host \
258
254
--env KAFKA_BROKER_ID=2 \
259
255
--env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 \
260
256
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost2:9092 \
@@ -273,9 +269,8 @@ wurstmeister/kafka:latest
273
269
- 节点 3 执行:
274
270
275
271
```
276
- docker run -d --net=kafkanetwork --name kafka3 -p 9092 \
272
+ docker run -d --net=host --hostname=youmeekhost3 --name= kafka3 -p 9092 \
277
273
--restart=always \
278
- --net=host \
279
274
--env KAFKA_BROKER_ID=3 \
280
275
--env KAFKA_ZOOKEEPER_CONNECT=youmeekhost1:2181,youmeekhost2:2181,youmeekhost3:2181 \
281
276
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://youmeekhost3:9092 \
@@ -293,22 +288,26 @@ wurstmeister/kafka:latest
293
288
294
289
#### 测试
295
290
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 能收到,则表示已经成功。
305
304
306
305
#### 部署 kafka-manager
307
306
308
307
- 节点 1:
309
308
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
312
311
----------------------------------------------------------------------------------------------
313
312
314
313
#### Docker 单实例 kafka
0 commit comments