java在一个jvm中运行多个spring引导jar
我的项目包含几个服务,每个服务都用@SpringBootApplication注释,可以通过“gradle bootRun”在随机端口上运行
是否可以将服务构建到JAR中,并在一个JVM中一起运行它们?不管是通过编程方法还是将它们放在容器中
如果可能的话,请给我看一些说明。谢谢
你可以在下面搜索框中键入要查询的问题!
我的项目包含几个服务,每个服务都用@SpringBootApplication注释,可以通过“gradle bootRun”在随机端口上运行
是否可以将服务构建到JAR中,并在一个JVM中一起运行它们?不管是通过编程方法还是将它们放在容器中
如果可能的话,请给我看一些说明。谢谢
# 1 楼答案
是的,你可以检查这个SO
但是,如果分离运行中的用户进程和简单性是核心,我建议使用Docker containers,容器的每个运行实例(您的应用程序)将在同一台或分布式主机上运行自己的JVM
# 2 楼答案
这有点粗糙,但可以做到。不久前我写了一篇关于它的博文:Running Multiple Spring Boot Apps in the Same JVM。基本思想是在不同的类加载器中运行每个Spring引导应用程序(因为否则会出现资源冲突)
我个人只把它用于测试。我更愿意在生产中的不同docker容器中运行不同的应用程序。但是对于测试来说,它非常酷:您可以快速启动应用程序并调试一切
# 3 楼答案
如果您想在单个JVM中启动多个spring boot微服务,那么可以通过启动多个线程来实现。请参考此处的示例代码https://github.com/rameez4ever/springboot-demo.git