spring-boot - 在使用 Kafka 消息时调度作业
问题描述
我想构建一个同时执行多个不同任务的 Spring Boot 应用程序。我在互联网上进行了研究,但我找不到任何出路。让我详细介绍一下。我想以特定的时间间隔开始工作,例如每天一次。我可以使用 Spring Quartz 来做到这一点。我还想在专用互联网地址上收听消息。消息将来自 Apache Kafka 平台。因此,我想将 Kafka 集成用于 Spring 框架。是否实际适用(一直在听消息并按时执行预定的作业)
解决方案
从功能上讲,这种设计很好:单个 Spring Boot 应用程序可以在执行石英作业的同时使用 Kafka 消息。
但更高层次,你应该问为什么这两个功能属于一个应用程序。石英作业和正在消费的 Kafka 消息之间是否存在某种内在关系?您是否只是将它们组合在一起以限制自己使用一个应用程序并节省计算/内存资源?
您还应该考虑对可伸缩性的影响。如果您需要提高消费 Kafka 消息的速率怎么办?如果您扩展您的应用程序以吸引更多 Kafka 消费者,那么您必须担心多个应用程序现在会触发您的石英工作。
所以是的,它可以完成,但是如果没有更多细节,听起来你应该将此设计分解为 2 个独立的应用程序:一个用于 Quartz,一个用于 Kafka 消费。
推荐阅读
- c# - 将图像保存到指定的 URL
- laravel - Laravel - 从请求中获取所有复选框值
- ubuntu - nginx:[警告] 0.0.0.0:80 上的服务器名称“myapp.com”冲突,忽略
- video-streaming - 如何创建由段组成的 RTSP 流?
- c# - C#:意外的输出
- mysql - 查询返回 BIT 数据类型的嵌套对象。如何获取位值?
- c# - UWP DataGrid 列绑定为 nullable double,但修改单元格不会修改属性
- c# - c#获取用户输入,在excel中搜索该输入,如果找到则将行复制到新电子表格
- oracle - Oracle 中 @@Error 的等价物是什么
- mysql - sql - 使用动态选择的表名进行分组