Планирование заданий при использовании сообщений Kafka - PullRequest
0 голосов
/ 01 июля 2019

Я хочу создать одно приложение Spring Boot, которое одновременно выполняет несколько различных задач.Я проводил исследования в интернете, но не мог найти выход.Позвольте мне вникнуть в детали.Я хотел бы начать работу через определенные промежутки времени, например, один раз в день.Я могу сделать это с помощью Spring Quartz.Я также хотел бы слушать сообщения на выделенном интернет-адресе.Сообщения будут приходить с платформы Apache Kafka.Таким образом, я хотел бы использовать интеграцию Kafka для Spring Framework.Это применимо практически (прослушивание сообщений все время и выполнение запланированных заданий в срок)

1 Ответ

2 голосов
/ 01 июля 2019

С функциональной точки зрения этот дизайн хорош: одно приложение Spring Boot может принимать сообщения Kafka при выполнении кварцевых заданий.

Но на более высоком уровне вы должны спросить , почему эти две функции принадлежат одному приложению. Есть ли какая-то внутренняя связь между кварцевыми заданиями и потребляемыми сообщениями Кафки? Вы просто объединяете их, чтобы ограничить себя одним приложением и сэкономить на вычислительных ресурсах / ресурсах памяти?

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

Так что да, это можно сделать, но без каких-либо подробностей это звучит так, как будто вы должны разбить этот дизайн на 2 отдельных приложения: одно для Quartz и одно для Kafka.

...