一种网络服务在线升级的方法
技术领域
本发明涉及网络服务领域,尤其涉及一种大规模大容量的互联网服务在线升级方法。
背景技术
随着互联网的迅猛发展,基于互联网的应用层出不穷,利用网络进行信息交互,资源共享,互动娱乐等方面的运营服务越来越多,其中网络服务器是提供应用服务的核心,由于用户需求的不断变化,业务种类的变更及解决软件自身存在的缺陷等等,需要对网络服务器进行不定期的升级维护操作。
对于大规模大容量的网络在线服务而言,停止服务进行升级维护是不可接受的,不仅仅会降低用户满意度,甚至会造成直接的经济损失,所以网络在线升级是大容量网络服务运营的最佳选择。目前的网络服务器在线升级维护,为了对提供的应用服务不产生任何影响,首先将需要升级的网络服务器1替换下来,在需要升级的网络服务器1退出网络应用服务的过程中,服务业务逐渐转向替代的网络服务器2,替换下来的网络服务器1进行既定的升级维护操作后,可根据需求重新接入网络,开通应用服务,再将服务业务逐渐切换回来,整个过程中服务业务基本不受影响,参考图1。但是这样的升级方式所存在的问题有,为了保证网络服务业务不中断,需要有冗余服务器或者空闲服务器支持,如果是大规模网络服务器同时在线升级,就需要相当数量的替代服务器来支持,硬件成本太高,并且由于升级过程比较复杂,替换下来的网络服务器在升级之后重新替换到服务网络中,替代出未进行升级的在线网络服务器,整个升级过程可能需要替换多次才能完成,相关配置和操作过程繁琐,为了保证网络业务正常运营,还需要根据网络服务业务的部署情况规划出网络服务器升级的顺序,如果网络服务业务种类繁多部署复杂的情况,网络服务业务的质量和性能都极其容易受到影响。
发明内容
本发明提供一种网络服务在线升级的方法,用以解决现有技术中的硬件成本太高,操作过程复杂和繁琐,容易影响网络服务业务的质量和性能的问题。
为解决上述问题,本发明提供以下技术方案:
一种网络服务在线升级的方法,其特征在于,包括如下步骤:
步骤一,在已有未升级的包含网络服务信息的应用逻辑模块的网络服务器上添加包含已升级网络服务信息的已升级应用逻辑模块;
步骤二,用户客户端向目录服务器请求网络服务,目录服务器通过记录信息找到相应的网络服务器请求服务,网络服务器将已升级的网络服务信息的已升级应用逻辑模块的网络服务信息发送给用户客户端。
所述步骤二之后还包括,已经获得未升级应用逻辑模块网络服务信息的老用户客户端退出网络服务后,网络服务器关闭相应的未升级应用逻辑模块的服务,直至所有的已获得未升级应用逻辑模块网络服务信息的用户客户端退出网络服务后,整个未升级应用逻辑模块的网络服务将被置为无效。
所述未升级应用逻辑模块和已升级应用逻辑模块分别嵌入未升级应用软件和已升级应用软件中。
所述未升级应用软件和已升级应用软件以两条不同的记录保存在目录服务器上。
所述未升级应用软件和已升级应用软件的两条记录是互相排斥的,即已升级应用软件生效的时候,未升级应用软件无效。
所述已升级应用逻辑模块和未升级应用逻辑模块嵌入同一套应用软件中。
所述应用软件在目录服务器上只显示一条相关记录。
从以上技术方案可以看出,本发明通过在网络服务器上运行已升级应用逻辑模块进行网络服务在线升级,使整个升级过程平滑稳定。本发明不仅保证网络服务升级的质量和性能稳定,还能达到简化网络服务升级的操作过程和降低网络服务器硬件成本的效果。
附图说明
图1为现有技术的网络服务在线升级的架构图;
图2为本发明中网络服务在线升级实施例一的架构图;
图3为本发明中网络服务在线升级实施例二的架构图。
具体实施方式
为了便于描述这种网络服务在线升级方式,用两个实施例详细说明。
实施例一
参考图2,本实施例在一台已有未升级应用逻辑模块的网络服务器203上添加一个已升级应用逻辑模块,应用逻辑模块是包含网络服务信息的功能模块,这两个应用逻辑模块分别安装在未升级应用软件A和已升级应用软件B中,通过从未升级应用逻辑模块提供网络服务转接到已升级应用逻辑模块提供网络服务,也就是将应用软件B提供的网络服务逐渐来替换应用软件A提供的网络服务来完成在线升级进行详细说明,目录服务器201记录承载网络服务业务的网络服务器203的相关信息,用于引导用户客户端取得相应网络服务业务,在目录服务器201中,相关网络服务器203信息的记录,包括类似以下数据表的内容:
服务器ID |
服务器名称 |
服务器地址 |
业务索引 |
标注 |
001 |
A |
XXXX |
业务一 |
无效 |
001 |
B |
YYYY |
业务一 |
正常 |
... |
... |
... |
|
|
当网络服务器203安装了已升级应用软件B之后,此时未升级应用软件A和已升级应用软件B在目录服务器中表现为两条不同的记录,两条记录是互斥的,其中未升级应用软件A的业务无效,已升级应用软件B的业务有效。也就相当是两个网络服务器实体。用户客户端向目录服务器201请求网络服务业务,都是遵循既定的通讯接口标准的,新的用户客户端202在网络服务器升级之后首次向目录服务器201请求网络服务业务时,从目录服务器201获取相关网络服务器203的记录信息,得到的是已升级应用软件B的相关记录信息,因为此时未升级应用软件A已经被置为无效,已升级应用软件B将承担所有的网络服务业务。对于在网络服务器203安装了已升级应用软件B之前已经接受网络服务业务的用户客户端204,依旧获取的是未升级应用软件A的相关记录信息,但当用户客户端204逐渐退出网络服务时,未升级应用软件A所承载的服务业务的负荷越来越小,直至最后一个已接受服务的用户客户端204退出网络服务,未升级应用软件A完全无效即自动退出目录服务器201,或者是未升级应用软件A承载的业务量小到可接受的阈值时,由目录服务器201通知未升级应用软件A退出,完成整个网络服务的升级操作。由于未升级应用软件A和已升级应用软件B可以安装在同一网络服务器上,并行运行而互不影响,可以大大降低网络硬件成本,并且如果在网络服务业务种类和部署多的情况下,也可通过一个功能完善的已升级应用软件B一次性升级成功,无需多次替换服务器,进而保证升级过程中的质量和性能。
实施例二
参考图3,网络服务器中的应用逻辑模块是包含网络服务业务信息的功能模块,应用逻辑模块和外界的信息交互,是通过通讯接口模块传递的,通讯接口模块负责与用户客户端、目录服务器等可能涉及到的网络实体通信,并且与相应的网络地址绑定,并利用内部的通信机制与应用逻辑模块进行信息交互。将通讯接口模块和两个应用逻辑模块安装在同一套应用软件C中,则应用软件C包括一个通讯接口模块和两个应用逻辑模块,一个是未升级应用逻辑模块,一个是已升级应用逻辑模块。在网络服务器301上安装一个应用软件C302,应用软件C302包括一个通讯接口模块3021、应用逻辑模块3022和应用逻辑模块3023,其中通讯接口模块负责与外部的通信和与应用逻辑模块3022、3023的通信,应用逻辑模块3022承载已有的网络服务业务,应用逻辑模块3023是承载升级后的网络服务业务,当需要对网络服务器进行升级的时候,网络服务器301向应用软件C302的通讯接口模块3021发出升级指令,通讯接口模块3021接收升级指令后将此后请求网络服务的新的用户客户端304的网络服务业务转向应用逻辑模块3023处理,应用逻辑模块3022则只负责处理已接受业务用户客户端305已经进行的网络服务业务,当已接受业务用户客户端305逐渐退出网络服务,即应用逻辑模块3022上的业务量为零或者低于可接受的阈值时,应用逻辑模块3022可直接退出服务。
由于网络服务器301上只有一套应用软件C302,且由于通讯接口模块是与网络地址绑定的,而应用软件C302只有一个通讯接口模块3021,此时在目录服务器303上则只显示一条相关记录,在整个网络服务在线升级的过程中,目录服务器303中关于网络服务器301的记录没有发生变化,则用户客户端304和305得到的运营服务器的相关信息都是相同的,升级过程都屏蔽在网络服务器内部,使用户客户端在未知的情况下平滑升级网络服务,提高了升级操作的质量。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。