Hyperledger Fabric 的 Kafka Brokers 无法建立连接 [英] Kafka Brokers for Hyperledger Fabric could not establish a connection
问题描述
我需要一些帮助来为 hyperledger 结构配置我的 kafka 代理 docker 容器.我的设置将是一个由 4 个代理组成的集群,当我引入第二个代理时遇到了问题.所有经纪人目前都坐在一台机器上,我需要他们公布他们的外部地址,以便我在不同机器上的订购者可以发现他们.
I need some assistance with configuring my kafka brokers docker containers for hyperledger fabric. My setup will be a cluster of 4 brokers and I am having an issue when I introduce the second broker. All the brokers are currently sitting on a single machine and I need them to advertise their external address so that my orderers on different machines can discover them.
我用 1 个 Zookeeper 和 1 个 Broker 编写的文件:
My compose file with 1 Zookeeper and 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
运行这个工作正常.
当我介绍另一个经纪人时:
When I introduce another broker using:
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
我得到以下无限循环错误:
I get the followin infinitely looping error:
[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 发生同样的情况)环境变量有些相关.如果我删除它,它可以工作,但是我的订购者将不会收到经纪人地址,我将失去订购者和经纪人之间的通信.
The error is somewhat related to my KAFKA_ADVERTISED_LISTENERS (same thing happens with KAFKA_ADVERTISED_HOST_NAME and KAFKA_ADVERTISED_PORT) environmental variable. If I remove it, it works, but then my orderers will not receive the brokers address and I will lose communication between orderers and brokers.
如何维护经纪人之间的内部连接以及与订购者的外部连接?
How do I maintain the internal connection between my brokers and the external connection to my orderers?
推荐答案
通过将我的 kafka1 容器更改为如下所示,我能够将所有内容连接起来:
I was able to get everything connected by changing my kafka1 container to look like this:
kafka1.hyperfabric.xyz:
image: hyperledger/fabric-kafka
restart: always
container_name: kafka1.hyperfabric.xyz
environment:
- KAFKA_PORT=10092
- 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:10092
- 10093:9093
区别在于 - KAFKA_PORT=10092
和 - 10092:10092
这篇关于Hyperledger Fabric 的 Kafka Brokers 无法建立连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!