在消费 Kafka 消息时调度作业

Scheduling jobs while consuming Kafka messages

我想构建一个 Spring 引导应用程序,它可以同时执行多个不同的任务。我在互联网上进行了研究,但找不到任何出路。让我详细说说。 我想以特定的时间间隔开始工作,例如每天一次。我可以使用 Spring Quartz 来完成。我还想在专用的互联网地址上收听消息。消息将来自 Apache Kafka 平台。因此,我想将 Kafka 集成用于 Spring 框架。 是否适用(一直监听消息,按时执行定时任务)

从功能上讲,这种设计很好:单个 Spring 启动应用程序可以在执行 quartz 作业的同时使用 Kafka 消息。

但更高层次,你应该问为什么这两个功能属于一个应用程序。石英作业和被消费的卡夫卡消息之间是否存在某种内在关系?您是否只是将它们组合在一起以将自己限制在一个应用程序中并节省 compute/memory 资源?

您还应该考虑对可伸缩性的影响。如果您需要提高使用 Kafka 消息的速率怎么办?如果您扩展您的应用程序以获得更多 Kafka 消费者,您必须担心现在有多个应用程序触发您的 quartz 作业。

所以是的,它可以完成,但没有更多细节,听起来你应该将这个设计分成 2 个独立的应用程序:一个用于 Quartz,一个用于 Kafka 消费。