gpt4 book ai didi

java - 我们在spring实现微服务架构时是否创建了不同的项目

转载 作者:行者123 更新时间:2023-11-30 07:54:50 24 4
gpt4 key购买 nike

我对微服务架构感到困惑。我无法理解如何在 spring 中实现微服务架构。在 Spring ,我们使用 @RestController 作为 Rest API。假设我们有两个如下所示的休息 Controller

@RestController
@RequestMapping("/user")
public class UserService {
// this class will hanlder operations related to user
}

@RestController
@RequestMapping("/role")
public class RoleService {
// this class will hanlder operations related to role
}

两个其余 Controller 都属于一个项目。我们可以说我们上面的结构是微服务吗?或者我们必须创建两个项目,一个是 UserServiceProject,另一个是 RoleServiceProject。在 UserServiceProject 中,我们为用户操作的 rest API 创建了 Rest Controller。在 RoleServiceProject 中,我们为角色操作的 rest API 创建了 Rest Controller。

正如微服务架构所说,每个服务都应该可以独立部署。从这个定义我们可以说,如果我们有 2 个服务,我们需要创建两个项目,以便两个项目都可以独立部署。

另请注意,这两种服务共享同一个数据库,并且用户和角色之间存在关系。

最佳答案

微服务分离需要从功能角度(Z轴缩放)而不是技术角度思考。当你说每个单独的服务时,这可能并不意味着每个 api 都应该作为不同的服务放置,它可以被认为是构成用户逻辑服务的一组 api,可以单独开发/测试/部署/管理。当您拥有可执行用户管理、库存管理、订单管理等所有功能的单体应用程序时,将这些模块分解为微服务是有意义的,这样完整的流程就可以通过这些服务之间的交互来构建。还要从扩展方面考虑,您是否需要根据需求扩展各个服务。

但是在您的情况下,当作为两种不同的服务公开时,用户管理和角色管理可能没有多大用处。用户、角色可以是共存的实体,它们共享相同的数据库和功能来实现。

关于java - 我们在spring实现微服务架构时是否创建了不同的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43664192/

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