服务器之间的通信方法、服务器及通信系统的制作方法

文档序号:10538829阅读:218来源:国知局
服务器之间的通信方法、服务器及通信系统的制作方法
【专利摘要】本发明实施例提供一种服务器之间的通信方法、服务器及通信系统,用以在服务器间针对同一业务,当需要进行多次相互通信时,减少服务器间需要进行的连接次数,降低连接开销。本发明实施例提供的一种服务器之间的通信方法,包括:第一服务器中需要与第二服务器通信的每一业务对应的处理模块,分别读取第二服务器的连接信息参数;所述第一服务器中需要与第二服务器通信的每一业务对应的处理模块根据连接信息参数,分别连接到第二服务器,由该第二服务器为每一业务建立一第二服务器的客户端;所述第一服务器中需要与第二服务器通信的每一业务对应的处理模块,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与第二服务器进行通信。
【专利说明】
服务器之间的通信方法、服务器及通信系统
技术领域
[0001]本发明实施例涉及计算机网络技术领域,尤其涉及服务器之间的通信方法、服务器及通信系统。
【背景技术】
[0002]Zookeeper是一种分布式的、开源的应用程序协调服务。它可以提供配置维护、分布式同步、组服务等服务。它也可以保存服务的配置信息,在高可用的服务中,可以随时对配置信息进行读取,修改等操作。
[0003]Zookeeper的具体应用场景如下:在云平台服务中,所有服务器上都部署着同一份网络web服务,这些服务器上安装了 zooke^er服务,构成一个集群,这些web服务使用zookeeper来进行一些简单信息的存储和使用等服务,相当于所有的服务器上的web服务拥有着一份zookeeper信息。
[0004]然而,在云平台中,对于高可用结构的web服务,有的web服务在启动的时候直接连接zookeeper,这样,在web服务与zookeeper进行通信时,web服务无需再连接zookeeper,从而避开了连接zookeeper的开销。然而,此方式在web服务启动时依赖zookeeper,web服务与zookeeper之间存在親合性的缺点,易对web服务启动产生影响。
[0005]如果web服务启动的时候不依赖zookeeper,在web服务与zookeeper需要进行通信时,web服务连接到zookeeper上,当通信结束后web服务与所述zookeeper断开。这样,web服务每次与zookeeper通信时都要连接zookeeper,从而使得web服务连接zookeeper的开销增大。
[0006]综上所述,现有技术中,若启动web服务时依赖zookeeper,则web服务与zookeeper之间存在親合性的缺点;若启动web服务时不依赖zookeeper,则web服务每次与zookeeper通信时,都要重新连接zookeeper,连接的开销太大,同时,在web服务处理的业务多的时候,在频繁连接zookeeper时会造成很多的zookeeper客户端连接。

【发明内容】

