【问题标题】:Wierd behavior on channel creation with kafka ordering service on hyperledger fabric在超级账本结构上使用 kafka 排序服务创建通道的奇怪行为
【发布时间】:2020-04-26 05:50:29
【问题描述】:

所以我使用带有命令peer channel create -f config/allarewelcome.tx -o orderer.example.com:7050 -c allarewelcome 的cli 容器创建了一个频道,我收到了这些消息。如您所见,该频道最终被创建,但我想知道发生了什么。有人有想法吗?

UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser 和 orderer 连接已初始化

UTC [cli.common] readBlock -> INFO 002 获得状态:&{SERVICE_UNAVAILABLE}

UTC [channelCmd] InitCmdFactory -> INFO 003 Endorser 和 orderer 连接已初始化

UTC [cli.common] readBlock -> INFO 004 获得状态:&{SERVICE_UNAVAILABLE}

UTC [channelCmd] InitCmdFactory -> INFO 005 Endorser 和 orderer 连接已初始化

UTC [cli.common] readBlock -> INFO 006 获得状态:&{SERVICE_UNAVAILABLE}

UTC [channelCmd] InitCmdFactory -> INFO 007 Endorser 和 orderer 连接已初始化

UTC [cli.common] readBlock -> INFO 008 获得状态:&{SERVICE_UNAVAILABLE}

UTC [channelCmd] InitCmdFactory -> INFO 009 Endorser 和 orderer 连接已初始化

UTC [cli.common] readBlock -> INFO 00a 收到的块:0

这是我的 docker-compose.yaml 文件中的 kafka 集群和 zookeepers 定义:

  kafka0.example.com:
    container_name: kafka0.example.com
    image: hyperledger/fabric-kafka
    restart: always
    environment:
      - KAFKA_MESSAGE_MAX_BYTES=103809024
      - KAFKA_REPLICA_FETCH_MAX_BYTES=103809024
      - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
      - KAFKA_MIN_INSYNC_REPLICAS=2
      - KAFKA_DEFAULT_REPLICATION_FACTOR=2
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper0.example.com:2181,zookeeper1.example.com:2181,zookeeper2.example.com:2181
      - KAFKA_BROKER_ID=1
    ports:
      - 9092:9092
      - 9093:9093
    networks:
      - basic
    depends_on:
      - zookeeper1.example.com
      - zookeeper2.example.com
      - zookeeper3.example.com

  kafka1.example.com:
    container_name: kafka1.example.com
    image: hyperledger/fabric-kafka
    restart: always
    environment:
      - KAFKA_MESSAGE_MAX_BYTES=103809024
      - KAFKA_REPLICA_FETCH_MAX_BYTES=103809024
      - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
      - KAFKA_MIN_INSYNC_REPLICAS=2
      - KAFKA_DEFAULT_REPLICATION_FACTOR=2
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper0.example.com:2181,zookeeper1.example.com:2181,zookeeper2.example.com:2181
      - KAFKA_BROKER_ID=2
    ports:
      - 10092:9092
      - 10093:9093
    networks:
      - basic
    depends_on:
      - zookeeper1.example.com
      - zookeeper2.example.com
      - zookeeper3.example.com

  zookeeper1.example.com:
    container_name: zookeeper0.example.com
    image: hyperledger/fabric-zookeeper
    environment: 
      - ZOO_MY_ID=1
      - ZOO_SERVERS=server.1=zookeeper1.example.com:2888:3888 server.2=zookeeper2.example.com:2888:3888 server.3=zookeeper3.example.com:2888:3888
    ports:
      - 2181:2181
      - 2888:2888
      - 3888:3888
    networks:
      - basic

  zookeeper2.example.com:
    container_name: zookeeper1.example.com
    image: hyperledger/fabric-zookeeper
    environment: 
      - ZOO_MY_ID=2
      - ZOO_SERVERS=server.1=zookeeper1.example.com:2888:3888 server.2=zookeeper2.example.com:2888:3888 server.3=zookeeper3.example.com:2888:3888
    ports:
      - 12181:2181
      - 12888:2888
      - 13888:3888
    networks:
      - basic

  zookeeper3.example.com:
    container_name: zookeeper2.example.com
    image: hyperledger/fabric-zookeeper
    environment: 
      - ZOO_MY_ID=3
      - ZOO_SERVERS=server.1=zookeeper1.example.com:2888:3888 server.2=zookeeper2.example.com:2888:3888 server.3=zookeeper3.example.com:2888:3888
    ports:
      - 22181:2181
      - 22888:2888
      - 23888:3888
    networks:
      - basic

这是我从订购者那里收到的日志:

UTC [fsblkstorage] newBlockfileMgr -> INFO 014 从块存储中获取块信息

