gpt4 book ai didi

docker - Kafka Broker for Hyperledger Fabric无法建立连接

转载 作者:行者123 更新时间:2023-12-02 21:16:51 24 4
gpt4 key购买 nike

我需要为Hyperledger Fabric配置我的kafka经纪人docker容器时需要一些帮助。我的设置将是一个由4个经纪人组成的集群,介绍第二个经纪人时遇到问题。目前,所有经纪人都坐在一台计算机上,我需要他们发布外部地址,以便我在不同计算机上的订购者可以发现它们。

我的撰写文件包括1个Zookeeper和1个Broker:

version: '2'

services:
zookeeper0.hyperfabric.xyz:
image: hyperledger/fabric-zookeeper
restart: always
container_name: zookeeper0.hyperfabric.xyz
environment:
- ZOO_SERVERS=server.1=zookeeper0.hyperfabric.xyz:2888:3888
- ZOO_MY_ID=1
ports:
- 2181:2181
- 2888:2888
- 3888:3888

kafka0.hyperfabric.xyz:
image: hyperledger/fabric-kafka
restart: always
container_name: kafka0.hyperfabric.xyz
environment:
- KAFKA_MESSAGE_MAX_BYTES=103809024
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_MIN_INSYNC_REPLICAS=1
- KAFKA_DEFAULT_REPLICATION_FACTOR=1
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0.hyperfabric.xyz:2181
- KAFKA_BROKER_ID=0
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka0.hyperfabric.xyz:9092
ports:
- 9092:9092
- 9093:9093

运行此程序效果很好。

当我使用以下方法介绍另一个经纪人时:
kafka1.hyperfabric.xyz:
image: hyperledger/fabric-kafka
restart: always
container_name: kafka1.hyperfabric.xyz
environment:
- KAFKA_MESSAGE_MAX_BYTES=103809024
- KAFKA_REPLICA_FETCH_MAX_BYTES=103809024
- KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
- KAFKA_MIN_INSYNC_REPLICAS=1
- KAFKA_DEFAULT_REPLICATION_FACTOR=1
- KAFKA_ZOOKEEPER_CONNECT=zookeeper0.hyperfabric.xyz:2181
- KAFKA_BROKER_ID=1
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka1.hyperfabric.xyz:10092
ports:
- 10092:9092
- 10093:9093

我收到followin无限循环错误:
[2018-05-11 02:04:08,310] WARN [Controller id=0, targetBrokerId=1] Connection to node 1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

该错误与我的KAFKA_ADVERTISED_LISTENERS(与KAFKA_ADVERTISED_HOST_NAME和KAFKA_ADVERTISED_PORT发生的情况相同)有关。如果删除它,它可以工作,但是我的订购者将不会收到经纪人地址,并且订购者和经纪人之间将失去联系。

如何维护经纪人之间的内部连接以及与订购者之间的外部连接?

最佳答案

在容器内是配置侦听器变量的位置。 10092是主机而不是容器上的端口。

因此,您想要这个

PLAINTEXT://kafka1.hyperfabric.xyz:9092

随着
ports:
- 10092:9092

或对侦听器端口都使用10092(加上KAFKA_ADVERTISED_PORT)

另外,如果您是在Unix主机上,则可以使用network_mode: host模式,丢失端口转发,然后可以使用use different ports来发布广告的侦听器。

关于docker - Kafka Broker for Hyperledger Fabric无法建立连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284108/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com