对于任何一个线上应用,在服务更新部署过程中,需要尽量保证客户端无感知,即从应用停止到重启恢复服务这个阶段不能影响正常的业务请求。在应用执行部署、停止、回滚、缩容、重置时,需要通过无损下线的配置来保证应用正常关闭。
视频教程
为什么需要无损下线
应用从停止到恢复服务期间很难保证不影响正常运行的消费者的业务请求。理想条件下,在整个服务没有请求时进行更新是安全可靠的。但实际情况下,无法保证在服务下线的同时没有任何调用请求。
传统的解决方式是通过将应用更新流程划分为手工摘除流量、停应用、更新重启三个步骤,由人工操作实现客户端对更新无感知。
如果在容器或框架级别提供某种自动化机制,自动摘除流量并确保处理完已到达的请求,不仅能保证业务不受更新影响,还可以极大地提升更新应用时的运维效率,这个机制就是无损下线。
MSE治理中心无损下线的优势
开源Dubbo可以通过shutdownHook和QoS实现无损下线,不仅有一定的开发工作量,而且对Dubbo有版本要求,还有一些遗留问题,最终影响正常使用。
MSE治理中心将无损下线的流程整合在发布流程中,对ECS集群或K8s集群中的应用进行停止、部署、回滚、缩容、重置等操作时,无损下线会自动执行。您无需对应用或在MSE治理中心控制台进行任何关于无损下线的操作,而且没有流量损失。
如何验证无损下线是否生效
您可以直接根据实际业务验证应用的无损下线是否已经生效。另外,MSE治理中心也提供了两个应用Demo,您可以使用这两个Demo在容器服务K8s集群中验证MSE治理中心的无损下线。
无损下线验证流程如下:
在文档使用中是否遇到以下问题
更多建议
匿名提交