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

我有 2 个服务,每个都有一个控制器。


@Service

public class Service1

{

}


@RestController

@RequestMapping("/api")

public class Controller1

{

}

...


@Service

public class Service2

{

}


@RestController

@RequestMapping("/api")

public class Controller2

{

}

我想在自己的进程中运行每个服务或控制器。在不创建两个应用程序的情况下如何做到这一点?


这与我想要的类似,见下图:

http://img2.mukewang.com/6288dc7c0001899408530153.jpg

GCT1015
浏览 147回答 2
2回答

翻过高山走不出你

考虑到附加的组件图,我建议研究微服务架构。您将能够按域(电影、客户、评论)分离职责,甚至建立单独的访问规则(例如,电影目录的匿名访问和对客户数据的安全访问)。每个数据存储(DB1、DB2 等)将仅链接到负责的服务。此外,您将能够根据使用情况准确扩展必要的服务,例如 5 种电影服务、2 种客户数据服务和 3 种评论服务。Gradle 或 Maven 将允许您轻松构建具有多个子模块的大型项目。您的一些模块将是应用程序模块,其中一些将是共享模块(模型、实用程序等)。此外,我建议为每个项目设置一个单独的 repo,以简化变更管理和审查——这在大规模上将非常有帮助。示例 Gradle 结构:根模块楷模实用程序电影服务客户服务审查服务每个服务子模块都将包含自己的 @SpringBootApplication 以及控制器、服务和存储库。当然,您需要将 Spring Boot Gradle 插件添加到每个服务子模块。更新: 展望未来,将 Docker 配置添加到每个服务子模块并将每个应用程序作为 Docker 容器运行是明智的。Docker 将大大简化开发。

慕盖茨4494581

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

相关分类

Java