我已经创建了许多Spring Boot应用程序,它们都像魔术一样独立工作或者手动启动其中一个。
我的挑战是我想在Docker Swarm中部署包含所有服务的堆栈。
最初我并不了解发生了什么事,因为好像我的所有容器都挂了。
结果运行一个Spring Boot应用程序会增加我的CPU利用率,最多可以持续几秒钟(20秒+启动)。
现在问题是Docker Swarm同时启动了10个这样的容器,我的平均负载超过80,系统停止运行。容器HEALTHCHECKS开始超时,最终Docker重新启动它们。这是一个无休止的循环,可能会或可能不会稳定,如果它确实稳定,则需要至少30分钟。微型服务与大型Java EE应用程序的关系如此:(
有没有办法说服Docker逐个推出容器?我相信这会有很大的帮助。
有一个滚动更新参数 - https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/ - 但似乎不适用于启动部署。
非常感谢您的帮助。
我也尝试过systemd(这对于分布式微服务来说并不理想)。它的工作效率略好于Docker,但在同时部署所有应用程序时会遇到同样的问题。
最初我想尝试Kubernetes,但我已经在我的盘子上得到了足够的东西,如果我能够使用Docker Swarm,那就太棒了。
谢谢!