我需要一些帮助配置我的Kafka经纪人码头集装箱hyperledger面料。我的设置将是一个集群的4个经纪人,我有一个问题,当我介绍第二个经纪人。所有的经纪人目前都坐在一台机器上,我需要他们公布他们的外部地址,以便我的订购者在不同的机器上可以发现他们。
我的一个zookeeper和一个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
我得到以下无限循环错误:
[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\u advanced\u侦听器(kafka\u advanced\u host\u name和kafka\u advanced\u port)环境变量有关。如果我删除它,它的工作,但然后我的订购者将不会收到经纪人的地址,我将失去订购者和经纪人之间的沟通。
如何保持我的代理之间的内部连接和与订购者的外部连接?
2条答案
按热度按时间qqrboqgw1#
通过将我的Kafka1容器更改为如下所示,我可以将所有内容连接起来:
区别在于
- KAFKA_PORT=10092
以及- 10092:10092
3yhwsihp2#
容器中是侦听器变量的配置位置。10092是主机上的端口,而不是容器。
因此,你想要这个
随着
或使用
10092
对于侦听器和端口(以及KAFKA_ADVERTISED_PORT
)或者,如果您在unix主机上,也可以这样做
network_mode: host
模式下,丢失端口转发,则可以为播发的侦听器使用不同的端口。