Каково лучшее время отклика синхронного производителя kafka

Мы настроили кластер Kafka с тремя узлами и создали тему с коэффициентом репликации 3. Мы передаем данные в этот кластер и видим, что некоторые сообщения занимают более 50 мс. При дальнейшем анализе мы обнаружили, что есть задержка в получении ответа от брокера, так как мы установили производителя.acks для всех.

При увеличении num.replica.fetchers с 1 до 4 мы видим некоторое улучшение. Но там также на каждые 150 сообщений одно сообщение превышает 50 мс, и мы используем синхронного производителя. Но когда num.replica.fetchers равно 1, на каждые 100 сообщений одно сообщение превышает 50 мс.

В минуту мы отправляем 500 тыс. сообщений в наш кластер.

Наша конфигурация машины:

RAM: 8 GB
Hard disk type: HDD
No. of processors: 32

Является ли это оптимизированным временем производителя кафки? Нужно ли нам настраивать какое-либо свойство, чтобы получить минимальную задержку.

Кроме того, каково наилучшее минимальное время для производства, если у нас есть producer.acks как у всех.


person Hemnath    schedule 11.06.2019    source источник


Ответы (1)


Вы можете попробовать сжать или уменьшить размер пакета, чтобы сделать размер запроса меньше и, следовательно, быстрее, теоретически.

Я не вижу особой необходимости в установке acks для всех.

Вы можете установить коэффициент репликации равным 3, мин. в репликах синхронизации - 2, затем acks - 1, и у вас будет довольно хороший шанс не потерять данные в случае выхода из строя брокера.

Еще одним решением может быть просто запуск кода производителя на брокере или машине, которая физически подключена к тому же коммутатору, что и они, чтобы уменьшить задержку в сети.

person OneCricketeer    schedule 13.02.2020