[0007]本发明实施例提供的服务器之间的通信方法、服务器及通信系统,用以在服务器间针对同一业务,当需要进行多次相互通信时,减少服务器间需要进行的连接次数,降低连接开销。
[0008]本发明实施例提供的一种服务器之间通信方法,包括:
[0009]第一服务器中需要与第二服务器通信的每一业务对应的处理模块,分别读取所述第二服务器的连接信息参数;
[0010]所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块根据所述连接信息参数,分别连接到所述第二服务器,由该第二服务器为每一业务建立一第二服务器的客户端;
[0011]所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与所述第二服务器进行通
?目O
[0012]本发明实施例提供的一种服务器之间的通信方法,包括:
[0013]第二服务器确定需要与所述第一服务器中的每一业务对应的处理模块通信;
[0014]所述第二服务器分别与所述第一服务器中需要与所述第二服务器通信的每一处理模块进行连接,并在该第二服务器为每一业务建立一个客户端;
[0015]所述第二服务器通过与所述每一业务对应的客户端,分别与所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块进行通信。
[0016]本发明实施例提供的一种服务器,包括:
[0017]需要与另一服务器通信的每一业务对应的处理模块,用于读取另一服务器的连接信息参数;以及,根据所述连接信息参数,连接到另一服务器,由另一服务器为每一业务建立一客户端;以及,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与另一服务器进行通信。
[0018]本发明实施例提供的一种服务器,包括:
[0019]确定模块,用于确定该服务器需要与另一服务器中的每一业务对应的处理模块通?目;
[0020]执行模块,用于与所述另一服务器中需要与该服务器通信的每一业务对应的处理模块进行连接,并在该服务器为每一业务建立一个客户端;以及,与所述另一服务器中需要与该服务器通信的每一处理模块进行通信。
[0021]本发明实施例提供的一种通信系统,包括上述两种服务器。
[0022]本发明实施例提供的服务器之间的通信方法、服务器及通信系统,第一服务器中需要与第二服务器通信的每一业务对应的处理模块,分别读取所述第二服务器的连接信息参数,从而使得,当第一服务器需要与第二服务器通信时才与第二服务器连接,所述第一服务器启动时不依赖所述第二服务器,解决了现有技术中一种服务器启动时需要依赖另一种服务器而产生的耦合性的缺点。其次,所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块根据所述连接信息参数,分别连接到所述第二服务器,由该第二服务器为每一业务建立一第二服务器的客户端,所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与所述第二服务器进行通信,从而使得,当第一服务器中的同一业务所对应的处理模块再次需要与第二服务通信时,所述第一服务器中的该处理模块无需再与所述第二服务器进行连接,直接通过该处理模块对应的所述第二服务器的客户端即可与所述第二服务器进行通信,避免了现有技术中服务器间多次存在同一业务需要相互通信时,服务器间需要进行多次连接,导致连接开销大的问题。通过本发明实施例提供的方法,所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块只需与所述第二服务器进行一次初始化连接,有效控制了第一服务器连接第二服务器的客户端的数量。
【附图说明】
[0023]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1为本发明实施例提供的一种服务器之间的通信方法的流程示意图;
[0025]图2为本发明实施例提供的另一种服务器之间的通信方法实的流程示意图;
[0026]图3为本发明实施例提供的一种服务器的结构示意图;
[0027]图4为本发明实施例提供的另一种服务器的结构示意图。
【具体实施方式】
[0028]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029]在第一服务器侧,参见图1,本发明实施例提供的一种服务器之间的通信方法,包括:
[0030]S101、第一服务器中需要与第二服务器通信的每一业务对应的处理模块,分别读取所述第二服务器的连接信息参数;
[0031]S102、所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块根据所述连接信息参数,分别连接到所述第二服务器,由该第二服务器为每一业务建立一第二服务器的客户端;
[0032]S103、所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与所述第二服务器进行通信。
[0033]其中,第一服务器预先配置所要连接的第二服务器的连接信息参数,并将所述第二服务器的连接信息参数保存在该第一服务器的本地配置文件中,以便当第一服务器需要与第二服务器通信时,通过读取本地配置文件中的第二服务器的连接信息参数,就可以连接到所述第二服务器。
[0034]较佳地,所述第二服务器的连接信息参数具体包括所述第二服务器的地址和所述第二服务器的端口。
[0035]本发明实施例提供的服务器之间的通信方法、服务器及通信系统,第一服务器中需要与第二服务器通信的每一业务对应的处理模块,分别读取所述第二服务器的连接信息参数。从而使得,当第一服务器需要与第二服务器通信时才与第二服务器连接,所述第一服务器启动时不依赖所述第二服务器,解决了现有技术中一种服务器启动时需要依赖另一种服务器而产生的耦合性的缺点。所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块根据所述连接信息参数,分别连接到所述第二服务器,由该第二服务器为每一业务建立一第二服务器的客户端,所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与所述第二服务器进行通信。从而使得,当第一服务器中的同一业务所对应的处理模块再次需要与第二服务通信时,所述第一服务器中的该处理模块无需再与所述第二服务器进行连接,直接通过该处理模块对应的所述第二服务器的客户端即可与所述第二服务器进行通信,避免了现有技术中服务器间多次存在同一业务需要相互通信时,服务器间需要进行多次连接,导致连接开销大的问题。通过本发明实施例提供的方法,所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块只需与所述第二服务器进行一次初始化连接,有效控制了第一服务器连接第二服务器的客户端的数量。
[0036]较佳地,本发明实施例提供的一种服务器之间的通信方法,还包括:所述第一服务器中的逻辑判断模块,当确定该第一服务器中任一业务对应的处理模块所对应的客户端失效时,指示相应的处理模块重新与所述第二服务器进行连接,由该第二服务器为该业务重新建立一个客户端。
[0037]从而,可保证第一服务器中存在的所有业务均可与第二服务器正常通信,保证了服务器间通信的质量。
[0038]相对应地,在第二服务器侧,参见图2,本发明实施例提供的一种服务器之间的通信方法,包括:
[0039]S201、第二服务器确定需要与所述第一服务器中的每一业务对应的处理模块通
?目;
[0040]S202、所述第二服务器分别与所述第一服务器中需要与所述第二服务器通信的每一处理模块进行连接,并在该第二服务器为每一业务建立一个客户端;
[0041]S203、所述第二服务器通过与所述每一业务对应的客户端,分别与所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块进行通信。
[0042]第二服务器确定需要与所述第一服务器中的每一业务对应的处理模块通信,可以是当所述第二服务器收到所述第一服务器中的每一业务对应的处理模块发送的连接请求消息时,所述第二服务器确定需要与所述第一服务器中的每一业务对应的处理模块通信。
[0043]其中,所述连接请求消息可以是第一服务器中的仅一个业务对应的处理模块发送的,也可以是第一服务器中的多个业务分别对应的处理模块发送的。也就是说,只要第一服务器中存在有业务需要与所述第二服务器进行通信,这些业务所对应的处理模块就向所述第二模块发送所述连接请求消息。
[0044]所述第二服务器分别与所述第一服务器中需要与所述第二服务器通信的每一处理模块进行连接时,在该第二服务器为每一业务建立一个客户端。从而,可使得第一服务器中需要与第二服务器通信的每一业务都对应一个客户端,该客户端可供该业务长久使用。
[0045]通过上述论述可知,本发明实施例,第一服务器与第二服务器进行通信时,可以论述为是采用继承类单例的方式。其中,单例是一种常用的软件设计模式,能够保证系统中一个类只有一个实例,从而方便对实例个数控制并节约资源。本发明实施例,通过继承类单例的方式,使得第一服务器中的每一个业务可以对应一个第二服务器的客户端,且该客户端可以供该业务长久使用,有效控制了第一服务器与第二服务器连接的客户端的数量。
[0046]本发明实施例所述的第一服务器,例如可以为web服务器;第二服务器,例如可以为 zookeeper。
[0047]下面以第一服务器为web服务器,第二服务器为zooke^er为例,给出一个具体实施例的说明。
[0048]为了论述方便,假设所述web服务器中有5个业务,5个业务分别对应5个处理模块。我们将上述5个业务分别称作A业务、B业务、C业务、D业务和E业务,5个业务所对应的处理模块分别称作模块1、模块2、模块3、模块4和模块5。
[0049]当web服务器启动时,不与zookeeper进行连接。在后续的某一时刻,假如web服务器中的A业务、B业务和C业务需要与zookeeper进行通信,此时,模块1、模块2和模块3分别读取web服务器的本地配置文件中所保存的zook^per的地址和端口信息参数。然后,所述模块1、模块2和模块3根据所述zookeeper的地址和端口信息参数,分别连接到所述zookeeper上,由所述zookeeper为所述A业务、B业务和C业务分别建立一个zookeeper的客户端,称作客户端1、客户端2和客户端3。所述模块1、模块2和模块3分别将客户端1、客户端2和客户端3保存在各自的本地文件中,并通过客户端1、客户端2和客户端3与所述zookeeper进行通信。这里,一个客户端对应一个业务即为一个单例,也就是客户端I对应A业务为一个单例,客户端2对应B业务为一个单例,客户端3对应C业务为一个单例,通过不同业务采用不同的单例,来实现所述web服务器与zook^per的通信。
[0050]当在后续时刻,所述模块1、模块2和模块3中的任一模块需要多次与zookeeper通信时,所述各模块无需再与所述zookeeper再进行连接,分别通过各模块对应的客户端,即可与zooke^er进行通信。这主要是通过上述的模块1、模块2和模块3分别将客户端
1、客户端2和客户端3保存在各自的本地文件中来实现的,也就是说,实现了单例的继承,每个客户端可以长久为该客户端对应的模块中的业务长久服务。
[0051]需要说明的是,所述模块1、模块2、模块3、模块4和模块5可以是同时需要与zookeeper通信,也可以是分别在不同时刻需要与zookeeper通信,并不限于上述情况。
[0052]通过本实施例所述的方法,web服务器启动时不需要依赖zookeeper,当web服务器中存在业务需要与zookeeper通信时,所述web服务器中每一需要与zookeeper通信的业务所对应的模块分别连接zookeeper,并由所述zookeeper为所述各业务分别建立一对应的客户端,该客户端可为对应的业务长久服务,从而避开了 web服务器频繁连接zookeeper 的开销。
[0053]下面介绍与上述方法相对应的装置。
[0054]在第一服务器侧,参见图3,本发明实施例提供的一种服务器,包括:
[0055]需要与另一服务器通信的每一业务对应的处理模块11,用于读取另一服务器的连接信息参数;以及,根据所述连接信息参数,连接到另一服务器,由另一服务器为每一业务建立一客户端;以及,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与另一服务器进行通信;
[0056]逻辑判断模块12,用于当确定该服务器中任一业务对应的处理模块所对应的另一服务器的客户端失效时,指示相应的处理模块重新与所述另一服务器进行连接,由所述另一服务器为该业务重新建立一个客户端。
[0057]其中,需要与另一服务器通信的每一业务对应的处理模块的个数可以为一个,也可以为多个。也就是说,所述服务器中存在有几个业务,就对应有几个处理模块,本发明实施例对所述服务器中的处理模块的个数不做限定。
[0058]较佳地,所述另一服务器的连接信息参数具体包括:所述另一服务器的地址和所述另一服务器的端口。
[0059]相应地,在第二服务器侧,参见图4,本发明实施例提供的一种服务器,包括:
[0060]确定模块21,用于确定该服务器需要与另一服务器中的每一业务对应的处理模块通信;
[0061]执行模块22,用于与所述另一服务器中需要与该服务器通信的每一业务对应的处理模块进行连接,并在该服务器为每一业务建立一个客户端;以及,与所述另一服务器中需要与该服务器通信的每一处理模块进行通信。
[0062]所述确定模块21确定该服务器需要与另一服务器中的每一业务对应的处理模块通信,可以是当该确定模块21收到另一服务器中的每一业务对应的处理模块发送的连接请求消息时,所述确定模块21确定该服务器需要与另一服务器中的每一业务对应的处理模块通信。
[0063]本发明实施例提供的一种通信系统,包括上述图3和图4中所述的两种服务器,所述两种服务器可参见上述对两种服务器的描述,在此不再赘述。
[0064]本发明实施例中,可以通过硬件处理器(hardware processor)来实现上述相关功能丰吴块。
[0065]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0066]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0067]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种服务器之间的通信方法,其特征在于,该方法包括: 第一服务器中需要与第二服务器通信的每一业务对应的处理模块,分别读取所述第二服务器的连接信息参数; 所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块根据所述连接信息参数,分别连接到所述第二服务器,由该第二服务器为每一业务建立一第二服务器的客户端; 所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与所述第二服务器进行通信。2.根据权利要求1所述的方法,其特征在于,所述第二服务器的连接信息参数具体包括:所述第二服务器的地址和所述第二服务器的端口。3.根据权利要求1所述的方法,其特征在于,该方法还包括: 所述第一服务器中的逻辑判断模块,当确定该第一服务器中任一业务对应的处理模块所对应的客户端失效时,指示相应的处理模块重新与所述第二服务器进行连接,由该第二服务器为该业务重新建立一个客户端。4.一种服务器之间的通信方法,其特征在于,该方法包括: 第二服务器确定需要与所述第一服务器中的每一业务对应的处理模块通信; 所述第二服务器分别与所述第一服务器中需要与所述第二服务器通信的每一处理模块进行连接,并在该第二服务器为每一业务建立一个客户端; 所述第二服务器通过与所述每一业务对应的客户端,分别与所述第一服务器中需要与所述第二服务器通信的每一业务对应的处理模块进行通信。5.一种服务器,其特征在于,该服务器包括: 需要与另一服务器通信的每一业务对应的处理模块,用于读取另一服务器的连接信息参数;以及,根据所述连接信息参数,连接到另一服务器,由另一服务器为每一业务建立一客户端;以及,将本模块对应的客户端保存在本模块的本地文件中,并通过该客户端与另一服务器进行通信。6.根据权利要求5所述的服务器,其特征在于,所述另一服务器的连接信息参数具体包括:所述另一服务器的地址和所述另一服务器的端口。7.根据权利要求5所述的服务器,其特征在于,该服务器还包括: 逻辑判断模块,用于当确定该服务器中任一业务对应的处理模块所对应的另一服务器的客户端失效时,指示相应的处理模块重新与所述另一服务器进行连接,由所述另一服务器为该业务重新建立一个客户端。8.一种服务器,其特征在于,该服务器包括: 确定模块,用于确定该服务器需要与另一服务器中的每一业务对应的处理模块通信; 执行模块,用于与所述另一服务器中需要与该服务器通信的每一业务对应的处理模块进行连接,并在该服务器为每一业务建立一个客户端;以及,与所述另一服务器中需要与该服务器通信的每一处理模块进行通信。9.一种通信系统,其特征在于,该系统包括权利要求5-7任一权项所述的服务器,和权利要求8所述的服务器。
【文档编号】H04L29/08GK105897817SQ201510595717
【公开日】2016年8月24日
【申请日】2015年9月17日
【发明人】张增
【申请人】乐视云计算有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1