Кафка регистрирует огромные размеры с Hyperledger Fabric на Docker на EC2 - PullRequest
0 голосов
/ 25 октября 2018

У меня возникла небольшая проблема с попыткой PoC Hyperledger Fabric в среде AWS EC2.

У меня настроена сеть с 3 оргами, 3 пирами (по 1 пиру), 2заказчики, 4 кафки, 3 зоопарка.Каждая организация находится в отдельном экземпляре, и Ordering + Kafka + Zookeeper совместно используют один и тот же экземпляр.Я также использую Node SDK 1.2 в другом экземпляре.

Казалось, что все работало нормально, пока я не попробовал тест производительности с использованием Artillery из другого экземпляра.Прежде всего, я не смог получить высокую производительность, когда попробовал провести тестирование со многими пользователями одновременно (около 50), сеть, казалось, рухнула.Графика от Artillery показывает нестабильную производительность, и затем она полностью умирает.

Теперь второе и самое важное, когда я снизил нагрузку до 5 одновременных пользователей, проблемы с производительностью исчезли, но я заметил, что через некоторое время экземпляр со службами заказа, Kafka и Zk не хватает места на диске .Я провел небольшое исследование и обнаружил огромное количество данных в моем каталоге / var / lib / docker / overlay2.

В некоторых больших контейнерах я нашел каталог kafka-logs с файлами 1gb .log.Мне удалось нанести один, и он показал некоторые сертификаты следующим образом

НАЧАТЬ СЕРТИФИКАТ

[...]

КОНЕЦ СЕРТИФИКАТА повторить

Это было разделение файлов по 1 ГБ и сохранение многих из них, скажем, 3Gb за 30 минут.

Я пытался использовать вращение docker log в моем compose, а также в daemon.json:

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

На самом деле он работал в каталоге / var / lib / docker / Containers, где файлы .log ограничены 1 МБ и 3 файлами максимум.Но проблема с оверлеем 2 сохраняется.

Мой docker composer для 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.Я боролся с этим в течение недели, поэтому я уже попробовал наиболее распространенные решения, которые я нашел в Интернете.

Есть идеи?

Заранее спасибо

1 Ответ

0 голосов
/ 12 марта 2019

Параметр конфигурации должен быть:

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

...