从一组动物园管理员中选择哪个主机名
Which hostname to choose from a group of zookeepers
我是分布式系统的新手,我正在使用docker设置一组zookeeper。
例如,我启动了三个zookeeper:
services:
zoo1:
image: zookeeper
restart: always
ports:
- 2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper
restart: always
ports:
- 2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper
restart: always
ports:
- 2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
为了启动 kafka,我必须配置它的 server.properties
.
在zookeeper.connection=localhost:2181例子中,这里应该配置什么?
zookeeper.connection=zoo1 / zoo2 / zoo3:2181?
或者我应该把他们三个留在那里?谢谢
[更新]
kafka当然会配置为在同一个docker-compose.yml
文件中启动。
但是kafka
的Dockerfile
是本地写的。我认为我应该相应地修改 server.properties
中的 zookeeper.connect=...
而不是使用 localhost
.
你应该把所有的都放在逗号分隔的列表中:
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181
因此,如果一个 ZK 出现故障,代理可以连接到一个副本。
我是分布式系统的新手,我正在使用docker设置一组zookeeper。
例如,我启动了三个zookeeper:
services:
zoo1:
image: zookeeper
restart: always
ports:
- 2181
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper
restart: always
ports:
- 2181
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper
restart: always
ports:
- 2181
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
为了启动 kafka,我必须配置它的 server.properties
.
在zookeeper.connection=localhost:2181例子中,这里应该配置什么?
zookeeper.connection=zoo1 / zoo2 / zoo3:2181?
或者我应该把他们三个留在那里?谢谢
[更新]
kafka当然会配置为在同一个docker-compose.yml
文件中启动。
但是kafka
的Dockerfile
是本地写的。我认为我应该相应地修改 server.properties
中的 zookeeper.connect=...
而不是使用 localhost
.
你应该把所有的都放在逗号分隔的列表中:
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181
因此,如果一个 ZK 出现故障,代理可以连接到一个副本。