如何滚动重启一群杂种集群

2023-12-24

任何人都知道一种通过 Capistrano 以“滚动”方式重新启动杂种集群的好方法,例如一次一个杂种。如果每个人都有一点等待时间,让杂种也能加载 Rails 应用程序,那就太好了。

我已经做了一些搜索,但没有找到太多,所以在我自己深入研究 mongrel_cluster gem 之前寻求帮助。

Thanks!


我更同意你所寻求的跷跷板方法而不是滚动方法。问题在于,您最终会遇到这样的情况:在转换时,负载平衡可能会让用户在应用程序的不同版本之间来回切换。

我们提出的解决方案(在找到 SeeSaw 之前,我们不使用它)是让一半的杂种从负载平衡器中脱机。关闭它们。更新它们。启动它们。将这些杂种重新放入负载均衡器中,然后将另一半取下。关闭后半部分。更新后半部分。启动它们。这极大地减少了同时运行两个不同版本的应用程序的时间。 我写了一个 windows bat 文件来做到这一点。 (顺便说一句,不建议在 Windows 上部署)

需要注意的是,进行数据库迁移可能会使整个方法变得有点危险。如果您只有附加迁移,则可以在部署之前随时运行这些迁移。如果要删除列,则需要在部署后执行此操作。如果要重命名列,最好将其拆分为创建一个新列并将数据复制到其中的迁移以在部署之前运行,以及一个单独的脚本以在部署后删除旧列。事实上,如果您不付出特别的努力来组织它们,那么在生产数据库上使用常规迁移通常可能会很危险。所有这些都表明要更频繁地交付,因此每次更新的风险更低,复杂性也更低,但这是另一个回应的主题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何滚动重启一群杂种集群 的相关文章

随机推荐