一种基于网络连接服务的升级方法和装置与流程

文档序号:12375632阅读:177来源:国知局
一种基于网络连接服务的升级方法和装置与流程

本申请涉及计算机领域,尤其涉及一种基于网络连接服务的升级方法和装置。



背景技术:

程序升级是系统运维过程中经常需要进行的操作。现有技术在程序升级时,通常将服务请求路由到其他服务节点上,或者,直接中断进程并快速进行重启。然而不论何种方式,都会导致网络连接中断的问题,用户请求可能会有瞬间的错误失败。现有技术提供了一种升级方案,通过动态库切换实现升级时不停止程序服务。然而其缺点是开发难度高,对代码实现细节要求高,需要做到逻辑的完全隔离以及内存管理的隔离,而且对于网络管理模块的升级,仍然需要进行重启,影响用户体验。



技术实现要素:

本申请的一个目的是,提供一种基于网络连接服务的升级方法和装置。

根据本申请的一方面,提供了一种基于网络连接服务的升级方法,包括:

在第一进程进行网络连接时,启动第二进程;

所述第一进程根据预设条件查询所述网络连接;

所述第一进程将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;

所述第二进程根据接收到的所述文件描述符和所述会话数据继续进行所述网络连接。

根据本申请的另一方面,还提供了一种基于网络连接服务的升级装置,包括:

第一模块,用于在第一进程进行网络连接时,启动第二进程;

第二模块,用于所述第一进程根据预设条件查询所述网络连接;

第三模块,用于所述第一进程将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;

第四模块,用于所述第二进程根据接收到的所述文件描述符和所述会话数据继续进行所述网络连接。

与现有技术相比,本申请在第一进程进行网络传输时,启动已经完成升级的第二进程,第一进程根据预设条件将合适的网络连接切换至第二进程,直至第一进程的全部网络连接都切换至第二进程,从而保证不会因为升级而中断网络连接,对于用户而言,不会因为网络升级而受到影响。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的基于网络连接服务的升级装置的结构示意图;

图2示出根据本申请又一个方面的基于网络连接服务的升级装置的结构示意图;

图3示出根据本申请一个方面的基于网络连接服务的升级方法的流程示意图;

图4示出根据本申请又一个方面的基于网络连接服务的升级方法的流程示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

图1示出根据本申请一个方面的基于网络连接服务的升级装置的结构示意图。如图1所示,该升级装置1包括:第一模块11、第二模块12、第三模块13和第四模块14。

其中,第一模块11用于在第一进程进行网络连接时,启动第二进程;第二模块12用于所述第一进程根据预设条件查询所述网络连接;第三模 块13用于所述第一进程将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;第四模块14用于所述第二进程根据接收到的所述文件描述符和所述会话数据继续进行所述网络连接。

在此,第一进程为旧进程,第二进程为升级完成后的新进程,网络连接可以采用TCP(Transmission Control Protocol,传输控制协议)网络连接。预设条件需保证待切换网络连接的数据流不具有上下文的依赖关系。文件描述符可以采用FD(File Descriptor)数据,会话数据可以采用Session数据。在第二进程升级完成后,第一模块11启动第二进程;第二模块12根据预设条件查询第一进程的网络连接;第三模块13将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;第四模块14根据第二进程接收到的文件描述符和会话数据继续进行第一进程切换来的网络连接。由此保证在将网络连接从第一进程切换至第二进程时,不会发生网络服务中断。

图2示出根据本申请又一个方面的基于网络连接服务的升级装置的结构示意图。如图2所示,该升级装置1包括:第一模块11、第二模块12、第三模块13和第四模块14。

其中,第一模块11用于在第一进程进行网络连接时,启动第二进程;第二模块12用于所述第一进程根据预设条件查询所述网络连接;第三模块13用于所述第一进程将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;第四模块14用于所述第二进程根据接收到的所述文件描述符和所述会话数据继续进行所述网络连接。

