现在,我已经成功运行了puma设置,并通过分阶段重启(在nginx之后)实现了零停机部署。
由于没有连接丢失并且可以无缝使用新版本,因此效果很好。
但是:现在,我们将进程数设置为CPU数量-1,因此对于具有32个CPU的大型服务器,有31个puma进程,它们会在分阶段重新启动期间逐个重新启动。 对于我们来说,这确实需要很长时间(大约15分钟,因为每个进程需要大约30秒才能启动(是的,很多宝石,大型系统))。
我看到集群模式也可以通过设置preload_app!
用于快速部署-但我不知道部署期间会发生什么:
当前请求会被丢弃吗?是否有一个很小的时间范围,不接受任何新的连接?我试图通过自述文件来弄清楚,但是我不清楚发生了什么。
很高兴听到一个解释,谢谢!
答案 0 :(得分:0)
好吧,我自己进行了测试:新的连接卡住了,您必须等到工作人员完成加载为止。现有连接未关闭。因此,对于零停机时间部署,您确实需要分阶段重新启动(缺点是如果有很多工作人员,则需要很长时间)。