分布式系统中的服务连接方法及装置的制造方法

文档序号:9828225阅读:407来源:国知局
分布式系统中的服务连接方法及装置的制造方法
【技术领域】
[0001]本申请涉及网络通信技术领域,特别涉及一种分布式系统中的服务连接方法及装置。
【背景技术】
[0002]在分布式系统(例如,包括多个单板的框式设备)中,通信的过程一般涉及到两个主体,分别是客户端(Client)和服务器(Server)。当要开启具有某种特定功能的服务时,Server上的进程会打开该服务的端口 ;Client上的进程需要访问该服务时,会根据该服务所在Server的位置信息(具体为Server的IP地址)和该服务的端口号,向Server上的进程发起连接;连接成功后,Server上的进程与Client上的进程便可以互相的收发数据。后续,当要关闭该服务时,Server上的进程只需关闭该服务的端口即可。
[0003]在上述的通信过程中,Server上的进程开启服务的操作与Client上的进程要访问该服务的操作是完全独立的,这样就会存在这样一种情况:在Server上的进程开启服务之前,Client上的进程为了访问该服务而发起连接。在这种情况下,Client上的进程就会与Server上的进程连接失败,之后Client上的进程会不断地向Server上的进程发起连接,直至Server上的进程开启该服务、Client上的进程与Server上的进程连接成功为止。重复的发起连接,会占用客户端的大量CPU(中央处理器)资源。

【发明内容】

[0004]有鉴于此,本申请提供了一种分布式系统中的服务连接方法及装置。
[0005]本申请的技术方案如下:
[0006]—方面,提供了一种分布式系统中的服务连接方法,该方法包括:
[0007]当获知有进程要访问服务时,判断本地数据库中是否存在包含有该服务对应的端口信息以及该服务所在节点的位置信息的表项;
[0008]若是,则将该表项中的该服务对应的端口信息以及该服务所在节点的位置信息通知给该进程以便发起连接;
[0009]否则,在接收到携带有该服务对应的端口信息以及该服务所在节点的位置信息的服务开启消息之后,在数据库中增加包含有携带的端口信息以及位置信息的表项,并将该端口信息以及该位置信息通知给该进程以便发起连接。
[0010]其中,该方法还包括:当有进程开启服务时,在该数据库中增加包含有开启的服务对应的端口信息以及本节点的位置信息的表项,并向该分布式系统中的其它节点发送服务开启消息,其中,发送的服务开启消息中携带有开启的服务对应的端口信息以及本节点的位置信息。
[0011]其中,该方法还包括:当有进程关闭服务时,从该数据库中删除包含有关闭的服务对应的端口信息以及本节点的位置信息的表项,并向该分布式系统中的其它节点发送服务关闭消息,其中,发送的服务关闭消息中携带有关闭的服务对应的端口信息以及本节点的位置信息。
[0012]其中,获知有进程要访问服务的方法包括:接收到进程要访问服务的请求之后,记录该进程的进程ID标识与要访问的服务对应的端口信息之间的对应关系。
[0013]其中,该方法还包括:在接收到服务关闭消息之后,从该数据库中删除与接收到的服务关闭消息中携带的关闭的服务对应的端口信息以及该关闭的服务所在节点的位置信息相匹配的表项,并通知记录的该端口信息对应的进程ID所指示的进程以便执行关闭响应操作,其中,该关闭响应操作包括:重新请求访问该关闭的服务。
[0014]另一方面,还提供了一种分布式系统中的服务连接装置,该装置包括:
[0015]判断模块,用于当获知有进程要访问服务时,判断本地数据库中是否存在包含有该服务对应的端口信息以及该服务所在节点的位置信息的表项;
[0016]接收模块,用于接收服务开启消息;
[0017]数据库更新模块,用于在接收模块接收到携带有服务对应的端口信息以及服务所在节点的位置信息的服务开启消息之后,在数据库中增加包含有携带的端口信息以及位置信息的表项;
[0018]通知模块,用于若判断模块的判断结果是存在,则将该表项中的该服务对应的端口信息以及该服务所在节点的位置信息通知给该进程以便发起连接;还用于若判断模块的判断结果是不存在,则在接收模块接收到携带有服务对应的端口信息以及服务所在节点的位置信息的服务开启消息之后,将携带的端口信息以及位置信息通知给该进程以便发起连接。
[0019]其中,数据库更新模块,还用于当有进程开启服务时,在数据库中增加包含有开启的服务对应的端口信息以及本节点的位置信息的表项;通知模块,还用于当有进程开启服务时,向分布式系统中的其它节点发送服务开启消息,其中,发送的服务开启消息中携带有开启的服务对应的端口信息以及本节点的位置信息。
[0020]其中,数据库更新模块,还用于当有进程关闭服务时,从数据库中删除包含有关闭的服务对应的端口信息以及本节点的位置信息的表项;通知模块,还用于当有进程关闭服务时,向分布式系统中的其它节点发送服务关闭消息,其中,发送的服务关闭消息中携带有关闭的服务对应的端口信息以及本节点的位置信息。
[0021]其中,判断模块包括:请求接收单元,用于接收进程要访问服务的请求;记录单元,用于在请求接收单元接收到进程要访问服务的请求之后,记录该进程的进程ID与要访问的服务对应的端口信息之间的对应关系。
[0022]其中,接收模块,还用于接收服务关闭消息;数据库更新模块,还用于在接收模块接收到服务关闭消息之后,从数据库中删除与接收到的服务关闭消息中携带的关闭的服务对应的端口信息以及该关闭的服务所在节点的位置信息相匹配的表项;通知模块,还用于在接收模块接收到服务关闭消息之后,通知记录单元中记录的对应进程ID所指示的进程以便执行关闭响应操作,其中,关闭响应操作包括:重新请求访问该关闭的服务,该对应进程ID与接收到的服务关闭消息中携带的关闭的服务对应的端口信息相对应。
[0023]本申请的以上技术方案中,通过在节点上保存已经开启的服务的端口信息以及该服务所在节点的位置信息之间的对应关系,当有进程要访问服务时,首先判断本地数据库中是否保存了要访问的服务的端口信息以及该服务所在节点的位置信息之间的对应关系,如果保存了,则直接将保存的端口信息以及位置信息通知给该进程,该进程即可直接根据这些信息发起连接;如果没有保存,在接收到携带有要访问的服务的端口信息以及该服务所在节点的位置信息的服务开启消息之后,保存这些信息并将这些信息通知给该进程用于发起连接。这样,如果在Server上的进程开启服务之前,Client上的进程就要访问该服务,那么,在Client本地没有保存该服务的端口信息以及该服务所在节点的位置信息的情况下,该进程不会立刻向Server上的进程发起连接,而是等待所在Client接收到Server发来的用于指示该服务开启的服务开启消息后,才根据该服务开启消息中携带的要访问的服务的端口信息以及该服务所在节点的位置信息发起连接,从而,避免了重复发起连接导致的Client的CPU资源占用率较高的问题。
【附图说明】
[0024]图1是本申请实施例的分布式系统中的服务连接方法的流程图;
[0025]图2是本申请实施例的分布式系统中的服务连接装置的结构示意图。
【具体实施方式】
[0026]现有技术中,如果在Server上的进程开启服务之前,Client上的进程就为了访问该服务而发起了连接,即,Client上的进程已经发起了连接但是Server上的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1