Java 最大限度地减少部署期间的客户中断
如何将新代码部署到生产环境中,以使客户体验不会中断 让我们假设一个电子商务网站处于负载平衡环境中,没有共享会话状态。Tomcat是应用服务器 我能想到的唯一想法是(1)使用JavaRebel,但我没有这方面的经验,也不知道会出什么问题(可能是会话对象不匹配,例如,如果你从类中删除了一个成员)(2)实时监控你的用户在购物体验中的位置,并防止将新项目添加到购物车中;等待所有现有购物者完成订单或到期;然后关闭服务器并部署新代码Java 最大限度地减少部署期间的客户中断,java,session,terracotta,Java,Session,Terracotta,如何将新代码部署到生产环境中,以使客户体验不会中断 让我们假设一个电子商务网站处于负载平衡环境中,没有共享会话状态。Tomcat是应用服务器 我能想到的唯一想法是(1)使用JavaRebel,但我没有这方面的经验,也不知道会出什么问题(可能是会话对象不匹配,例如,如果你从类中删除了一个成员)(2)实时监控你的用户在购物体验中的位置,并防止将新项目添加到购物车中;等待所有现有购物者完成订单或到期;然后关闭服务器并部署新代码 有什么想法吗?或者,在这种情况下,在web服务器之间使用terracott
有什么想法吗?或者,在这种情况下,在web服务器之间使用terracotta之类的工具共享会话数据是至关重要的?那么,如何将新代码部署到已删除或添加会话对象成员的web服务器上?常见的方法是每次从负载平衡池中取出一台服务器,将新代码部署到该服务器上,然后将其放回池中 一种常见的方法是每次从负载平衡池中取出一台服务器,将新代码部署到其中,然后将其放回池中 我见过的常见方法:
- 如果没有太多的状态,则将其存储在客户端的cookie中-这还有一个优点,即不需要IP关联,因此请求可以更均匀地分布
- 共享存储(DB、Terracotta等)-显然这可能成为瓶颈
- 在安静的时间部署,希望没有人注意到
- 从池中删除新会话的服务器,然后监视日志并等待请求消失
- 如果没有太多的状态,则将其存储在客户端的cookie中-这还有一个优点,即不需要IP关联,因此请求可以更均匀地分布
- 共享存储(DB、Terracotta等)-显然这可能成为瓶颈
- 在安静的时间部署,希望没有人注意到
- 从池中删除新会话的服务器,然后监视日志并等待请求消失