使用Kafka集群验证和测试多个订购者

时间:2018-06-26 10:01:37

标签: apache-kafka apache-zookeeper hyperledger-fabric hyperledger hyperledger-composer

我的织物具有3个订购者,但是问题是当我停止在7050端口上运行的订购者容器时,我无法进行任何交易。它说我“服务不可用”,但是当我停止另一个容器(在7050以外的端口上运行)时,一切正常。这背后的原因应该是什么?我已经检查了同行和订购者的日志,但是没有什么比这更错误了。有人可以帮我吗?

我的网络有1个对等方,1个CA和3个订购者 我有3个动物园管理员和4个卡夫卡经纪人。

在启动结构时记录日志:

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

并非所有创建的三个订购者都可以与客户端连接,但是只有端口7050映射的订购者才可以与客户端连接。这两个订购者中的其余人只是在运行似乎什么都没做的容器。为了确保Kafka集群正常工作,我们尝试一个接一个地停止容器,并发现只有一个容器能够(通过调用composer rest apis)接受事务,而其他容器却出现SERVICE_UNAVAILABLE错误。

通过跟踪日志,我们发现在启动结构时,这两个失败的容器给出了以下警告。

  

2018-06-25 09:53:23.723 UTC [common / deliver] liverBlocks-> WARN 4da   [channel:composerchannel]拒绝提供   172.18.0.14:37702因为同意者错误

注意:我正在使用作曲工具进行测试。如果有人可以查看,我也可以共享代码。

我希望这对您有意义。让我知道,以防您想问什么。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以在订购者后面配置代理。 在我的测试案例中,我使用了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

现在您可以检查订购者故障转移。

相关问题