Kafka在EC2的Docker上使用Hyperledger Fabric记录了巨大的规模

时间:2018-10-25 10:27:45

标签: apache-kafka docker-compose hyperledger-fabric

在AWS EC2环境中尝试Hyperledger Fabric PoC时遇到一些问题。

我的网络建立了3个组织,3个对等点(每个对等点1个),2个订购者,4个kafka,3个动物园管理员。 每个组织都位于不同的实例中,Ordering + Kafka + Zookeeper共享同一实例。 我还在另一个实例上使用Node SDK 1.2。

在我尝试从另一个实例使用Artillery进行性能测试之前,一切似乎都工作正常。 首先,当我尝试使用多个同时进行的用户(大约50个)进行测试时,无法获得高吞吐量,网络似乎崩溃了。大炮的图形显示性能不稳定,然后完全消失。

现在是第二个也是最重要的一点,当我将负载降低到5个同时用户时,性能问题消失了,但我注意到在订购服务的实例不久之后,Kafka和Zk 磁盘空间不足。我做了一些研究,发现我的/ var / lib / docker / overlay2目录下有大量数据。

在一些较大的容器中,我找到了一个包含1gb .log文件的kafka-logs目录。我设法制作了纳米纸,并且显示了以下证书

  

BEGIN证书

     

[...]

     

结束证书   重复

它正在以1gb的速度拆分文件并存储其中的许多文件,例如30分钟内达到3Gb。

我尝试在自己的撰写以及daemon.json中使用Docker日志轮换:

logging:
   driver: "json-file"
   options:
      max-size: "1m"
      max-file: "3"

它实际上适用于目录/ var / lib / docker / containers,其中.log文件限制为1Mb,最大3个文件。但是overlay2的问题仍然存在。

我的kafka泊坞窗作曲家:

kafka:
    image: hyperledger/fabric-kafka:0.4.10
    restart: always
    environment:
      - KAFKA_MESSAGE_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
      - KAFKA_REPLICA_FETCH_MAX_BYTES=103809024 # 99 * 1024 * 1024 B
      - KAFKA_UNCLEAN_LEADER_ELECTION_ENABLE=false
      - KAFKA_MIN_INSYNC_REPLICAS=2
      - KAFKA_DEFAULT_REPLICATION_FACTOR=3
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper0.example.com:2181,zookeeper1.example.com:2181,zookeeper2.example.com:2181
      - log.retention.bytes = 1000000
      - log.retention.ms = 30000
    logging:
     driver: "json-file"
     options:
      max-size: "1m"
      max-file: "3"

如您所见,我也尝试过log.retention.bytes = 1000000,但是我不确定这是对参数的正确用法,因为它没有任何作用。

还重新启动了docker服务。我已经为此苦了一个星期,所以我已经尝试了在线上找到的最常见的解决方案。

有什么想法吗?

预先感谢

0 个答案:

没有答案