【问题标题】:Puma zero downtime deployment with cluster mode and preload_app - what happens to new and current connections?使用集群模式和 preload_app 进行 Puma 零停机部署 - 新连接和当前连接会发生什么情况?
【发布时间】:2019-07-02 20:47:17
【问题描述】:

现在我的 puma 设置已成功运行,通过分阶段重启实现零停机部署(在 nginx 后面提供)。

它工作得很好,因为没有丢失连接并且新版本可以无缝使用。

但是:现在我们将进程计数设置为 CPU 数量 - 1,因此对于具有 32 个 CPU 的大型服务器,有 31 个 puma 进程,这些进程在分阶段重启期间会一个一个地重启。 这对我们来说确实需要很长很长的时间(大约 15 分钟,因为每个进程大约需要 30 秒才能启动(是的,很多 gem,大系统))。

我看到集群模式也可以通过设置preload_app! 用于快速部署 - 但我不明白部署期间发生了什么:

当前的请求会被丢弃吗?是否存在不接受新连接的小时间范围?我试图通过自述文件弄清楚它,但我不清楚到底发生了什么。

很高兴听到解释,谢谢!

【问题讨论】:

    标签: ruby-on-rails nginx puma application-server


    【解决方案1】:

    好的,我自己测试过:新连接卡住了,您必须等到您的工作人员完成加载。现有连接未关闭。因此,对于零停机部署,您确实需要进行分阶段重启(缺点是如果您有很多工作人员则需要很长时间)。

    【讨论】:

      猜你喜欢
      • 2016-03-17
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多