UTC [comm.grpc.server] 1 -> INFO 015 流式调用已完成 grpc.service=orderer.AtomicBroadcast grpc.method=广播 grpc.peer_address=192.168.0.18:59044 grpc.code=OK grpc.call_duration=107.803049毫秒

UTC [orderer.consensus.kafka] newChain -> INFO 016 [channel: allarewelcome] 具有最后一个持久偏移量 -3 和最后一个记录块 [0] 的起始链

UTC [orderer.commmon.multichannel] newChain -> INFO 017 创建并启动新链 allarewelcome

UTC [orderer.consensus.kafka] setupTopicForChannel -> INFO 018 [channel: allarewelcome] 设置此频道的主题...

UTC [common.deliver] DeliverBlocks -> WARN 019 [channel: allarewelcome] 由于同意错误,拒绝 192.168.0.18:59042 的交付请求

UTC [comm.grpc.server] 1 -> INFO 01a 流式调用已完成 grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.0.18:59042 grpc.code=OK grpc.call_duration=112.653714毫秒

UTC [orderer.consensus.kafka] setupProducerForChannel -> INFO 01b [channel: allarewelcome] 正在为此频道设置生产者... 2020-01-08 14:56:58.253 UTC [orderer.consensus.kafka] startThread -> INFO 01c [channel: allarewelcome] Producer 设置成功

UTC [orderer.consensus.kafka] sendConnectMessage -> INFO 01d [channel: allarewelcome] 即将发布 CONNECT 消息...

UTC [common.deliver] DeliverBlocks -> WARN 01e [channel: allarewelcome] 由于同意错误,拒绝 192.168.0.18:59046 的交付请求

UTC [comm.grpc.server] 1 -> INFO 01f 流式调用完成 grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.0.18:59046 grpc.code=OK grpc.call_duration=186.949863毫秒

UTC [common.deliver] DeliverBlocks -> WARN 020 [channel: allarewelcome] 由于同意错误,拒绝 192.168.0.18:59052 的交付请求

UTC [comm.grpc.server] 1 -> INFO 021 流式调用已完成 grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.0.18:59052 grpc.code=OK grpc.call_duration=201.05081毫秒

UTC [common.deliver] DeliverBlocks -> WARN 022 [channel: allarewelcome] 由于同意错误,拒绝 192.168.0.18:59054 的交付请求

UTC [comm.grpc.server] 1 -> INFO 023 流式调用已完成 grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.0.18:59054 grpc.code=OK grpc.call_duration=201.212849毫秒

UTC [orderer.consensus.kafka] startThread -> INFO 024 [channel: allarewelcome] CONNECT 消息发布成功

UTC [orderer.consensus.kafka] setupParentConsumerForChannel -> INFO 025 [channel: allarewelcome] 设置此频道的父消费者...

UTC [orderer.consensus.kafka] startThread -> INFO 026 [channel: allarewelcome] 父消费者设置成功

UTC [orderer.consensus.kafka] setupChannelConsumerForChannel -> INFO 027 [channel: allarewelcome] 设置此通道的通道消费者(起始偏移量:-2)...

UTC [orderer.consensus.kafka] startThread -> INFO 028 [channel: allarewelcome] 频道消费者设置成功

UTC [orderer.consensus.kafka] startThread -> INFO 029 [channel: allarewelcome] 启动阶段成功完成

UTC [comm.grpc.server] 1 -> INFO 02a 流式调用已完成 grpc.service=orderer.AtomicBroadcast grpc.method=Deliver grpc.peer_address=192.168.0.18:59056 grpc.code=OK grpc.call_duration=203.740188毫秒

提前致谢!

【问题讨论】:

  • 到底是什么问题?
  • 我应该收到这些消息UTC [cli.common] readBlock -> INFO 002 Got status: &{SERVICE_UNAVAILABLE}吗?
  • 这些是 INFO 消息。他们有什么问题?目前尚不清楚哪些“服务”不可用
  • 我将使用调试日志级别重新构建容器以查看更多信息。问题(至少在我看来)是订购服务应该随时可用,对吗?

标签: apache-kafka hyperledger-fabric channel


【解决方案1】:

如果频道已创建,您可能会收到此错误。 在这种情况下尝试:

./byfn.sh -m restart -c channelName

如果你使用的是byfn,否则只需重启网络清除数据。

此外,请确保在创建网络和创建通道时,将通道名称传递给对等通道创建。

无论如何,这也可能是与 Kafka 相关的错误。 我个人在创建网络时也收到了这条消息,即使我没有使用 Kafka,但我记得我读过一些与缺少 kafka 环境变量相关的问题。 考虑到它们是警告,因此您可以继续,您的频道似乎已经创建。

【讨论】:

  • 如果问题解决了,请勾选“答案”。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多