@xderam 不好意思,我没太看懂,我理解这个问题反而后端服务会好一些,不用特殊处理吧?比如通常情况下单个 api 请求被分流到了 A 服务那就是 A 服务。相反,对于前端的服务,除了 HTML 还有剩余的一堆静态资源,这种多次请求会因为权重规则导致分裂。当然我指的现在的服务都是没做 version 处理适配灰度这种情况
@Frankcox 如果前提是没有做 version 的话,那就耐心的等待缓存到期或者全量发布完之后?我是感觉不应该用服务端的粘性会话去处理这个场景。如果 A 和 B 这种状态要长期存在,还是用一楼的方式比较好。或者四楼的那种“粘性会话”的方式也是不错的选择,这些都是业务侧可控的。而运维侧负载均衡提供的“粘性会话”是比较危险和不可控的,不太建议。以上不分前端后端的一个大原则。
不说后端 就是前端的话 。请求到新的 HTML 最好里面已经告诉浏览器去加载新的静态资源( version 为新的)。这就又回到 version 控制( hash )的问题上了。反正就是自主可控,虽然很繁琐,但打包发布工具这时候就有作用了。如果坚持不用 version 或者 hash 的方式话。上了 CDN 你又要找其它的“粘性会话”方案了。并非一劳永逸。