0

您如何将新代码部署到生产环境中以不中断客户体验?

让我们假设一个电子商务网站处于负载平衡环境中,其中没有共享会话状态。Tomcat 是应用服务器。

我能想到的唯一想法是(1)使用JavaRebel,但我没有这方面的经验,也不知道会出现什么问题(可能是会话对象不匹配,例如,如果你从一个类中删除一个成员)(2 ) 实时监控您的用户在购物体验中的位置,并防止将新商品添加到购物车中;等到所有现有购物者完成订单或过期;然后关闭服务器并部署新代码。

有任何想法吗?或者在这种情况下,使用 terracotta 之类的东西在 Web 服务器之间共享会话数据至关重要?再说一遍,如何将新代码部署到已删除或添加会话对象成员的 Web 服务器?

4

2 回答 2

2

我见过的常见方法:

  • 如果状态不多,则将其存储在客户端的 cookie 中 - 这还具有不需要 IP 亲和性的优点,因此可以更均匀地分配请求
  • 共享存储(DB、Terracotta 等)——显然这会成为瓶颈
  • 在安静的时间部署,希望没有人注意到
  • 从池中删除服务器以获取新会话,然后监视日志并等待请求消失
于 2011-04-09T14:06:34.500 回答
1

一种常见的方法是一次从负载平衡池中取出一台服务器,将新代码部署到其中,然后将其放回池中。

于 2011-04-09T13:39:32.647 回答