为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 2 个服务器作为单独的进程运行?

如何将 2 个服务器作为单独的进程运行?

GCT1015 2022-05-21 20:34:48
我有 2 个服务,每个都有一个控制器。@Servicepublic class Service1{}@RestController@RequestMapping("/api")public class Controller1{}...@Servicepublic class Service2{}@RestController@RequestMapping("/api")public class Controller2{}我想在自己的进程中运行每个服务或控制器。在不创建两个应用程序的情况下如何做到这一点?这与我想要的类似,见下图:
查看完整描述

2 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

考虑到附加的组件图,我建议研究微服务架构。您将能够按域(电影、客户、评论)分离职责,甚至建立单独的访问规则(例如,电影目录的匿名访问和对客户数据的安全访问)。每个数据存储(DB1、DB2 等)将仅链接到负责的服务。此外,您将能够根据使用情况准确扩展必要的服务,例如 5 种电影服务、2 种客户数据服务和 3 种评论服务。

Gradle 或 Maven 将允许您轻松构建具有多个子模块的大型项目。您的一些模块将是应用程序模块,其中一些将是共享模块(模型、实用程序等)。

此外,我建议为每个项目设置一个单独的 repo,以简化变更管理和审查——这在大规模上将非常有帮助。

示例 Gradle 结构:

根模块

  • 楷模

  • 实用程序

  • 电影服务

  • 客户服务

  • 审查服务

每个服务子模块都将包含自己的 @SpringBootApplication 以及控制器、服务和存储库。当然,您需要将 Spring Boot Gradle 插件添加到每个服务子模块。

更新: 展望未来,将 Docker 配置添加到每个服务子模块并将每个应用程序作为 Docker 容器运行是明智的。Docker 将大大简化开发。


查看完整回答
反对 回复 2022-05-21
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

如果你能做这样的事情,那将是模棱两可的。例如,当您调用 localhost:8080/app -> 哪个控制器应该响应?也许您需要实现一个调度程序,其中包含一些应该调用哪些控制器的标准。我不明白这种分离有什么好处。您可以将您的应用程序划分为库并将它们添加为依赖项。



查看完整回答
反对 回复 2022-05-21
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号