Kafka очень мощен, когда дело доходит до потоковой передачи данных. Вы можете публиковать сообщения и иметь несколько потребителей для вашей темы Kafka. но иногда пропускная способность вашего издателя просто недостаточно высока, а процессоры вашего потребителя не выполняют много работы из-за медленного издателя.

В этой статье давайте поговорим о том, как вы можете улучшить производительность Kafka для своих производителей.

Нам нужно настроить некоторые свойства на стороне производителя.

размер партии

Это свойство определяет, сколько данных вы будете отправлять в одном пакете. размер пакета измеряет размер в байтах. вы должны использовать как можно больший размер пакета (в пределах доступной памяти), чтобы производитель одного пакета мог собрать больше данных перед его отправкой.

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

задерживаться.мс

Это время ожидания производителя перед отправкой данных. предположим, что ваш linger.ms равен 100 мс, тогда производитель будет ждать 100 мс, чтобы получить полный пакет на основе batch.size и потом отправит. если пакет не будет заполнен за это время, то производитель отправит данные после достижения предела в 100 мс.

Попробуйте увеличить значение linger.ms, чтобы получить больше байтов в одном пакете перед его отправкой.

Помните, что больший размер пакета будет означать большую пропускную способность, а также большую задержку.

Алгоритм сжатия

Kafka позволяет использовать сжатие отправляемых данных. выберите LZ4 или Snappy, поскольку они работают лучше.

Количество разделов

Попробуйте увеличить количество разделов, чтобы обеспечить параллелизм. это автоматически увеличит пропускную способность.

Все клиенты Kafka позволяют настраивать любые конфигурации. Не стесняйтесь провести несколько экспериментов по настройке этих конфигураций и выбрать наилучшую конфигурацию для своего приложения на основе Kafka.

Если вам понравилась эта статья. следуй за мной. Я пишу о технологиях, программировании, стартапах и финансовых технологиях.

Ура!

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.