Docker Swarm CPU使用Spring Boot容器部署过载

我已经创build了一些Spring Boot应用程序,它们都像隔离魔术一样工作,或者手动启动另一个应用程序。

我的挑战是我想要在Docker Swarm中部署一个包含所有服务的堆栈。

起初我不明白发生了什么事情,因为好像所有的容器都挂了。

结果发现运行一个Spring Boot应用程序激发了我的CPU利用率,使其达到最佳状态好几秒钟(启动20s +)。

现在的问题是,Docker Swarm同时启动了10个这样的容器,我的负载平均值高于80,系统崩溃了。 容器HEALTHCHECKS开始超时,最终Docker重新启动它们。 这是一个无休止的循环,可能会或可能不会稳定,如果稳定,至less需要30分钟。 微服务与大胖Java EE应用程序

有什么方法可以说服Docker逐一推出容器吗? 我相信这会有很大帮助。

有一个滚动的更新参数 – https://docs.docker.com/engine/swarm/swarm-tutorial/rolling-update/ – 但似乎不适用于启动部署。

对你的帮助表示感谢。

我也试过systemd(这对于分布式微服务来说并不理想)。 它比Docker稍微好一些,但同时部署所有应用程序时也会遇到同样的问题。

最初我想尝试Kubernetes,但是我的盘子已经够用了,如果我可以摆脱Docker Swarm,那将会很棒。

谢谢!