0

我想知道有多大的应用程序(具有多个应用程序服务器和负载均衡器)可以热更新到实际版本而无需为用户脱机。在这里跳过数据库shema - 仅应用程序层。

例如,有几个由 haproxy 平衡的 glassfish 服务器,我们想要更新位于多个服务器上的应用程序。

在这种情况下使用什么?我知道这可能很复杂,但请告诉我方法。

4

2 回答 2

0

Rails 网站经常使用 Capistrano 来部署代码。代码在每台服务器上更新,网络服务器(主要是 apache 或 nginx)通常使用像乘客这样的插件。乘客重新启动并重新加载已更新的代码库(通过 rails 根目录中的 touch tmp/restart 完成)。下一个 Web 请求将发送给使用更新代码的乘客。

Twitter 的大部分内容(据我所知后端处理是在 Erlang 中),我相信几乎所有的 Hulu 都使用与此类似的技术。

于 2010-12-22T23:42:32.140 回答
0

在 >1-server-shared-nothing-configuration 中执行此操作的经典方法是使一台服务器离线,即指示前端 Web 服务器或负载平衡器仅将流量引导到其他服务器。

然后可以升级并重新启动脱机服务器。然后重新配置前端以将流量分配到升级后的服务器。

对所有服务器执行此操作最终会导致完整的 umgrade。

于 2010-12-23T09:23:26.077 回答