CN114979143B - 一种分布式服务的实现方法和分布式服务系统 - Google Patents
一种分布式服务的实现方法和分布式服务系统 Download PDFInfo
- Publication number
- CN114979143B CN114979143B CN202210556416.6A CN202210556416A CN114979143B CN 114979143 B CN114979143 B CN 114979143B CN 202210556416 A CN202210556416 A CN 202210556416A CN 114979143 B CN114979143 B CN 114979143B
- Authority
- CN
- China
- Prior art keywords
- service
- target
- requester
- service unit
- independent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及分布式技术领域,本发明公开了一种分布式服务的实现方法和分布式服务系统,应用于分布式服务系统,系统包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中多个服务单元包括一个公共服务单元和多个独立服务单元,公共服务单元中还部署有服务网关;方法包括:服务网关接收请求方的请求报文,确定请求方所需的目标服务类型以及目标服务单元;服务网关访问目标服务单元中的注册中心,确定目标服务类型对应的目标服务器节点的地址;服务网关根据所述目标服务器节点的地址,调用目标服务器节点;服务网关接收目标服务器节点返回的调用结果;服务网关将所述调用结果返回至请求方。本发明可以提高服务效率。
Description
技术领域
本发明涉及分布式技术领域,尤其涉及一种分布式服务的实现方法和分布式服务系统。
背景技术
为了满足服务请求方的不同需求,服务系统中包含了多种多样不同的服务服务,其中服务系统用于给服务请求方提供对应的服务服务。在现有技术中,通常将所有提供服务的服务器节点统一部署在一个服务系统下,所有请求方共用一套数据库。这就导致当某一请求方的请求数据量增大时,会占用其他请求方的服务器节点,进而对整个服务系统的性能、吞吐量、可用性方面带来影响,使得服务效率降低。
因此,现在亟需一种分布式服务的实现方法,能够根据请求方不同,提供不同的服务单元,进而提高服务效率。
发明内容
本发明实施例提供一种分布式服务的实现方法和分布式服务系统,用以提高服务效率,其中方法应用于分布式服务系统,所述系统包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中所述多个服务单元包括一个公共服务单元和多个独立服务单元,所述公共服务单元中还部署有服务网关;
所述方法包括:
所述服务网关接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元;
所述服务网关访问目标服务单元中的注册中心,确定所述目标服务类型对应的目标服务器节点的地址;
所述服务网关根据所述目标服务器节点的地址,调用所述目标服务器节点;
所述服务网关接收目标服务器节点返回的调用结果;
所述服务网关将所述调用结果返回至请求方。
优选的,确定所述请求方所需的服务类型进一步包括:
所述服务网关解析请求方的请求报文,得到所述请求方对应的类型标识;
所述服务网关将所述类型标识与类型标识表匹配,确定所述请求方所需的服务类型。
优选的,确定所述请求方所需的目标服务单元进一步包括:
所述服务网关解析请求方的请求报文,得到所述请求方对应的关键字段;
所述服务网关将所述关键字段与服务单元表匹配,确定所述请求方所需的目标服务单元。
优选的,所述公共服务单元中的多个不同的服务器节点用于提供多种不同类型的公共服务,以供公共服务单元或独立服务单元使用;所述独立服务单元的多个不同的服务器节点用于提供多种不同类型的独立服务,仅供对应的独立服务单元使用。
优选的,所述服务网关根据所述目标服务器节点的地址,调用所述目标服务器节点之后还包括:
当目标服务器节点部署在独立服务单元中且所述目标服务器节点在调用过程中需要其他服务类型时;
所述目标服务器节点向目标独立服务单元的注册中心或向所述公共服务单元的注册中心发送请求信息,其中所述请求信息中包括所需的其他服务类型;
所述目标独立服务单元的注册中心或所述公共服务单元的注册中心接收所述请求信息,确定所需的其他服务类型对应的其他服务器节点的地址,并将所述其他服务器节点的地址返回至所述目标服务器节点;
所述目标服务器节点根据所述地址,调用所述其他服务器节点。
优选的,所述独立服务单元中每一服务器节点均连接有一个或多个数据库,所述一个或多个数据库用于存储对应服务器节点产生的数据。
本发明实施例还提供一种分布式服务系统,包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中所述多个服务单元包括一个公共服务单元和多个独立服务单元,所述公共服务单元中还部署有服务网关;
所述服务网关用于接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元;访问目标服务单元中的注册中心,确定所述目标服务类型对应的目标服务器节点的地址;根据所述目标服务器节点的地址,调用所述目标服务器节点;接收目标服务器节点返回的调用结果;将所述调用结果返回至请求方。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项分布式服务的实现方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项分布式服务的实现方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项分布式服务的实现方法。
在本发明中,可以根据服务器节点用于提供公共服务还是独立服务进而对服务器节点进行划分,将提供公共服务的服务器节点归在公共服务单元中,将提供独立服务的服务器节点归在独立服务单元中,并且设置多个独立服务单元。当请求方发送请求报文时,通过公关服务单元中的服务网关解析报文,并确定具体调用目标服务单元中的目标服务器节点,即使该请求方的请求数据量较大,只会使得目标服务单元中的目标服务器节点的压力较大,也不会对其他请求方造成影响,进而可以提高服务效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种分布式服务系统的模块结构示意图;
图2为本发明实施例中提供的一种分布式服务的实现方法的流程示意图;
图3为本发明实施例中提供的用于确定请求方所需的服务类型的流程示意图;
图4为本发明实施例中提供的用于确定请求方所需的目标服务单元的流程示意图;
图5为本发明实施例中根据目标服务器节点的地址,调用目标服务器节点之后的流程示意图;
图6为本发明实施例中提供的计算机设备的结构示意图。
602、计算机设备;
604、处理器;
606、存储器;
608、驱动机构;
610、输入/输出模块;
612、输入设备;
614、输出设备;
616、呈现设备;
618、图形用户接口;
620、网络接口;
622、通信链路;
624、通信总线。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在现有技术中,通常将所有提供服务的服务器节点统一部署在一个服务系统下,所有请求方共用一套数据库。这就导致当某一请求方的请求数据量增大时,会占用其他请求方的服务器节点,进而对整个服务系统的性能、吞吐量、可用性方面带来影响,使得服务效率降低。
为了解决上述问题,本文实施例提供了一种分布式服务的实现方法。图1是本文实施例提供的一种分布式服务的实现方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或装置产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明提供一种分布式服务的实现方法,应用于分布式服务系统,参照图1,所述系统包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中所述多个服务单元包括一个公共服务单元和多个独立服务单元,所述公共服务单元中还部署有服务网关。
也就是说,多个服务单元为一个公共服务单元和多个独立服务单元,公共服务单元中部署有服务网关、注册中心和多个不同的服务器节点;每一独立服务单元中部署有注册中心和多个不同的服务器节点。
需要说明的是,公共服务单元中的多个不同的服务器节点用于提供多种不同类型的公共服务,以供公共服务单元或独立服务单元使用,多种不同类型的公共服务例如服务器节点m提供全局配置服务,服务器节点n提供加解密服务等;所述独立服务单元的多个不同的服务器节点用于提供多种不同类型的独立服务,仅供对应的独立服务单元使用。
其次,不论是公共服务单元的注册中心,还是独立服务单元的注册中心,均用于存储部署在公共服务单元或者独立服务单元中的多个不同服务器节点的地址,当某一服务器节点的地址发生变更时,会将变更后的地址更新至对应的注册中心内。注册中心对服务器节点的地址的存储方式可以是通过地址存储表来实现,也可以是通过其他的存储方式来实现,本文不作具体限定。
当然,对于任意两个独立服务单元A和B来说,独立服务单元A中的多个不同的服务器节点可能包括服务器节点a1、b1、c1,独立服务单元B中的多个不同的服务器节点可能包括服务器节点a2、b2、c2,也可能包括服务器节点a2、b2、d1,其中服务器节点a1和a2为同一类型的服务器节点,用于提供同一种服务,同理,服务器节点b1和b2也为同一类型的服务器节点。也就是说,任意两个独立服务单元中的多个不同服务器节点可能同属于同一类型,也可能不属于同一类型,具体可以根据实际工况进行设定。
此外,所述独立服务单元中每一服务器节点均连接有一个或多个数据库,所述一个或多个数据库用于存储对应服务器节点产生的数据;对于公共服务单元来说,公共服务单元中每一服务器节点也连接有对应的设备或者数据库,例如进行全局配置服务的服务器节点m连接有配置数据库,用于存储配置数据,而进行加解密服务的服务器节点n连接有加密机,用于进行加解密操作。
参照图2,所述分布式服务的实现方法包括:
S101:所述服务网关接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元;
S102:所述服务网关访问目标服务单元中的注册中心,确定所述目标服务类型对应的目标服务器节点的地址;
S103:所述服务网关根据所述目标服务器节点的地址,调用所述目标服务器节点;
S104:所述服务网关接收目标服务器节点返回的调用结果;
S105:所述服务网关将所述调用结果返回至请求方。
请求方向服务网关发送请求报文,服务网关在接收请求报文后根据请求报文可以确定请求方所需的目标服务类型以及目标服务单元。相应的服务网关访问目标服务单元的注册中心,由于注册中心中存储有目标服务单元中所有服务节点的地址,就可以根据目标服务类型确定目标服务器节点的地址。
进而,服务网关调用目标服务器节点,并将请求报文转发至目标服务器节点,目标服务器节点根据请求报文的内容提供相应的服务,然后生成调用结果。例如根据请求报文的内容,目标服务器节点提供的服务为读取数据库X中的数据M,则调用结果即为数据M;再如根据请求报文的内容,目标服务器节点提供的服务为将数据M存储至数据库X中,则调用结果可以为代表存储成功或者存储失败的返回值。服务网关在接收目标服务节点返回的调用结果后,将调用结果返回至请求方,请求方的此次请求结束。
在本发明中,可以根据服务器节点用于提供公共服务还是独立服务进而对服务器节点进行划分,将提供公共服务的服务器节点归在公共服务单元中,将提供独立服务的服务器节点归在独立服务单元中,并且设置多个独立服务单元。当请求方发送请求报文时,通过公关服务单元中的服务网关解析报文,并确定具体调用目标服务单元中的目标服务器节点,即使该请求方的请求数据量较大,只会使得目标服务单元中的目标服务器节点的压力较大,也不会对其他请求方造成影响,进而可以提高服务效率。
当然,为了缓解由于请求方的请求数据量较大,对目标服务单元中的目标服务器节点造成的压力,可以设置多个目标服务器节点。也就是说,本发明中所提及的每一服务单元中同一类型的服务器节点指的是服务器节点组,服务器节点组中可以包括一个或多个同一类型的服务器节点,多个同一类型的服务器节点可以缓解请求数据量较大时产生的压力。
参照图3,具体的,确定所述请求方所需的服务类型进一步包括:
S201:所述服务网关解析请求方的请求报文,得到所述请求方对应的类型标识;
S202:所述服务网关将所述类型标识与类型标识表匹配,确定所述请求方所需的服务类型。
请求方的请求报文中包含请求方的类型标识,该类型标识的表现形式可以是将部署在公共服务单元以及独立服务单元中的服务器节点的所有服务类型进行编号,编号与服务类型一一对应,而类型标识表中记录了编号与服务类型的一一对应关系。该类型标识的表现形式也可以是所需服务类型的服务器节点的URL地址,而类型标识表中记录了任一服务类型对应的所有服务器节点的URL地址,例如服务类型A对应的服务器节点a、b、c,则类型标识表中记录了服务类型A对应URL-a、URL-b、URL-c。
请求方在发送请求时先确定所需的服务类型,然后通过查询类型标识表确定所需的服务类型对应的类型标识,进而将类型标识记录在请求报文中,服务网关在解析请求报文后,即可得到请求方的类型标识,然后将类型标识与类型标识表进行匹配,即可确定请求方所需的服务类型。
由于服务类型分为公共服务和独立服务,公共服务单元中的多个不同的服务器节点均用于提供公共服务,而独立服务单元中的多个不同的服务器节点均用于提供独立服务。
在确定请求方所需的服务类型之后,可以进一步确定请求方所需的服务类型是公共服务还是独立服务。若请求方所需的服务类型是公共服务,由于公共服务单元只有一个,所以可以确定目标服务单元即为公共服务单元;若请求方所需的服务类型是独立服务,由于独立服务单元有多个,所以还需进一步确定目标服务单元具体为哪一个独立服务单元。
参照图4,进一步的,确定所述请求方所需的目标服务单元进一步包括:
S301:所述服务网关解析请求方的请求报文,得到所述请求方对应的关键字段;
S302:所述服务网关将所述关键字段与服务单元表匹配,确定所述请求方所需的目标服务单元。
对于任一请求方来说,有固定的独立服务单元为其提供服务,而该固定的独立服务单元中也一定部署有请求方所需的多种不同类型的服务器节点,在上述S301至S302中,主要目的是进一步确定请求方所需的目标服务单元具体为哪一个独立服务单元。
一方面,关键字段可以直接记录在请求报文的头部,在解析请求方的请求报文后,可以得到请求方对应的关键字段,该关键字段可以是请求方标识,而服务单元表中记录有任一独立服务单元对应的所有请求方标识。例如独立服务单元A,其对应的请求方标识为a1、a2,代表独立服务单元A可以同时对标识为a1和a2的请求方提供服务。
另一方面,关键字段也可以是通过进一步计算得到的,先解析请求方的请求报文,得到请求方对应的中间字段,对中间字段进行计算,得到关键字段。例如中间字段可以为请求方ID,对请求方ID进行哈希运算后得到哈希值,再对哈希值进行取余,即可得到该请求方对应的关键字段,关键字段为0-9中任一整数值。而服务单元表中记录有任一独立服务单元对应的所有数值。例如独立服务单元A,其对应的数值为0、1,代表独立服务单元A可以同时为计算得到的关键字段为0和1的请求方提供服务。
由于所述独立服务单元中每一服务器节点均连接有一个或多个数据库,对于任一请求方来说,每次进行读写操作尽量是在服务器节点下的一个数据库中,以提高读写效率。若任一请求方的多次写入操作分布在服务器节点下的多个数据库中,在该请求方进行下一次读取数据时,需要依次遍历服务器节点下的所有数据库才能找到需要读取的数据,这样会大大降低读写效率。
因此,可以对每一服务器节点连接的多个数据库进行编号,请求方可以在请求报文中记录其对应的数据库的编号;也可以依据每一服务器节点连接的多个数据库的主键,计算哈希值,再通过哈希值进行取余,得到0-9中任一余数,请求方可以在请求报文中记录其对应的数据库的表征值,该表征值为请求方对应的数据库的主键计算得到的余数。通过上述方式确定请求方对应的数据库,进而提高读写效率。
参照图5,在本发明中,所述服务网关根据所述目标服务器节点的地址,调用所述目标服务器节点之后还包括:
S401:当目标服务器节点部署在独立服务单元中且所述目标服务器节点在调用过程中需要其他服务类型时;
S402:所述目标服务器节点向目标独立服务单元的注册中心或向所述公共服务单元的注册中心发送请求信息,其中所述请求信息中包括所需的其他服务类型;
S403:所述目标独立服务单元的注册中心或所述公共服务单元的注册中心接收所述请求信息,确定所需的其他服务类型对应的其他服务器节点的地址,并将所述其他服务器节点的地址返回至所述目标服务器节点;
S404:所述目标服务器节点根据所述地址,调用所述其他服务器节点。
目标服务器节点部署在独立服务单元中,意味着请求方所需的服务类型为独立服务,此时有可能发生目标服务器节点在调用过程中需要其他服务类型的情况,而其他服务类型可能为公共服务也可能为独立服务。
若为公共服务,则目标服务器节点向向所述公共服务单元的注册中心发送请求信息,其中所述请求信息中包括所需的其他服务类型;所述公共服务单元的注册中心接收所述请求信息,确定所需的其他服务类型对应的其他服务器节点的地址,并将所述其他服务器节点的地址返回至所述目标服务器节点;所述目标服务器节点根据所述地址,调用所述其他服务器节点。
若为独立服务,则目标服务器节点向所述目标独立服务单元的注册中心发送请求信息,其中所述请求信息中包括所需的其他服务类型;所述目标独立服务单元的注册中心接收所述请求信息,确定所需的其他服务类型对应的其他服务器节点的地址,并将所述其他服务器节点的地址返回至所述目标服务器节点;所述目标服务器节点根据所述地址,调用所述其他服务器节点。
在对其他服务器节点调用完毕后,目标服务器节点接收其他服务节点的返回值,并继续执行作业,直至得到调用结果,将调用结果返回至服务网关。
本发明实施例中还提供了一种分布式服务系统,如下面的实施例所述。由于该系统解决问题的原理与一种分布式服务的实现方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
参照图1,一种分布式服务系统,包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中所述多个服务单元包括一个公共服务单元和多个独立服务单元,所述公共服务单元中还部署有服务网关;
所述服务网关用于接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元;访问目标服务单元中的注册中心,确定所述目标服务类型对应的目标服务器节点的地址;根据所述目标服务器节点的地址,调用所述目标服务器节点;接收目标服务器节点返回的调用结果;将所述调用结果返回至请求方。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种分布式服务的实现方法。
参照图6所示,其中上述一种分布式服务的实现方法运行在计算机设备602上。计算机设备602可以包括一个或多个处理器604,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备602还可以包括任何存储器606,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施方式中,存储器606上并可在处理器604上运行的计算机程序,所述计算机程序被所述处理器604运行时,可以执行根据上述方法的指令。非限制性的,比如,存储器606可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备602的固定或可移除部件。在一种情况下,当处理器604执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备602可以执行相关联指令的任一操作。计算机设备602还包括用于与任何存储器交互的一个或多个驱动机构608,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备602还可以包括输入/输出模块610(I/O),其用于接收各种输入(经由输入设备612)和用于提供各种输出(经由输出设备614)。一个具体输出机构可以包括呈现设备616和相关联的图形用户接口618(GUI)。在其他实施例中,还可以不包括输入/输出模块610(I/O)、输入设备612以及输出设备614,仅作为网络中的一台计算机设备。计算机设备602还可以包括一个或多个网络接口620,其用于经由一个或多个通信链路622与其他设备交换数据。一个或多个通信总线624将上文所描述的部件耦合在一起。
通信链路622可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路622可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述一种分布式服务的实现方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述一种分布式服务的实现方法。
在本发明中,可以根据服务器节点用于提供公共服务还是独立服务进而对服务器节点进行划分,将提供公共服务的服务器节点归在公共服务单元中,将提供独立服务的服务器节点归在独立服务单元中,并且设置多个独立服务单元。当请求方发送请求报文时,通过公关服务单元中的服务网关解析报文,并确定具体调用目标服务单元中的目标服务器节点,即使该请求方的请求数据量较大,只会使得目标服务单元中的目标服务器节点的压力较大,也不会对其他请求方造成影响,进而可以提高服务效率。
应理解,在本文的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本文实施例的实施过程构成任何限定。
还应理解,在本文实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本文的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本文实施例方案的目的。
另外,在本文各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种分布式服务的实现方法,其特征在于,应用于分布式服务系统,所述系统包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中所述多个服务单元包括一个公共服务单元和多个独立服务单元,所述公共服务单元中还部署有服务网关;
所述方法包括:
请求方在向所述服务网关发送请求前:确定所需的服务类型,通过查询类型标识表确定所需的服务类型对应的类型标识,将类型标识记录在请求报文中;
所述服务网关接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元;
所述服务网关访问目标服务单元中的注册中心,确定所述目标服务类型对应的目标服务器节点的地址;
所述服务网关根据所述目标服务器节点的地址,调用所述目标服务器节点;
所述服务网关接收目标服务器节点返回的调用结果;
所述服务网关将所述调用结果返回至请求方;
所述服务网关接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元进一步包括:
所述服务网关解析请求方的请求报文,得到所述请求方对应的类型标识;
所述服务网关将所述类型标识与类型标识表匹配,确定所述请求方所需的服务类型;其中,服务类型分为公共服务和独立服务,公共服务单元中的多个不同的服务器节点均用于提供公共服务,独立服务单元中的多个不同的服务器节点均用于提供独立服务;
若请求方所需的服务类型是公共服务,则确定目标服务单元为公共服务单元;
若请求方所需的服务类型是独立服务,则需进一步确定目标服务单元为某一独立服务单元。
2.如权利要求1所述的分布式服务的实现方法,其特征在于,确定所述请求方所需的目标服务单元进一步包括:
所述服务网关解析请求方的请求报文,得到所述请求方对应的关键字段;
所述服务网关将所述关键字段与服务单元表匹配,确定所述请求方所需的目标服务单元。
3.如权利要求1所述的分布式服务的实现方法,其特征在于,所述公共服务单元中的多个不同的服务器节点用于提供多种不同类型的公共服务,以供公共服务单元或独立服务单元使用;所述独立服务单元的多个不同的服务器节点用于提供多种不同类型的独立服务,仅供对应的独立服务单元使用。
4.如权利要求3所述的分布式服务的实现方法,其特征在于,所述服务网关根据所述目标服务器节点的地址,调用所述目标服务器节点之后还包括:
当目标服务器节点部署在独立服务单元中且所述目标服务器节点在调用过程中需要其他服务类型时;
所述目标服务器节点向目标独立服务单元的注册中心或向所述公共服务单元的注册中心发送请求信息,其中所述请求信息中包括所需的其他服务类型;
所述目标独立服务单元的注册中心或所述公共服务单元的注册中心接收所述请求信息,确定所需的其他服务类型对应的其他服务器节点的地址,并将所述其他服务器节点的地址返回至所述目标服务器节点;
所述目标服务器节点根据所述地址,调用所述其他服务器节点。
5.如权利要求1所述的分布式服务的实现方法,其特征在于,所述独立服务单元中每一服务器节点均连接有一个或多个数据库,所述一个或多个数据库用于存储对应服务器节点产生的数据。
6.一种分布式服务系统,其特征在于,包括多个服务单元,每一服务单元中均部署有注册中心和多个不同的服务器节点;其中所述多个服务单元包括一个公共服务单元和多个独立服务单元,所述公共服务单元中还部署有服务网关;
请求方在向所述服务网关发送请求前:确定所需的服务类型,通过查询类型标识表确定所需的服务类型对应的类型标识,将类型标识记录在请求报文中;
所述服务网关用于接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元;访问目标服务单元中的注册中心,确定所述目标服务类型对应的目标服务器节点的地址;根据所述目标服务器节点的地址,调用所述目标服务器节点;接收目标服务器节点返回的调用结果;将所述调用结果返回至请求方;
所述服务网关用于接收请求方的请求报文,确定所述请求方所需的目标服务类型以及目标服务单元进一步包括:
所述服务网关用于解析请求方的请求报文,得到所述请求方对应的类型标识;将所述类型标识与类型标识表匹配,确定所述请求方所需的服务类型;其中,服务类型分为公共服务和独立服务,公共服务单元中的多个不同的服务器节点均用于提供公共服务,独立服务单元中的多个不同的服务器节点均用于提供独立服务;若请求方所需的服务类型是公共服务,则确定目标服务单元为公共服务单元;若请求方所需的服务类型是独立服务,则需进一步确定目标服务单元为某一独立服务单元。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一所述方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至5任一所述方法。
9.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至5任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210556416.6A CN114979143B (zh) | 2022-05-19 | 2022-05-19 | 一种分布式服务的实现方法和分布式服务系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210556416.6A CN114979143B (zh) | 2022-05-19 | 2022-05-19 | 一种分布式服务的实现方法和分布式服务系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114979143A CN114979143A (zh) | 2022-08-30 |
CN114979143B true CN114979143B (zh) | 2024-04-16 |
Family
ID=82984461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210556416.6A Active CN114979143B (zh) | 2022-05-19 | 2022-05-19 | 一种分布式服务的实现方法和分布式服务系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114979143B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019104975A1 (zh) * | 2017-11-30 | 2019-06-06 | 平安科技(深圳)有限公司 | 基于dubbo框架的远程调用方法、服务器及存储介质 |
CN110311983A (zh) * | 2019-07-09 | 2019-10-08 | 北京字节跳动网络技术有限公司 | 服务请求的处理方法、装置、系统、电子设备及存储介质 |
CN112416612A (zh) * | 2020-08-13 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 服务调用方法、装置、计算机设备和可读存储介质 |
CN112671813A (zh) * | 2019-10-15 | 2021-04-16 | 浙江宇视科技有限公司 | 服务器确定方法、装置、设备及存储介质 |
CN113746928A (zh) * | 2021-09-07 | 2021-12-03 | 中国银行股份有限公司 | 跨云服务调用方法、装置和系统 |
-
2022
- 2022-05-19 CN CN202210556416.6A patent/CN114979143B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019104975A1 (zh) * | 2017-11-30 | 2019-06-06 | 平安科技(深圳)有限公司 | 基于dubbo框架的远程调用方法、服务器及存储介质 |
CN110311983A (zh) * | 2019-07-09 | 2019-10-08 | 北京字节跳动网络技术有限公司 | 服务请求的处理方法、装置、系统、电子设备及存储介质 |
CN112671813A (zh) * | 2019-10-15 | 2021-04-16 | 浙江宇视科技有限公司 | 服务器确定方法、装置、设备及存储介质 |
CN112416612A (zh) * | 2020-08-13 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 服务调用方法、装置、计算机设备和可读存储介质 |
CN113746928A (zh) * | 2021-09-07 | 2021-12-03 | 中国银行股份有限公司 | 跨云服务调用方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114979143A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020259352A1 (zh) | 一种数据处理方法、节点及区块链系统 | |
CN108055343B (zh) | 用于机房的数据同步方法及装置 | |
US7051107B2 (en) | Distributed environment type computer system able to achieve high speed consecutive message communications by service layer | |
US6427151B1 (en) | Method, computer program product, system and data structure for formatting transaction results data | |
CN110601880B (zh) | 一种云平台、业务处理方法、命令接口及计算机设备 | |
CN108509392B (zh) | 多机构对账方法、系统、计算机设备和存储介质 | |
KR102417742B1 (ko) | Api 데이터 수집시스템 및 그에 관한 방법 | |
CN106331153B (zh) | 一种业务请求的过滤方法、装置及系统 | |
CN109885786A (zh) | 数据缓存处理方法、装置、电子设备及可读存储介质 | |
KR20010050507A (ko) | 자원 할당 방법, 시스템 및 저장 매체 | |
CN107181636B (zh) | 一种负载均衡系统中的健康检查方法及装置 | |
CN113791730B (zh) | 基于双存储池的放置组调整方法、系统、装置及存储介质 | |
CN114979143B (zh) | 一种分布式服务的实现方法和分布式服务系统 | |
WO2024041505A1 (zh) | 数据获取方法、装置和设备 | |
CN108696559A (zh) | 流处理方法及装置 | |
US10481963B1 (en) | Load-balancing for achieving transaction fault tolerance | |
CN111339089B (zh) | 一种应用于区块链的数据存储与获取方法及装置 | |
CN113132273B (zh) | 一种数据转发方法及装置 | |
US11546405B2 (en) | Methods for exposing mainframe data as a web service and devices thereof | |
CN110290215B (zh) | 一种信号传输方法及装置 | |
CN109451090B (zh) | 一种域名解析方法及装置 | |
CN113377652A (zh) | 测试数据生成方法及装置 | |
CN113191901A (zh) | 一种交易业务处理方法、装置、设备和存储介质 | |
Bravetti et al. | Probabilistic and prioritized data retrieval in the Linda coordination model | |
CN112395313A (zh) | 全局序列生成方法、装置、电子设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |