2011-04-09 72 views
0

如何将新代码部署到生产中,以便客户体验不会中断?在部署期间最大限度地减少客户中断

我们假设一个电子商务网站处于负载平衡的环境中,其中没有共享会话状态。 Tomcat是应用程序服务器。 (1)使用JavaRebel,但我没有这方面的经验,不知道会出现什么问题(可能会话对象不匹配,例如,如果您从一个(2)实时监控用户在购物体验中的位置,并防止将新商品添加到购物车中;等到所有现有购物者完成订单或已过期;然后关闭服务器并部署新代码。

任何想法?或者,这种情况下,在Web服务器之间使用类似兵马俑的方式共享会话数据至关重要?然后,如何将新代码部署到会话的对象成员已被删除或添加的Web服务器?

+0

对于那些要求在这个问题上关闭的人,这是怎么一回事呢?常见问题表明我可以问“编程专业特有的问题”。 – Bradford 2011-04-09 14:17:03

+0

我没有投票结束,但部署通常是系统管理员/操作而不是开发人员的关注,因此服务器故障可能更合适。 – SimonJ 2011-04-09 14:30:13

回答

1

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

+0

但这样做会导致用户跳到下一个没有会话信息的可用Web服务器。 – Bradford 2011-04-09 14:26:31

2

的常用方法:如果没有太多的状态,那么存储它的客户端,在cookie

  • - 这也有不需要IP亲和力提出要求,可以更均匀地分布的优势
  • 共享存储(DB,兵马俑等) - 显然,这可以在一个安静的时间成为一个瓶颈
  • 部署和希望没有人从池中新的会话,然后监视日志,并等待注意到
  • 删除服务器请求关闭
相关问题