Кафка производитель плохая производительность

У меня проблема с производителем кафки. На самом деле я использую Spring Kafka и отправляю сообщения через KafkaTemplate следующим образом:

DefaultKafkaProducerFactory<K, V> defaultKafkaProducerFactory = new DefaultKafkaProducerFactory<>(producerParams);
KafkaTemplate kafkaTemplate = new KafkaTemplate<>(defaultKafkaProducerFactory);
RecordMetadata recordMetadata = kafkaTemplate.send(record).get().getRecordMetadata();

Проблема в том, что иногда отправка сообщения занимает 4-20 сек. Там много сообщений, на отправку которых уходит 100 мс. Поэтому у меня есть несколько вопросов:

  1. Есть ли какая-либо связь между размером сообщения и пропускной способностью, какова связь?

  2. Что я должен проверить в первую очередь, может быть, я плохо настроился, в любом направлении?

1 ответ

Решение

Хорошо, на самом деле проблема была в машинах, процессор был слишком высок, в менеджере Cloudera были логи

Обнаруженная пауза в JVM или хост-машине (например, остановка GC или JVM не запланированы): приостановлена ​​примерно на 4332 мсек: GC не обнаружены.

Обнаруженная пауза в JVM или хост-машине (например, остановка GC в мире или JVM не запланирована): приостановлена ​​приблизительно на 10827 мсек: у пула GC 'ConcurrentMarkSweep' имеется коллекция (и): count=1 раз =11107 мс

Когда я запускаю то же самое на машине с 8 ядрами - проблема исчезла. еще одна вещь, которая была рекомендована, это увеличение размера кучи Java брокера

Если у вас огромное количество данных, тогда производитель Kafka требует настройки производительности. В этом случае лучше настроить batch.size, linger.ms & buffer.memory. Обычно в kafka конфигурация batch.size по умолчанию составляет 16 Кбайт. Чтобы улучшить производительность, просто увеличьте batch.size.

props.put(ProducerConfig.BATCH_SIZE_CONFIG, 16_384 * 4);
    // Send with little bit buffering
    props.put(ProducerConfig.LINGER_MS_CONFIG, 200);    
  //Use Snappy compression for batch compression.
    props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, "snappy");

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

Кафка Перформанс

Другие вопросы по тегам