本发明涉及领域,尤其涉及一种长连接服务器升级方法及系统。
背景技术:
随着互联网技术的发展,很多智能设备都需要接入互联网,为了满足海量设备的接入(一般接入量会达到千万级别),服务器采用集群,即用很多台服务器来提供服务。
服务器侧的长连接程序有时会需要升级,升级就要中断服务,中断服务后,该服务器上的长连接会全部断开,要等到服务重启后,设备再重新连接,一般达数分钟之久,这样服务器就很难提供无间断的服务。
技术实现要素:
为解决上述技术问题,本发明提供一种长连接服务器升级方法及系统,能够使得长连接服务器升级时服务不中断。
本发明提供的技术方案如下:
本发明公开了一种长连接服务器升级方法,包括步骤:S100、当需要升级时,升级服务器向连接的设备发送第一连接转移命令;S200、当设备接收到所述第一连接转移命令时,断开与升级服务器的连接,并根据所述第一连接转移命令建立与转移服务器的连接;S300、当设备与升级服务器断开连接后,升级服务器开始升级,并在升级完成后根据预存的设备列表生成恢复连接命令并发送至转移服务器;S400、当接收到所述恢复连接命令时,转移服务器生成第二连接转移命令,并根据所述恢复连接命令向对应的设备发送所述第二连接转移命令;S500、设备接收所述第二连接转移命令并根据所述第二连接转移命令建立与升级服务器的连接。
本发明在升级服务器升级的时候将连接的设备转移到另一台转移服务器,当升级完成后再将设备连接到当前的升级服务器,有效保证了服务器在升级时不中断服务,从而不影响服务质量,同时,服务恢复后,每台服务器的压力仍然可以保持比较平均。
进一步优选的,所述步骤S100之前还包括步骤:S010、升级服务器设置需要到转移的转移服务器的IP地址。
进一步优选的,所述步骤S100之前还包括步骤:S020、升级服务器保存所有与其连接的设备的编号,根据所有设备的编号生成设备列表。
进一步优选的,所述第一连接转移命令包括需要转移到的转移服务器的IP地址;所述步骤S200“根据所述第一连接转移命令建立与转移服务器的连接”具体包括:S210、设备获取所述第一连接转移命令中的需要转移到的转移服务器的IP地址;S220、向该IP地址发起连接请求,建立与转移服务器的连接。
进一步优选的,所述恢复连接命令包括需要恢复连接的设备的编号;所述第二连接转移命令包括需要转移到的升级服务器的IP地址;所述步骤S400“根据所述恢复连接命令向对应的设备发送所述第二连接转移命令”具体包括:S410、转移服务器接收所述恢复连接命令,并根据所述恢复连接命令获取需要恢复连接的设备的编号;S420、向所述编号对应的设备发送所述第二连接转移命令;所述步骤S500“设备接收所述第二连接转移命令并根据所述第二连接转移命令建立与升级服务器的连接”具体包括:S510、设备获取所述第二连接转移命令中的需要转移到的升级服务器的IP地址;S520、向该IP地址发起连接请求,建立与升级服务器的连接。
本发明还公开了一种长连接服务器升级系统,包括:升级服务器、至少一个与升级服务器连接的设备以及转移服务器;所述升级服务器包括第一连接转移命令生成模块、升级模块、恢复连接命令生成模块;所述设备包括连接断开模块、连接建立模块;所述转移服务器包括第二连接转移命令生成模块和连接转移模块;所述第一连接转移命令生成模块用于当需要升级时向连接的所述设备发送第一连接转移命令;所述连接断开模块用于接收到所述第一连接转移命令时,断开与升级服务器的连接;所述连接建立模块用于根据所述第一连接转移命令建立与转移服务器的连接;所述升级模块用于当设备与升级服务器断开连接后,升级服务器开始升级;所述恢复连接命令生成模块用于当升级完成后根据预存的设备列表生成恢复连接命令并发送至所述转移服务器;所述第二连接转移命令生成模块用于当接收到所述恢复连接命令时生成第二连接转移命令;所述连接转移模块用于根据所述恢复连接命令向对应的设备发送所述第二连接转移命令;所述连接建立模块还用于接收所述第二连接转移命令并根据所述第二连接转移命令建立与升级服务器的连接。
进一步优选的,所述升级服务器还包括:设置模块,用于预先设置需要到转移的转移服务器的IP地址。
进一步优选的,所述升级服务器还包括:设备列表生成模块,用于保存所有与其连接的设备的编号,根据所有设备的编号生成设备列表。
进一步优选的,所述连接建立模块具体包括:IP地址获取子模块,用于获取所述第一连接转移命令中的需要转移到的转移服务器的IP地址;连接子模块,用于向该IP地址发起连接请求,建立与转移服务器的连接。
进一步优选的,所述连接转移模块具体包括:编号获取子模块,用于根据所述恢复连接命令获取需要恢复连接的设备的编号;转移命令发送子模块,用于向所述编号对应的设备发送所述第二连接转移命令;所述IP地址获取子模块还用于获取所述第二连接转移命令中的需要转移到的升级服务器的IP地址;所述连接子模块还用于向该IP地址发起连接请求,建立与升级服务器的连接。
与现有技术相比,本发明在升级服务器升级的时候将连接的设备转移到另一台转移服务器,当升级完成后再将设备连接到当前的升级服务器,有效保证了服务器在升级时不中断服务,从而不影响服务质量,同时,服务恢复后,每台服务器的压力仍然可以保持比较平均。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。
图1为本发明一种长连接服务器升级方法的主要步骤示意图;
图2为本发明一种长连接服务器升级方法的时序图;
图3为本发明一种长连接服务器升级系统的组成示意图;
图4为本发明一种长连接服务器升级系统的长连接服务的基本结构图。
附图标号说明:
100、升级服务器,110、第一连接转移命令生成模块,120、升级模块,130、恢复连接命令生成模块;
200、设备,210、连接断开模块,220、连接建立模块;
300、转移服务器,310、第二连接转移命令生成模块,320、连接转移模块。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
图1为本发明一种长连接服务器升级方法的主要步骤示意图,如图1所示,一种长连接服务器升级方法,包括步骤:S100、当需要升级时,升级服务器向连接的设备发送第一连接转移命令;S200、当设备接收到所述第一连接转移命令时,断开与升级服务器的连接,并根据所述第一连接转移命令建立与转移服务器的连接;S300、当设备与升级服务器断开连接后,升级服务器开始升级,并在升级完成后根据预存的设备列表生成恢复连接命令并发送至转移服务器;S400、当接收到所述恢复连接命令时,转移服务器生成第二连接转移命令,并根据所述恢复连接命令向对应的设备发送所述第二连接转移命令;S500、设备接收所述第二连接转移命令并根据所述第二连接转移命令建立与升级服务器的连接。
本发明在升级服务器升级的时候将连接的设备转移到另一台转移服务器,当升级完成后再将设备连接到当前的升级服务器,有效保证了服务器在升级时不中断服务,从而不影响服务质量,同时,服务恢复后,每台服务器的压力仍然可以保持比较平均。
优选的,所述步骤S100之前还包括步骤:S010、升级服务器设置需要到转移的转移服务器的IP地址。
优选的,所述步骤S100之前还包括步骤:S020、升级服务器保存所有与其连接的设备的编号,根据所有设备的编号生成设备列表。
优选的,所述第一连接转移命令包括需要转移到的转移服务器的IP地址;所述步骤S200“根据所述第一连接转移命令建立与转移服务器的连接”具体包括:S210、设备获取所述第一连接转移命令中的需要转移到的转移服务器的IP地址;S220、向该IP地址发起连接请求,建立与转移服务器的连接。
具体的,所述第一连接转移命令包括两个元素:
{“command”:”move”,”toServer”:”A.B.C.D”}。其中toServer为需要转移到的转移服务器的IP地址。
当设备获取到转移服务器的IP地址后向该IP地址发起连接请求,与转移服务器建立连接,从而完成设备连接转移。
优选的,所述恢复连接命令包括需要恢复连接的设备的编号;所述第二连接转移命令包括需要转移到的升级服务器的IP地址;所述步骤S400“根据所述恢复连接命令向对应的设备发送所述第二连接转移命令”具体包括:S410、转移服务器接收所述恢复连接命令,并根据所述恢复连接命令获取需要恢复连接的设备的编号;S420、向所述编号对应的设备发送所述第二连接转移命令;所述步骤S500“设备接收所述第二连接转移命令并根据所述第二连接转移命令建立与升级服务器的连接”具体包括:S510、设备获取所述第二连接转移命令中的需要转移到的升级服务器的IP地址;S520、向该IP地址发起连接请求,建立与升级服务器的连接。
具体的,所述恢复连接命令包括两个元素:
{“command”:”recover”,”SN”:”deviceSN”}。Command为recover,即恢复,SN是设备的SN号,该序号是设备的唯一编号,所有设备的编号均保存在升级服务器的设备列表中。
升级服务器根据设备列表为每个设备生成恢复连接命令,其中包含唯一标识某个设备的编号,转移服务器接收到所述恢复连接命令时,根据其中的设备的编号向对应的设备发送第二连接转移命令。
所述第二连接转移命令与第一连接转移命令实质上为相同的函数,仅函数中的参数不同。
第二连接转移命令包含两个元素:
{“command”:”move”,”toServer”:”E.F.G.H”}。其中toServer为需要转移到的升级服务器的IP地址。
当设备获取到升级服务器的IP地址后向该IP地址发起连接请求,与升级服务器建立连接,从而完成设备连接恢复。
图2为本发明一种长连接服务器升级方法的时序图,其主要步骤描述如下:
A1.在需要升级的长连接服务器即升级服务器侧设置转移服务器的地址。
A2.升级服务器保存所有设备的编号,生成设备列表,然后发送第一连接转移命令给所有设备。
A3.设备接收到以上第一连接转移命令后,立即断开与原有的升级服务器之间的连接,与转移服务器建立连接。在这段时间内,所有的消息报文有转移服务器转发。
A4.当所有设备的连接都断开后,升级服务器开始升级服务。
A5.当服务升级完毕后,升级服务器发送恢复连接命令到转移服务器,目的将保存到设备列表中的设备重新连接回来。
A6.转移服务器收到恢复连接命令后,发送第二连接转移命令给设备,命令设备转移连接。
A7.设备收到第二连接转移命令后,立即断开与转移服务器的连接,并且与之前的升级服务器重新建立连接。此时,连接已经全部恢复。
通过以上方法,可以做到长连接服务器升级,不影响设备的服务的效果。
图3为本发明一种长连接服务器升级系统的组成示意图,作为本发明的一个实施例,如图3所示,一种长连接服务器升级系统,包括:升级服务器100、至少一个与升级服务器100连接的设备200以及转移服务器300;所述升级服务器100包括第一连接转移命令生成模块110、升级模块120、恢复连接命令生成模块130;所述设备200包括连接断开模块210、连接建立模块220;所述转移服务器300包括第二连接转移命令生成模块310和连接转移模块320;所述第一连接转移命令生成模块110用于当需要升级时向连接的所述设备200发送第一连接转移命令;所述连接断开模块210用于接收到所述第一连接转移命令时,断开与升级服务器100的连接;所述连接建立模块220用于根据所述第一连接转移命令建立与转移服务器300的连接;所述升级模块120用于当设备200与升级服务器100断开连接后,开始升级;所述恢复连接命令生成模块130用于当升级完成后根据预存的设备列表生成恢复连接命令并发送至所述转移服务器300;所述第二连接转移命令生成模块310用于当接收到所述恢复连接命令时生成第二连接转移命令;所述连接转移模块320用于根据所述恢复连接命令向对应的设备200发送所述第二连接转移命令;所述连接建立模块220还用于接收所述第二连接转移命令并根据所述第二连接转移命令建立与升级服务器100的连接。
本发明在升级服务器100升级的时候将连接的设备200转移到另一台转移服务器300,当升级完成后再将设备200连接到当前的升级服务器100,有效保证了服务器在升级时不中断服务,从而不影响服务质量,同时,服务恢复后,每台服务器的压力仍然可以保持比较平均。
优选的,所述升级服务器100还包括:设置模块,用于预先设置需要到转移的转移服务器300的IP地址。
优选的,所述升级服务器100还包括:设备列表生成模块,用于保存所有与其连接的设备200的编号,根据所有设备200的编号生成设备列表。
优选的,所述连接建立模块220具体包括:IP地址获取子模块,用于获取所述第一连接转移命令中的需要转移到的转移服务器300的IP地址;连接子模块,用于向该IP地址发起连接请求,建立与转移服务器300的连接。
优选的,所述连接转移模块320具体包括:编号获取子模块,用于根据所述恢复连接命令获取需要恢复连接的设备200的编号;转移命令发送子模块,用于向所述编号对应的设备200发送所述第二连接转移命令;所述IP地址获取子模块还用于获取所述第二连接转移命令中的需要转移到的升级服务器100的IP地址;所述连接子模块还用于向该IP地址发起连接请求,建立与升级服务器100的连接。
图4为本发明一种长连接服务器升级系统的长连接服务的基本结构图。如图4所示,一般有多台长连接服务器同时服务海量设备,当长连接服务器1需要升级重启服务时,则该长连接服务器1则为升级服务器,长连接服务器1将会发送第一连接转移命令到与其连接的设备1、设备2上,并设置其他长连接服务器中长连接服务器2为转移服务器。设备1、设备2收到第一连接转移命令后,立即断开与长连接服务器1的连接,随即建立与长连接服务器2之间的连接。等到长连接服务器1的服务升级完毕后,长连接服务器1通知长连接服务器2,发送恢复连接命令,将之前转移的设备1和设备2再次转移过来。长连接服务器2收到恢复连接命令后,向设备1和设备2发送第二连接转移命令,设备1和2收到第二连接转移命令后,断开与长连接服务器2的连接,再次与之前的长连接服务器1建立连接。这样可以确保设备与服务器集群之间的连接通道始终是存在的,不会造成服务中断。
需要说明的是,本装置中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。