在此,第一进程为旧进程,第二进程为升级完成后的新进程,网络连接可以采用TCP网络连接。预设条件需保证待切换网络连接的数据流不具有上下文的依赖关系。文件描述符可以采用FD数据,会话数据可以采用Session数据,Session数据包括用户授权状态、业务处理定义变量等信息,每个Session数据管理一个TCP网络连接。在第二进程升级完成后,第一模块11启动第二进程;第二模块12根据预设条件查询第一进程的网络连接;第三模块13将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;第四模块14根据第二进程接收到的文件描述符和会话数 据继续进行第一进程切换来的网络连接。由此保证在将网络连接从第一进程切换至第二进程时,不会发生网络服务中断。

具体地,所述第一模块11包括:第一一子模块111和第一二子模块112。

其中,第一一子模块111用于在所述第一进程进行网络监听时,启动所述第二进程并且启动所述第二进程的网络监听;第一二子模块112用于关闭所述第一进程的网络监听。

在此,第一一子模块111启动第二进程的网络监听,在第二进程的网络监听的启动过程中,会出现第一进程和第二进程的都在进行网络监听的情况,此时,新建立的网络连接会被随机分配至第一进程或第二进程的任意之一,以保证网络服务不会被中断。当第二进程启动完毕后,第一二子模块112关闭第一进程以保证新建立的网络连接都被分配至第二进程。对于TCP连接,监听的端口需要设置为REUSE_PORT模式,以便允许第一进程和第二进程同时监听同一端口。

具体地,所述预设条件包括:所述网络连接的数据流不具有相互依赖关系。所述第二模块还用于:查询没有未处理完成的网络请求或网络响应的网络连接;或者,查询具有断点续传状态的数据流网络连接。

例如,对于RPC(Remote Procedure Call Protocol,远程过程调用协议),采用Request(请求)和Response(响应)方式进行通信,当TCP链路上没有尚未处理完成的Request或者Response时,可以将网络连接由第一进程切换至第二进程,此时网络服务不会被中断。对于数据流网络连接,例如视频流的TCP通信,视频流一般为块数据发送,即对数据采用一块一块内容进行发送,当完整的发送完一块数据时,可以将视频流的网络连接由第一进程切换至第二进程,此时网络服务不会被中断。

可选地,该升级装置1还包括:第五模块15。

其中,第五模块15用于关闭所述第一进程查询得到的网络连接的读写事件。

在此,第五模块15关闭第一进程的读写事件,被关闭的读写事件应为根据预设条件查询得到的网络连接的读写事件,从而切断第二进程的网 络连接。

具体地,所述第三模块13还用于:所述第一进程通过进程间数据通信将所述文件描述符和所述会话数据发送至所述第二进程。

在此,第三模块13通过Socket域套接字在第一进程和第二进程之间建立进程间数据通信,以便于第一进程将文件描述符和会话数据成功发送至所述第二进程。

具体地,所述第三模块13还用于所述第一进程对所述会话数据进行序列化;所述第一进程将所述序列化得到的所述会话数据发送至所述第二进程。

在此,第三模块13将会话数据进行序列化,便于网络传输。

具体地,所述第四模块14包括:第四一子模块141和第四二子模块142。该升级装置1还包括:第六模块16。

其中,第四一子模块141用于所述第二进程将接收的会话数据反序列化成为相应对象;第四二子模块142用于所述第二进程通过接收的文件描述符进行网络收发。第六模块16关闭所述第一进程的网络连接的文件描述符并且释放资源。

在此,第四一子模块141将接收到的会话数据(Session)进行反序列化,处理成为可方便识别的对象结构体或者数据结构。第四二子模块142根据第一进程发送来的文件描述符,控制网络收发模块对被切换至第二进程的网络连接数据进行收发。此时第一进程的网络连接成功被切换至第二进程。成功切换后,第六模块16关闭第一进程的文件描述符并且释放资源以关闭第一进程的网络连接。重复以上切换以及关闭网络连接的步骤,直至将第一进程的全部网络连接切换至第二进程,从而保证在升级时网络服务不被中断。

