Kafka使用Hyperledger Fabric在EC2上的Docker上记录大尺寸

问题描述 投票:1回答:1

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

我的网络设置有3个组织,3个对等点(每个1个对等点),2个订购者,4个卡夫卡,3个动物园管理员。每个组织位于不同的实例中,Ordering + Kafka + Zookeeper共享同一个实例。我也在不同的实例上使用Node SDK 1.2。

在我尝试使用另一个实例的炮兵进行性能测试之前,一切似乎都运转良好。首先,当我尝试与许多同时用户(大约50个)进行测试时,我无法获得高吞吐量性能,网络似乎崩溃了。炮兵的图形表现出不稳定的表现,然后完全死亡。

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

在一些较大的容器中,我找到了一个带有1GB .log文件的kafka-logs目录。我设法纳米一个,它显示了一些证书如下

开始证书

[...]

END CERTIFICATE重复

它将文件分成1gb并存储其中的许多文件,比如说30分钟就可以说3Gb了。

我尝试在我的compose和daemon.json中使用docker log rotate:

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,但我不确定params的正确用法,因为它没有任何效果。

还重启了docker服务。我一直在努力这一周,所以我已经尝试过我在网上找到的最常见的解决方案。

有任何想法吗?

提前致谢

apache-kafka docker-compose hyperledger-fabric
1个回答
0
投票

配置参数应为:

KAFKA_LOG_RETENTION_BYTES=1000000
KAFKA_LOG_RETENTION_MS=30000

请参阅fabric-test kafka.yaml:

https://github.com/hyperledger/fabric-test/blob/master/feature-upgrade/dc-orderer-kafka-base.yml

© www.soinside.com 2019 - 2024. All rights reserved.