Я провожу некоторые тесты с apache kafka, обе версии 1.1.1 и 2.1.1 имеют такое же абсурдное поведение, которое я не могу понять .. (и я не знаю, почему, если это проблема, которая вызываетнекоторое неравномерное потребление разделов в некоторых моих приложениях)
это было протестировано в кластере с 5 узлами + 3 zk, а также в одном экземпляре docker compose с 1 zk + 1 узлом,
приУ меня есть тема с довольно большим количеством сообщений, потребитель после того, как он потребил случайное количество (иногда 800 МБ, иногда 3 ГБ), останавливается ... даже в течение нескольких часов. Если я затем ввожу в терминал любую клавишу с клавиатуры, он затем возобновляетпотребление ... какое-то время потом снова останавливается .. это происходит либо если производитель включен, либо выключен .. я гуглил и ничего не нашел ..
Я выложу некоторые подробности о простом воспроизведениипроблема:
# create the topic
docker exec -ti compose-single_kafka_1 bash -c '/opt/kafka/bin/kafka-topics.sh \
--zookeeper zk:2181 \
--create\
--topic test_bench\
--partitions "30"\
--replication-factor "1"\
--config "retention.ms=864000000"\
--config "delete.retention.ms=86400000"\
--config "file.delete.delay.ms=3600000"\
--config "file.delete.delay.ms=3600000"\
--config "segment.bytes=107374182"\
--config compression.type=zstd \
--config "retention.bytes=1073741824"\
'
## start producer :
docker exec -ti compose-single_kafka_1 bash -c '/opt/kafka/bin/kafka-producer-perf-test.sh --topic test_bench --throughput 4000000 --record-size 300 --num-records 40000000 --producer-props bootstrap.servers="127.0.0.1:9092"'
## after a while.. or when it has terminated
# start consumer
docker exec -ti compose-single_kafka_1 bash -c '/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test_bench --from-beginning --skip-message-on-error --property "group.id=test-console-g'$(date +%s)'" --property "client.id='$(date +%s)'"' | pv -i1 -b -r >/dev/null
## after 1 minute or two it will pause ( start multiple consumer at same time to speedup increase this frequency )
# when the consumer is stuck, just press ENTER or any key to resume it.. but why??
без исключений и сообщений, зарегистрированных на обоих клиент / сервер (также пытались с выводом потребителем в файл, чтобы увидеть, если что-то зарегистрировано, но ничего.. это просто пауза сама ..)
Спасибо