Сообщение производителя Spring-Kafka слишком медленноеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сообщение производителя Spring-Kafka слишком медленное

Сообщение Anonymous »

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

Код: Выделить всё

private KafkaTemplate kafkaTemplate;

List receive_data = parse(httpRequest);

List processed_data = process(receive_data);

processed_data foreach {
kafkaTemplate.send();
}

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

Код: Выделить всё

"qtp1206051975-94" #94 prio=5 os_prio=0 tid=0x00007fe054034800 nid=0x34c waiting on condition [0x00007fdfeb4f2000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for   (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2163)
at org.apache.kafka.clients.producer.internals.BufferPool.allocate(BufferPool.java:143)
at org.apache.kafka.clients.producer.internals.RecordAccumulator.append(RecordAccumulator.java:218)
at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:942)
at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:865)
Моя конфигурация Kafka Producer:

Код: Выделить всё

    props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName());
props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class.getName());
props.put(ProducerConfig.ACKS_CONFIG, "all");
props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
props.put(ProducerConfig.COMPRESSION_TYPE_CONFIG, CompressionType.ZSTD.name);
props.put(ProducerConfig.RETRIES_CONFIG, Integer.MAX_VALUE);
props.put(ProducerConfig.MAX_BLOCK_MS_CONFIG, 60000);
props.put(ProducerConfig.BATCH_SIZE_CONFIG, 100);
props.put(ProducerConfig.LINGER_MS_CONFIG, 10);
props.put(JsonSerializer.ADD_TYPE_INFO_HEADERS, false);
Я изменил буфер.память с 32 МБ по умолчанию на 64 МБ или 128 МБ, но все равно получаю тот же результат.
TPS не увеличивается.
И мое весеннее приложение использует Jetty в качестве веб-сервера
Я изменил поток Jetty

Код: Выделить всё

server:
jetty:
threads:
max: 400
min: 20
может кто-нибудь помочь мне в этом, спасибо.
Я хочу улучшить TPS приложения, теперь оно выглядит зависшим из-за скорости доставки сообщений Kafka.
п>

Подробнее здесь: https://stackoverflow.com/questions/789 ... e-too-slow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»