服务器程序热升级的方法及装置的制造方法_2

文档序号:9910800阅读:来源:国知局
0046]步骤S200,通过升级后的服务器程序创建新的处理实例B处理所述处理实例B接收到的业务请求。
[0047]服务器创建新的处理实例B,所述处理实例B根据升级后的服务器程序进行创建,创建所述处理实例B后,控制所述处理实例B处理后续接收到的业务处理,保证服务器程序升级时,不中断服务,使客户无感知。
[0048]步骤S300,当所述处理实例A处理完成业务请求后,服务器控制所述处理实例A退出,服务器程序热升级完成。
[0049]当所述处理实例A完成业务请求处理后,服务器控制所述处理实例A退出,服务器程序完成热升级,后续接收到的业务处理由所述处理实例B处理,即升级完成后,仅存在所述处理实例B对业务请求进行处理。可以预见的,所述处理实例A退出后,释放所占用的资源。
[0050]在本实施例中,在服务器程序升级时通过建立新业务请求处理实例接收后续业务请求,同时旧的业务请求处理实例继续处理正在处理的业务请求,使得服务器程序升级时,不需要重启,同时保证了业务连接不中断,使用户对服务器程序升级无感知,进一步的,由于不需要重启进行升级,因此不会出现重启时文件等操作被强制中断而造成数据丢失的情况。
[0051]进一步的,参照图2,本发明服务器程序热升级的方法的第二实施例,基于上述图1所示的实施例,所述步骤S100,当服务器程序进行升级时,服务器控制当前正在运行的处理实例A停止接收业务请求,并继续处理正在处理的业务请求:
[0052]步骤S110,当服务器程序进行升级时,服务器控制守护进程关闭当前正在运行的处理实例A的接收功能,使所述处理实例A停止接收业务请求,同时控制所述处理实例A继续处理正在处理的业务请求。
[0053]为方便处理实例管理,当服务器程序进行升级时,服务器控制守护进程对处理实例业务请求接收功能进行管理,关闭当前正在运行的处理实例A的接收功能,使得所述处理实例A不再接收后续业务请求,但所述处理实例A将会继续处理正在处理的业务请求,保证用户的业务连接不中断,从而使得用户对服务器程序升级无感知。
[0054]所述步骤S200,服务器通过升级后的服务器程序创建新的处理实例B处理所述处理实例B接收到的业务请求包括:
[0055]步骤S210,所述服务器程序的守护进程通过升级后的服务器程序创建新的处理实例B,并将所述处理实例B绑定在业务请求访问端口上,同时控制所述处理实例B接收业务请求并处理。
[0056]为保证服务器程序继续提供后续业务请求处理服务,因此服务器控制守护进程通过升级后的服务器程序创建新的处理实例B,并将所述处理实例B绑定在业务请求访问端口上,同时控制处理实例B接收业务请求,并对业务请求进行处理。
[0057]具体实施时,本实施例的具体实施步骤包括:
[0058]1、守护进程监听信号;
[0059]2、当所述守护进程监听到升级信号时,在相同业务请求端口启动新的进行来处理新的业务请求,即创建新的处理实例,并绑定在业务请求端口上;
[0060]3、关闭当前进程连接接收,当当前进程完成正在处理的请求后退出,即断开旧处理实例连接,使旧处理实例不再接收业务处理请求,同时旧处理实例继续处理正在处理的业务请求,处理完成后退出。
[0061]在本实施例中,基于上一实施例所述的优点,通过守护进程对处理实例进行管理,使得服务器程序升级时,由守护进程统一管理,进一步使得处理实例间的切换更为平滑,保证服务器程序升级时业务处理不中断,同时避免重启升级而带来的数据丢失或出错的问题。
[0062]进一步的,参照图3,本发明服务器程序热升级的方法的第三实施例,基于上述图1所示的实施例,所述步骤S100,当服务器程序进行升级时,服务器控制当前正在运行的处理实例A停止接收业务请求,并继续处理正在处理的业务请求:
[0063]步骤S120,当服务器程序进行升级时,服务器控制接入层不再向当前正在运行的处理实例A发送业务请求,同时控制当前正在运行的处理实例A继续处理正在处理的业务请求。
[0064]将服务器程序分层为接入层和后端服务层,其中,接入层用于与客户端通信,接收客户端发送的业务请求并将所述业务请求发送给后端服务层,后端服务层采用处理实例的方式提供业务处理支持,当服务器程序进行升级时,服务器控制接入层停止向正在运行的处理实例发送业务请求,及停止向处理实例A发送业务请求,同时为保证业务处理不中断,同时控制处理实例A继续处理正在处理的业务请求。
[0065]所述步骤S200,服务器通过升级后的服务器程序创建新的处理实例B处理所述处理实例B接收到的业务请求包括:
[0066]步骤S220,服务器通过升级后的服务器程序创建新的处理实例B,控制接入层将接收到的业务请求发送给所述处理实例B,同时控制由所述处理实例B接收业务请求并处理。
[0067]服务器通过升级后的服务器程序创建新的业务处理实例,即处理实例B,控制接入层将接收到的业务请求发送给所述处理实例B,所述处理实例B接收业务请求,并对所述业务请求进行处理,使服务器程序升级的过程中新的业务请求能够成功被接收并处理。
[0068]具体实施时,以同一台服务器为例,本实施例具体实施步骤包括:
[0069]1、对同一台服务器采用接入层和后端服务分离的方案部署;
[0070]2、当服务器程序升级时,部署两个处理后端实例,由接入层控制将请求流量导到新的处理后端实例上,新的处理后端实例接收业务请求并对所述业务请求进行处理;
[0071]3、旧处理后端实例继续处理正在处理的业务请求,当处理完当前进程的数据后退出。
[0072]本实施例中,基于上一实施例所述的优点,通过接入层业务请求进行分配,使得服务器程序升级时,将新的业务请求导向新的处理实例,使得处理实例间的切换更为平滑,保证服务器程序升级时业务处理不中断,同时避免重启升级而带来的数据丢失或出错的问题,进一步的,实现了在一台服务器上的链接切换和数据业务的切换。
[0073]参照图4,本发明服务器程序热升级的装置的第一实施例,所述服务器程序热升级的装置包括:
[0074]停止接收模块100,用于当服务器程序进行升级时,控制当前正在运行的处理实例A停止接收业务请求,并继续处理正在处理的业务请求。
[0075]当服务器程序进行升级时,停止接收模块100不中断当前正在运行的处理实例ASP旧处理实例的运行,控制所述处理实例A继续对正在处理的业务请求进行处理,为避免新业务请求有所述处理实例A处理,因此所述处理实例A不再接收新的业务请求。
[0076]新实例创建模块200,用于通过升级后的服务器程序创建新的处理实例B处理所述处理实例B接收到的业务请求。
[0077]新实例创建模块200创建新的处理实例B,所述处理实例B根据升级后的服务器程序进行创建,创建所述处理实例B后,控制所述处理实例B处理后续接收到的业务处理,保证服务器程序升级时,不中断服务,使客户无感知。
[0078]完成退出模块300,用于当所述处理实例A处理完成业务请求后,控制所述处理实例A退出,服务器程序热升级完成。
[0079]当所述处理实例A完成业务请求处理后,完成退出模块300控制处理实例A退出,月艮务器程序完成热升级,后续接收到的业务处理由所述处理实例B处理,即升级完成后,仅存在所述处理实例B对业务请求进行处理。可以预见的,所述处理实例A退出后,释放所占用的资源。
[0080]在本实施例中,在服务器程序升级时通过建立新业务请求处理实例接收后续业务请求,同时旧的业务请求处理实例继续处理正在处理的业务请求,使得服务器程序升级时,不需要重启,同时保证了业务连接不中断,使用户对服务器程序升级无感知,进一步的,由于不需要重启进行升级,因此不会出现重启时文件等操作被强制中断而造成数据丢失的情况。
[0081]进一步的,参照图5,本发明服务器程序热升级的装置的第二实施例,基于上述图4所示的实施例,所述停止接收模块100包括:
[0082]关闭接收单元110,用于当服务器程序进行升级时,控制守护进程关闭当前正在运行的处理实例A的接收功能,使所述处理实例A停止接收业务请求,同时控制所述处理实例A继续处理正在处理的业务请求。
[0083]为方便处理实例管理,当服务器程序进行升级时,由所述服务器程序的守护进程对处理实例业务请求接收功能进行管理,关闭当前正在运行的处理实例A的接收功能,使得所述处理实例A不再接收后续业务请求,但所述处理实例A将会继续处理正在处理的业务请求,保证用户的业务连接不中断,从而使得用户对服务器程序升级无感
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1