Kafka在ec2的docker上用hyperledger布料记录了巨大的尺寸

8wigbo56  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(360)

我在aws ec2环境中尝试使用hyperledger结构poc时遇到了一点问题。
我有我的网络设置了3个组织,3个对等点(每个对等点1个),2个订购者,4个Kafka,3个Zookeeper。每个组织位于不同的示例中,ordering+kafka+zookeeper共享同一个示例。我还在另一个示例上使用nodesdk1.2。
在我尝试使用另一个示例的火炮进行性能测试之前,一切似乎都很正常。首先,我无法获得高吞吐量的性能,当我尝试一个测试与许多同时用户(约50),网络似乎崩溃。从炮兵的图形显示不稳定的性能,然后它完全死亡。
第二,也是最重要的一点,当我将负载降低到5个同时使用的用户时,性能问题消失了,但我注意到,在订购服务的示例运行了很短一段时间后,kafka和zk的磁盘空间就用完了。我做了一些研究,在我的/var/lib/docker/overlay2目录下发现了大量数据。
在一些较大的容器中,我发现了一个带有1gb.log文件的kafka日志目录。我设法找到了一个,它显示了一些证书如下
开始证书
[...]
结束证书重复
它以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的docker composer :

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服务。我已经挣扎了一个星期,所以我已经尝试了最常见的解决方案,我发现网上。
有什么想法吗?
提前谢谢

zzwlnbp8

zzwlnbp81#

配置参数应为:

KAFKA_LOG_RETENTION_BYTES=1000000
KAFKA_LOG_RETENTION_MS=30000

参考织物测试kafka.yaml:
https://github.com/hyperledger/fabric-test/blob/master/feature-upgrade/dc-orderer-kafka-base.yml

相关问题