在一个jvm中运行多个弹簧启动罐

Sea*_*ang 10 java spring

我的项目包含多个服务,每个服务都使用@SpringBootApplication注释,并且可以通过"gradle bootRun"在随机端口上运行.

是否可以将服务构建到jar中并在一个JVM中一起运行?通过编程方法无关紧要或只是将它们放在容器中.

如果可能的话,请告诉我一些说明.谢谢!

Dav*_*zer 6

这有点hacky,但可以做到.我不久前写了一篇关于它的博客文章:在同一个JVM中运行多个Spring Boot应用程序.基本思想是在不同的类加载器中运行每个Spring Boot应用程序(因为否则会出现资源冲突).

我个人只用它进行测试.我更喜欢在生产中的不同docker容器中运行不同的应用程序.但是为了测试它非常酷:您可以快速启动应用程序并调试所有内容......


iam*_*ddy 0

是的,您可以检查这个SO

但是,如果分离运行用户进程和简单性是核心,我建议使用Docker 容器,容器的每个运行实例(您的应用程序)将在同一台或分布式主机上的自己的 JVM 中运行