首页 > 解决方案 > 在使用 Kafka 消息时调度作业

问题描述

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

标签: spring-bootquartz-schedulerschedulingspring-kafka

解决方案


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

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

您还应该考虑对可伸缩性的影响。如果您需要提高消费 Kafka 消息的速率怎么办?如果您扩展您的应用程序以吸引更多 Kafka 消费者,那么您必须担心多个应用程序现在会触发您的石英工作。

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


推荐阅读