图3示出根据本申请一个方面的基于网络连接服务的升级方法的流程示意图。如图3所示,所述升级方法包括:

步骤S301,在第一进程进行网络连接时,启动第二进程;

步骤S302,所述第一进程根据预设条件查询所述网络连接;

步骤S303,所述第一进程将查询得到的网络连接的文件描述符和会话 数据发送至所述第二进程;

步骤S304,所述第二进程根据接收到的所述文件描述符和所述会话数据继续进行所述网络连接。

在此,第一进程为旧进程,第二进程为升级完成后的新进程,网络连接可以采用TCP网络连接。预设条件需保证待切换网络连接的数据流不具有上下文的依赖关系。文件描述符可以采用FD数据,会话数据可以采用Session数据,Session数据包括用户授权状态、业务处理定义变量等信息,每个Session数据管理一个TCP网络连接。在第二进程升级完成后,启动第二进程;根据预设条件查询第一进程的网络连接;将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程;根据第二进程接收到的文件描述符和会话数据继续进行第一进程切换来的网络连接。由此保证在将网络连接从第一进程切换至第二进程时,不会发生网络服务中断。

具体地,步骤S301,所述在第一进程进行网络连接时,启动第二进程包括:

步骤S3011,在所述第一进程进行网络监听时,启动所述第二进程并且启动所述第二进程的网络监听;

步骤S3012,关闭所述第一进程的网络监听。

在此,启动第二进程的网络监听,在第二进程的网络监听的启动过程中,会出现第一进程和第二进程的都在进行网络监听的情况,此时,新建立的网络连接会被随机分配至第一进程或第二进程的任意之一,以保证网络服务不会被中断。当第二进程启动完毕后,关闭第一进程以保证新建立的网络连接都被分配至第二进程。对于TCP连接,监听的端口需要设置为REUSE_PORT模式,以便允许第一进程和第二进程同时监听同一端口。

具体地,所述预设条件包括:所述网络连接的数据流不具有相互依赖关系。所述第一进程根据预设条件查询所述网络连接包括:查询没有未处理完成的网络请求或网络响应的网络连接;或者,查询具有断点续传状态的数据流网络连接。

例如,对于RPC通信,采用Request(请求)和Response(响应)方式进行通信,当TCP链路上没有尚未处理完成的Request或者Response 时,可以将网络连接由第一进程切换至第二进程,此时网络服务不会被中断。对于数据流网络连接,例如视频流的TCP连接,视频流一般为块数据发送,即对数据采用一块一块内容进行发送,当完整的发送完一块数据时,可以将视频流的网络连接由第一进程切换至第二进程,此时网络服务不会被中断。

可选地,所述升级方法还包括:

步骤S305,关闭所述第一进程查询得到的网络连接的读写事件。

在此,关闭第一进程的读写事件,被关闭的读写事件应为根据预设条件查询得到的网络连接的读写事件,从而切断第二进程的网络连接。

具体地,步骤S303,所述第一进程将查询得到的网络连接的文件描述符和会话数据发送至所述第二进程包括:

所述第一进程通过进程间数据通信将所述文件描述符和所述会话数据发送至所述第二进程。

在此,建立通过Socket域套接字在第一进程和第二进程之间建立进程间数据通信,以便于第一进程将文件描述符和会话数据成功发送至所述第二进程。

具体地,所述升级方法还包括:

步骤S306,所述第一进程对所述会话数据进行序列化;

步骤S307,所述第一进程将所述序列化得到的所述会话数据发送至所述第二进程。

在此,将会话数据进行序列化,便于网络传输。

具体地,步骤S304,所述第二进程根据接收到的所述文件描述符和所述会话数据继续进行所述网络连接包括:

