我的项目包含多个服务,每个服务都使用@SpringBootApplication进行注释,并且可以通过" gradle bootRun"在随机端口上运行。
是否可以将服务构建到jar中并在一个JVM中一起运行?无论是通过编程方法还是将它们放在容器中。
如果可能,请告诉我一些说明。谢谢!
答案 0 :(得分:6)
有点hacky,但可以做到。我不久前写了一篇关于它的博客文章:Running Multiple Spring Boot Apps in the Same JVM。基本思想是在不同的类加载器中运行每个Spring Boot应用程序(因为否则会出现资源冲突)。
我个人仅用于测试。我更喜欢在生产中的不同docker容器中运行不同的应用程序。但是对于测试它非常酷:您可以快速启动应用程序并调试所有内容......
答案 1 :(得分:0)
是的,您可以查看SO。
但是,如果分离运行用户进程和简单性是核心,我建议使用Docker containers,每个运行的容器实例(您的应用程序)将在其自己的JVM上运行相同或分布式宿主
答案 2 :(得分:0)
如果要在单个JVM中启动多个spring boot微服务,则可以通过启动多个线程来实现。请在此处参考示例代码https://github.com/rameez4ever/springboot-demo.git