【问题标题】:Microservice Decomposition for Batch Job批处理作业的微服务分解
【发布时间】:2020-08-27 06:48:13
【问题描述】:

我正在阅读有关微服务架构的不同帖子和书籍,以回答我与分解策略相关的问题。问题是,我们是否应该专门创建一个新的微服务来处理批处理作业?

就我而言,批处理作业的本质是从数据库中读取数据,并在数据处于特定状态时对外部系统进行 REST 调用。此外,假设批处理作业每天只运行一次。

我与此相关的问题是

  1. 当我们必须运行 BATCH 作业时,它应该是一个新的微服务,这是行业规范/惯例吗,因为批处理作业会消耗资源,这会阻碍传入流量并增加延迟。
  2. 运行批处理作业是否会影响向客户端公开的 API 的延迟?

【问题讨论】:

    标签: spring amazon-web-services spring-boot spring-batch microservices


    【解决方案1】:

    我会说是的,这是有道理的。通常批处理作业具有非常不同的开发生命周期和部署频率。

    我自己也做过类似的事情,我完全相信这是值得的。

    还可以旋转实例以每天运行一次作业 - 这可以在云环境中节省资金。

    延迟:这取决于其他系统。您可能希望限制对其他系统的请求,以免将其置于繁重的负载下。

    【讨论】:

    • 感谢您的评论。如果我说批处理作业的业务逻辑就像我提到的那样简单,怎么样。我的批处理作业不会像在计费周期结束时计算金额那么复杂。
    • 是的,这也是关注点分离。离线处理与在线处理完全不同,并且在实现/领域也可能有所不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2018-04-24
    • 2020-05-18
    相关资源
    最近更新 更多