[发明专利]一种更新Web应用集群的方法和装置无效
申请号: | 201310520650.4 | 申请日: | 2013-10-29 |
公开(公告)号: | CN103532870A | 公开(公告)日: | 2014-01-22 |
发明(设计)人: | 胡奇 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L12/803 | 分类号: | H04L12/803;H04L29/08 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 阎敏;宋志强 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 更新 web 应用 集群 方法 装置 | ||
技术领域
本发明涉及Web应用技术领域,尤其涉及一种更新Web应用集群的方法和装置。
背景技术
随着互联网技术的发展,Web应用程序作为动态网站的实现基础越来越广泛应用,Web应用程序可以由Java、PHP、Python等诸多语言实现,为基于浏览器的客户端用户提供网页浏览等Web服务。
而随着拥有海量用户的大型网站出现,Web服务的不间断性、可用性要求越来越高,作为互联网服务需要24小时全天候对用户可用。如果网站一旦无法访问,哪怕只有几分钟,对于大型网站来说都是比较大的损失,这不仅会损伤用户体验、流失商业机会,而且会严重影响网站的声誉,使人们对网站的可靠性和权威性产生怀疑。
如果一个大型动态Web应用需要服务于千万级甚至亿级的用户,则一般会采用应用服务集群技术。一个Web应用集群包括多个Web应用实例。
目前对于Web应用集群的更新方法主要以避开访问高峰时段的“暴力更新”为主。即选择一个网站访问量最少的时段,一般为凌晨时间,依次从负载均衡器上选择一个需要更新的Web应用实例进行更新,直至Web应用集群中所有的Web应用实例更新完毕。
由于多数Web应用集群的规模庞大,人工进行上述更新操作,不仅极为繁琐、需要消耗大量人力成本,而且十分容易出现操作错误而导致服务不可访问等严重后果。并且,在终止需更新的Web应用实例时,如果仍然有客户端正在与该Web应用实例连接通信,则连接会被强行中断,这有可能会造成关键业务无法完成,甚至产生脏数据,导致后续的追查、修复十分麻烦。
发明内容
本发明提供了一种更新Web应用集群的方法和装置,能够避免人工更新Web应用集群容易出现的操作失误,并避免更新过程中对正在进行的业务造成影响。
本发明的技术方案是这样实现的:
一种更新Web应用集群的方法,应用于包括负载均衡器和2个以上Web应用实例的系统,包括:
依次针对各个Web应用实例执行以下步骤:
从所述负载均衡器的负载均衡配置中摘除Web应用实例,当负载均衡器接收到来自客户端的请求时,将所述请求根据负载均衡策略分发至除所述被摘除的Web应用实例以外的其他Web应用实例;
等待所述被摘除的Web应用实例的所有客户连接处理完成时,更新该Web应用实例,并在更新成功并启动完成之后将该Web应用实例加入到所述负载均衡配置中。
上述方法中,判断所述被摘除的Web应用实例的所有客户连接处理完成的方式为:轮询连接到该Web应用实例的TCP连接数量是否不大于固定TCP连接数量,如果是,则判定该Web应用实例的所有客户连接处理完成。
判断Web应用实例更新成功并启动完成的方式为:循环访问所述Web应用实例的检测页面,当所述检测页面返回的HTTP状态码为200时,判定该Web应用实例更新成功并启动完成。
循环访问Web应用实例的检测页面之后进一步包括:如果循环访问的时间或次数超过预先设定的阈值时检测页面返回的HTTP状态码仍不是200,则判定所述Web应用实例更新或启动失败。
判定Web应用实例更新或启动失败之后进一步包括:进行相应回滚或发送报警信息。
一种更新Web应用集群的装置,应用于包括负载均衡器和2个以上Web应用实例的系统,包括:
负载均衡配置维护模块,用于针对所述各个Web应用实例,依次将Web应用实例从负载均衡器的负载均衡配置中摘除,并通知更新模块;并在该Web应用实例更新成功并启动完成之后,将该Web应用实例重新加入到所述负载均衡配置中;其中,所述摘除Web应用实例即该Web应用实例不再接收来自客户端的请求;
更新模块,用于在接收到负载均衡配置维护模块的通知时,等待所述被摘除的Web应用实例的所有客户连接处理完成后,更新该Web应用实例,并在更新成功并启动完成之后通知所述负载均衡配置维护模块。
上述装置中,更新模块判断被摘除的Web应用实例的所有客户连接处理完成的方式为:轮询连接到该Web应用实例的TCP连接数量是否不大于固定TCP连接数量,如果是,则判定该Web应用实例的所有客户连接处理完成。
更新模块判断Web应用实例更新成功并启动完成的方式为:循环访问所述Web应用实例的检测页面,当所述检测页面返回的HTTP状态码为200时,判定该Web应用实例更新成功并启动完成。
更新模块还用于,如果所述循环访问的时间或次数超过预先设定的阈值时检测页面返回的HTTP状态码仍不是200,则判定所述Web应用实例更新或启动失败。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310520650.4/2.html,转载请声明来源钻瓜专利网。