gpt4 book ai didi

spring-boot - 如何将预定作业实现为微服务

转载 作者:行者123 更新时间:2023-12-01 21:46:57 26 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,它为 Angular Web 界面提供 REST API。

这个 Spring Boot 应用程序中当前还有一个计划作业。工作是用一些实体填充数据库,比方说书籍(它们取自外部来源,更具体地说,取自网站)。我想将此作业放入单独的微服务中。

问题是微服务应该直接与共享数据库一起工作还是通过 REST 访问主应用程序。在第一种情况下,一些(如果不是全部)模型和服务将被共享,这看起来不太好。但在第二种情况下,每次访问数据库都将通过第一个应用程序。可以吗?

最佳答案

查看 SOLID设计原则。

S - 用于单一职责

微服务架构中还有一个同名模式:Single Responsibility Principle

The single responsibility principle is one of the principles defined as part of the SOLID design pattern. It implies that a unit, either a class, a function, or a microservice, should have one and only one responsibility.

At no point in time, one microservice should have more than one responsibility.

您应该根据您的应用程序设计来决定哪个微服务应该做什么,您肯定比我们更了解这一点。

但在阅读您的描述后,我建议如下:

  • 您当前的database-microservice应该连接到数据库并接受HTTP请求以将书籍保存在数据库中;

  • 你的新 cronjob-microservice 应该及时开始工作,从网站上获取书籍并向 database-microservice 发送 HTTP 请求,因此它应该'连接到数据库。

关于spring-boot - 如何将预定作业实现为微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60321127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com