步骤S3041,所述第二进程将接收的会话数据反序列化成为相应对象;

步骤S3042,所述第二进程通过接收的文件描述符进行网络收发;

步骤S3043,关闭所述第一进程的网络连接的文件描述符并且释放资源。

在此,将接收到的会话数据(Session)处理成为可方便识别的对象结构体或者数据结构。根据第一进程发送来的文件描述符,控制网络收发模 块对被切换至第二进程的网络连接数据进行收发。此时第一进程的网络连接成功被切换至第二进程。成功切换后,关闭第一进程的文件描述符并且释放资源以关闭第一进程的网络连接。重复以上切换以及关闭网络连接的步骤,直至将第一进程的全部网络连接切换至第二进程,从而保证在升级时网络服务不被中断。

图4示出根据本申请又一个方面的基于网络连接服务的升级方法的流程示意图。如图4所示,所述方法包括:

步骤S401,在所述第一进程进行网络监听时,启动所述第二进程并且启动所述第二进程的网络监听;

在此,启动第二进程的网络监听,在第二进程的网络监听的启动过程中,会出现第一进程和第二进程的都在进行网络监听的情况,此时,新建立的网络连接会被随机分配至第一进程或第二进程的任意之一,以保证网络服务不会被中断。对于TCP连接,监听的端口需要设置为REUSE_PORT模式,以便允许第一进程和第二进程同时监听同一端口。

步骤S402,关闭所述第一进程的网络监听。

在此,当第二进程启动完毕后,关闭第一进程以保证新建立的网络连接都被分配至第二进程。

步骤S403,所述第一进程根据预设条件查询所述网络连接.

在此,所述预设条件包括:查询没有未处理完成的网络请求或网络响应的网络连接;或者,查询具有断点续传状态的数据流网络连接。

例如,查询没有尚未处理完成的网络请求或网络响应的网络连接。对于RPC通信,采用Request(请求)和Response(响应)方式进行通信,当TCP链路上没有尚未处理完成的Request或者Response时,可以将网络连接由第一进程切换至第二进程,此时网络服务不会被中断。或者,查询具有断点续传状态的数据流网络连接,例如对于视频流的TCP连接,视频流一般为块数据发送,即对数据采用一块一块内容进行发送,当完整的发送完一块数据时,可以将视频流的网络连接由第一进程切换至第二进程,此时网络服务不会被中断。

步骤S404,关闭所述第一进程查询得到的网络连接的读写事件。

在此,关闭第一进程的读写事件,被关闭的读写事件应为根据预设条件查询得到的网络连接的读写事件,从而切断第二进程的网络连接。

步骤S405,所述第一进程对所述会话数据进行序列化。

在此,将会话数据进行序列化,便于网络传输。

步骤S406,所述第一进程通过进程间数据通信将所述文件描述符和序列化得到的所述会话数据发送至所述第二进程。

在此,建立通过Socket域套接字在第一进程和第二进程之间建立进程间数据通信,以便于第一进程将文件描述符和会话数据成功发送至所述第二进程。

步骤S407,所述第二进程将接收的会话数据反序列化成为相应对象。

在此,将接收到的会话数据(Session)处理成为可方便识别的对象结构体或者数据结构。

步骤S408,所述第二进程通过接收的文件描述符进行网络收发。

在此,根据第一进程发送来的文件描述符,控制网络收发模块对被切换至第二进程的网络连接数据进行收发。此时第一进程的网络连接成功被切换至第二进程。

步骤S409,关闭所述第一进程的网络连接的文件描述符并且释放资源。

在此,成功切换后,关闭第一进程的文件描述符并且释放资源以关闭第一进程的网络连接。重复以上切换以及关闭网络连接的步骤,直至将第一进程的全部网络连接切换至第二进程,从而保证在升级时网络服务不被中断。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例 如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1