В левой теме происходит около двухсот тысяч (200 000) сообщений в секунду, а в правой теме — около двух тысяч (2000) сообщений в секунду.
Каждая тема имеет 96 разделов со временем хранения 3 часа.
Операция соединения имеет временное окно в 15 минут.
У нас есть очень тревожная проблема: потребитель продолжает получать перебалансировку через некоторое время, и отставание потребителей может достигать 200 миллионов и более.
Мы провели множество настроек и тестов нашего сервиса, но проблема все еще сохраняется. Потребитель начинает ребалансировку, когда у нас есть 100 000 транзакций в секунду или более.
Ниже представлена последняя используемая нами конфигурация:
- auto.offset.reset = последняя< /li>
session.timeout.ms = 300000 - heartbeat.interval.ms = 75000 (1/4 от session.timeout.ms)
- fetch.max.wait.ms = 500
- fetch.min.bytes = 1048576
- fetch.max.bytes = 52428800
- max.partition.fetch.bytes = 1048576
- max.poll.interval.ms = 300000
- max.poll.records = 1
- request.timeout.ms = 120000
- default.api.timeout.ms = 60000
- cache.max.bytes.buffering = 104857600
- num.stream.threads = 48 (каждый модуль)
Ниже представлена последняя используемая нами конфигурация RocksDB:
- writeBufferSize = 67108864 (64 МБ)
- maxWriteBufferNumber = 3
- minWriteBufferNumberToMerge = 1
- blockCacheSize = 134217728 (128 МБ)
- увеличениеПараллелизм = 5
- compactionStyle = уровень
- totalOffHeapMemory = 16000000000 (16 ГБ)
- totalMemtableSize = 8000000000 (8 ГБ)
- compressionStyle = lz4
- cacheIndexAndFilterBlocksWithHighPriority = true
- pinL0FilterAndIndexBlocksInCache = true
- pinTopLevelIndexAndFilter = true
- optimizeFiltersForHits = false
- optimizeFiltersForMemory = false
- lruStrictCapacityLimit = false
- 10 брокеров (8 ядер, 2,3 ГГц, 16 ГБ ОЗУ)
- kafka версия = 3.8.0
- библиотека Kafka-streams = 3.1.2
Сервис работает в док-контейнере с двумя модулями (мы также пробовали использовать до 4 модулей).
Может ли кто-нибудь предоставить внутреннюю информацию или решения, чтобы мы могли иметь стабильный и быстрый потребитель сможет обрабатывать такого рода сообщения?
Мы провели множество настроек конфигурации, особенно для потребительской конфигурации, указанной выше, после большого количества статей о настройке производительности в Интернете.< /p>
Мы попробовали :
[*]установка session.timeout.ms начиная с 30000 до 300000
[*]установка max.poll.interval.ms начиная с от 60000 до 300000.
[*]установка максимальной записи опроса: 500, 250, 100, 50, 20 и 1
[*]request.timeout.ms от 30000 до 120000
[*]развернутый сервис в 2, 3 и 4 модулях, с 96 разделами в теме и num.stream.treads равно [partitions / pods_number]
[*]установка totalOfHeapMemory из 4 ГБ, 8 ГБ, и 16 ГБ и totalMemtableSize от 2 ГБ, 4 ГБ и 8 ГБ.
[*]установка writeBufferSize от 32 МБ до 128 МБ.
[*]установка true и false для кэшаIndexAndFilterBlocksWithHighPriority, pinL0FilterAndIndexBlocksInCache и pinTopLevelIndexAndFilter.
Подробнее здесь: https://stackoverflow.com/questions/793 ... r-100k-tps