Повышение производительности Kafka Producer: использование нескольких шаблонов Kafka вместо одного шаблона с динамическоJAVA

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

Сообщение Anonymous »

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

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

class ProducerService {
@Autowired
private KafkaTemplate kafkaTemplate;

public void send(String topic, GenericRecord key, GenericRecord value) {
ListenableFuture future = kafkaTemplate.send(topic, key, value);
}
}

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

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

@Configuration
public class KafkaConfig {

// Define topics
@Value("${kafka.topic.first}")
private String firstTopic;

@Value("${kafka.topic.second}")
private String secondTopic;

@Bean(name = "firstKafkaTemplate")
public KafkaTemplate firstKafkaTemplate(ProducerFactory defaultKafkaProducerFactory) {
KafkaTemplate kafkaTemplate = new KafkaTemplate(defaultKafkaProducerFactory);
kafkaTemplate.setDefaultTopic(firstTopic);
return kafkaTemplate;
}

// Second Kafka template bean definition follows similarly
}

class ProducerService {
@Autowired
@Qualifier("firstKafkaTemplate")
private KafkaTemplate firstTopicTemplate;

// Second Kafka template injection follows similarly

public void send(String topic, GenericRecord key, GenericRecord value) {
ListenableFuture future;
if ("first".equalsIgnoreCase(topic)) {
future = firstTopicTemplate.sendDefault(key, value);
} else if ("second".equalsIgnoreCase(topic)) {
future = secondTopicTemplate.sendDefault(key, value);
} else {
throw new RuntimeException("Topic is not configured");
}
}
}
При такой настройке каждая тема имеет собственный шаблон Kafka. Повысит ли этот подход производительность по сравнению с подходом с динамическими темами?
Я понимаю, что Kafka выполняет пакетную обработку внутри себя и отправляет пакеты в Kafka через отдельный поток. Учитывая это, какой подход будет более эффективным с точки зрения производительности? Или между этими двумя подходами разница в производительности будет незначительной?

Подробнее здесь: https://stackoverflow.com/questions/736 ... vs-a-singl
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Повышение производительности сопоставления шаблонов в OpenCV
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Kafka Producer не повторяет попытку в приложении Spring Boot
    Гость » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Гость
  • Springboot Kafka Producer и InvalidpidmappingException
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Повышение производительности std::vector с помощью методов оптимизации C++20: использование концепций и диапазонов
    Anonymous » » в форуме C++
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Почему обратный вызов в методе Producer.send не выполняется при невозможности отправки сообщения?
    Гость » » в форуме JAVA
    0 Ответы
    52 Просмотры
    Последнее сообщение Гость

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