那么,下一个Jelastic问题!
我暂时停止使用Spring Webflow,因此任何负载平衡场景中的粘性会话都很重要。
我正在尝试使用Jelastic Traffic Distributor来实现蓝/绿部署。
我已经设置了两台服务器和前面的TD。我已经平衡了TD 100-0而不是服务器1,并将路由方法设置为Sticky Sessions。
此设置似乎运行良好,所有请求都转到服务器1,会话在那里维护。事实上,Sticky Sessions确保如果我将余额移动到50-50,那么已创建的会话将坚持服务器1。
我希望通过将新代码部署到服务器2来实现蓝绿色部署,同时TD仍然设置为100-0平衡,有利于服务器1.一旦代码部署,我将余额移至0- 100赞成服务器2.旧会话将继续运行,直到它们在服务器1中完成(即坚持它们被卡住),同时新会话将被创建并粘在运行新代码的服务器2上。反向重复以便以后部署。
documentation here意味着这种策略应该有效,特别是最后一行;
此外,在为任何服务器设置100%比率时,第二个将不会完全从设置中删除,因此它将能够处理已存在的会话
然而,我所看到的是,只要我将余额移至0-100,之前停留在服务器1上的会话就会丢失,所有请求将平衡到服务器2。
换句话说,文档的最后一行似乎不是真的?
答案 0 :(得分:0)
我们的文档中提供的信息不正确:
Also, upon setting 100% ratio for any server, the second one won’t be removed from the settings completely, so it will be able to process the already existing sessions.
我们的技术作家从文档中删除了这一行。
无法使用权重= 0的NGINX配置,NGINX将不会以此参数值启动,因此它是预期的行为。在UI面板中设置权重0时 - 后端服务器被排除在NGINX配置之外,所有请求都被定向到后端,这些后端保留在nginx上游。
还有另一种解决方案,您可以使用UI设置重量比99:1(例如,在Traffic Distributor中使用nginx-jelastic.conf设置10000:1)。在这种情况下,会话将丢失的可能性非常小。