2010-12-22 32 views
0

我不知道有多大应用程序(包括几个应用程序服务器和负载均衡器)正在热切换到实际版本,而无需为用户离线。在这里跳过数据库shema - 仅应用程序层。如何专业地热点更新应用程序

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

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

回答

1

Rails网站经常使用Capistrano来部署代码。该代码在每台服务器上更新,并且网络服务器(主要是apache或nginx)通常使用乘客之类的插件。乘客重新启动并重新载入已更新的代码库(通过在rails根目录中触摸tmp/restart来完成)。下一个网络请求将被发送到正在使用更新代码的Passenger。

大部分的推特(从我听到后端处理是在Erlang),我相信几乎所有的Hulu都使用类似的技术。

+2

关于Erlang的词,它直接支持热代码交换,并且由于引用透明性而变得更容易一些。 – 2010-12-23 00:13:00

0

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

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

对所有服务器执行此操作后,最终会导致完全取消。