【问题标题】:Which hostname to choose from a group of zookeepers从一组 Zookeeper 中选择哪个主机名
【发布时间】:2016-12-12 14:40:36
【问题描述】:

我是分布式系统的新手,我正在使用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 文件中启动。

但是kafkaDockerfile是本地写的。我认为我应该相应地修改server.properties 中的zookeeper.connect=...,而不是使用localhost

【问题讨论】:

  • 您的 kafka 是否在主机容器上运行?
  • @BuiNgocLuan,是的,它是由docker-compose 在同一个docker-compose.yml 中启动的。所以它们应该在同一个网络中。

标签: docker apache-kafka apache-zookeeper


【解决方案1】:

你应该把所有作为逗号分隔的列表:

zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181

因此,如果一个 ZK 出现故障,代理可以连接到副本。

【讨论】:

  • 虽然我以为我已经找到了答案,但还是谢谢你,你有正确的答案。
猜你喜欢
  • 1970-01-01
  • 2018-03-18
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 2010-12-10
  • 2013-10-08
  • 1970-01-01
  • 2021-03-17
相关资源
最近更新 更多