我正在尝试在docker - compose中使用具有多个副本的kafka。下面是我的撰写文件。我正在进行docker堆栈部署。
version: "3.5"
services:
zookeeper:
image: wurstmeister/zookeeper
hostname: zookeeper
ports:
- "2181:2181"
networks:
- network
- api
kafka1:
image: wurstmeister/kafka
environment:
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka1:19092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:19092
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
deploy:
mode: replicated
replicas: 3
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 1
window: 120s
networks:
- network
- api
volumes:
- /mnt/dockershare/kafka/:/kafka
networks:
network:
driver: overlay
api:
external: true
当我在docker中部署时,我得到了下面的错误。当我部署这个组合文件时,没有其他zookeeper或kafka实例在运行。有人能帮助解决这个问题吗?
[2020-08-05 16:15:05,049] ERROR Error while creating ephemeral at /brokers/ids/1, node already exists and owner '72086588934062081' does not match current session '72086588934062126' (kafka.zk.KafkaZkClient$CheckedEphemeral)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | [2020-08-05 16:15:05,059] ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode = NodeExists
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at org.apache.zookeeper.KeeperException.create(KeeperException.java:126)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.zk.KafkaZkClient$CheckedEphemeral.getAfterNodeExists(KafkaZkClient.scala:1819)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.zk.KafkaZkClient$CheckedEphemeral.create(KafkaZkClient.scala:1757)
dms-2020sep_kafka.0.f2orh7wpbydo@pmdocker02d | kafka.metrics.polling.interval.secs = 10
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.zk.KafkaZkClient.checkedEphemeralCreate(KafkaZkClient.scala:1724)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.zk.KafkaZkClient.registerBroker(KafkaZkClient.scala:95)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.server.KafkaServer.startup(KafkaServer.scala:273)
dms-2020sep_kafka.0.f2orh7wpbydo@pmdocker02d | kafka.metrics.reporters = []
dms-2020sep_kafka.0.f2orh7wpbydo@pmdocker02d | leader.imbalance.check.interval.seconds = 300
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:44)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.Kafka$.main(Kafka.scala:82)
dms-2020sep_kafka.0.jgjvlffc6kp3@pmdocker04d | at kafka.Kafka.main(Kafka.scala)
发布于 2020-08-07 20:40:45
/brokers/ids/1, node already exists
您不能扩展单个容器,因为带有代理and、侦听器和端口的环境变量将完全相同。
您需要使用3个独立的服务,或者使用Helm Charts + k8s,它可以为每个服务创建单独的信息模板
https://stackoverflow.com/questions/63294844
复制相似问题