关于系统热更新的两个理解角度:开发视角&运维视角

[云计算] 季雨林 2020/11/25 11:31:56

随着系统稳定性要求的越来越高,热更新这个词,反复出现在技术人员的视野里


角度一:开发视角

一般来说,说到热更新,开发人员首先想到的是应用程序的动态更换程序文件,比如dll文件,exe文件,主程序入口的更换往往需要停机切换啊,很难实现热更新,主程序使用的dll倒是可以通过一些中间手段,实现瞬间替换,完成热升级。如果访问一直不断,这个过程难免会有一部分用户的访问受到影响。


角度二:运维视角

今天说一下运维角度的热更新方案的一种:负载均衡下如何更换web服务器程序,实现接近“用户无感知”的升级过程

这个技术的实现,首先要求web站点已经使用了负载均衡技术发布,无论是Nginx后端的多个web站点,还是lvs后面的多台服务器,都可以使用这个思路。

实现方式是:将需要升级的web服务器组,先从负载均衡组移出一部分,这时候移出的这些机器就不再产生新的连接。为了照顾已有连接,那就稍作等待让这些业务运转完成,实在是长连接不能等待久,可能就不得不切断了。然后更换这一部分服务器的web程序。更换完成,重新加回到负载均衡组,开始承载一部分连接。如此步骤往复,知道更换完所有的web服务器,就完成了升级,这个过程,受到升级影响的就只有更换服务器时候还没有断开连接的那一小部分用户了。如果web站点不是长连接性质,那么就可以全面的“无感知”升级。

这里说的无感知,是用户没感受到业务中断,不包含业务升级后的视觉和逻辑变化。


这个思路,可以从阿里云ACP认证的考试中看到,考过ACP的同学应该都能轻松理解。



原文地址: https://www.opengps.cn/Blog/View.aspx?id=820 文章的更新编辑依此链接为准。欢迎关注源站原创文章!

评论

暂无评论!

发表评论:

用于接收作者回复信息
点击更换验证码 - openGPS提示