使用kafka集群验证和测试多个order

juud5qan  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(367)

我有3个订购者的结构,但问题是当我停止在7050端口上运行的订购者容器时,我无法进行任何事务。它告诉我“服务不可用”,但当我停止另一个容器(在7050以外的端口上运行)时,一切正常。这背后的原因应该是什么?我已经检查了同行和订购者的日志,但没有什么比这更像是一个错误。有人能帮我吗?
我的网络有1个对等点,1个ca和3个订购者。我有3个Zookeeper和4个Kafka经纪人。
启动结构时记录:

1. peer logs: https://pastebin.com/hPhKu3QB
2. orderer0 logs: https://pastebin.com/57aYAeW2
3. orderer1 logs: https://pastebin.com/PzLKurE2
2. orderer2 logs: https://pastebin.com/5D4shcJN

并不是所有创建的三个订购者都能够连接到客户机,但是只有端口7050Map的订购者能够连接到客户机。其余的两个订购者只是运行看起来什么都不做的容器。为了确保kafka集群正常工作,我们尝试逐个停止容器,发现只有一个容器能够接受事务(通过调用composer restapi),而其他容器则给出服务不可用的错误。
通过跟踪日志,我们发现这两个失败的容器在启动结构时发出以下警告。
2018-06-25 09:53:23.723 utc[common/deliver]deliverblocks->warn 4da[channel:Composer频道]拒绝172.18.0.14:37702的传递请求,因为同意人错误
注意:我正在使用composer工具测试它。我也可以分享代码,如果有人可以看看。
我希望这对你有意义。如果您有什么问题,请告诉我。
提前谢谢。

vcudknz3

vcudknz31#

您可以在订购者后面配置代理。在我的测试案例中,我使用了haproxy

我的haproxy配置:

frontend HAPROXY
bind *:80
    mode tcp
    default_backend orderers
 backend orderers
    mode tcp
    stats enable
    balance roundrobin
    server orderer1 Orderer1-IP:Orderer1-PORT check
    server orderer2 Orderer2-IP:Orderer2-PORT check
    server orderer3 Orderer3-IP:<Orderer3-PORT check

最后,
在connection-profile.json中只能使用haproxy url
现在可以检查订购者故障转移。

相关问题