@KafkaListener лучшее решение для потребления более миллиона сообщений в день? - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть подпружиненный KafkaListener в проекте весенней загрузки:

@KafkaListener(topics = "topic-one", groupId = "groupone")
public void listen(CustomerDetails customerDetails) {
    if(customerDetails.getCertainDetails!= null && !customerDetails.getCertainDetails.isEmpty()) {
        dbInsert;
} else {
 log.info(customerDetails.toString)

}}

Этот слушатель будет получать более миллиона сообщений в день. Как я могу гарантировать, что я не столкнусь с проблемой параллелизма, когда поступает слишком много сообщений и вставляется БД? Или мне не нужно об этом беспокоиться? Есть ли лучшее решение для вышеуказанного кода?

1 Ответ

1 голос
/ 07 апреля 2020

Как я могу гарантировать, что у меня не возникнет проблема параллелизма, когда поступает слишком много сообщений и вставка БД

Если ваш клиент базы данных не работает асинхронно, вы, вероятно, не столкнетесь с этим проблема. KafkaListener блокирует, и вы настраиваете свой собственный параметр max.poll.records в свойствах потребителя Kafka для обработки противодавления; Вы никогда не добавите больше записей одновременно.

Видите ли вы в настоящее время что-либо, что указывает на то, что было бы фактом?

Есть ли лучшее решение

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

...