CN116647552A - 异构微服务集群中服务处理方法及系统、终端及存储介质 - Google Patents
异构微服务集群中服务处理方法及系统、终端及存储介质 Download PDFInfo
- Publication number
- CN116647552A CN116647552A CN202211599505.5A CN202211599505A CN116647552A CN 116647552 A CN116647552 A CN 116647552A CN 202211599505 A CN202211599505 A CN 202211599505A CN 116647552 A CN116647552 A CN 116647552A
- Authority
- CN
- China
- Prior art keywords
- service
- cluster
- registry
- global
- micro
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims description 17
- 238000012545 processing Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 238000001914 filtration Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 241000412611 Consul Species 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/30—Managing network names, e.g. use of aliases or nicknames
- H04L61/3015—Name registration, generation or assignment
-
- 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
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种异构微服务集群中服务处理系统及方法、终端及存储介质,该系统包括:全局注册中心集群、至少两个注册中心集群以及至少两个微服务集群;其中,微服务集群与对应的注册中心集群连接;全局注册中心集群与至少两个注册中心集群分别连接,用于获取至少一个注册中心集群的第一服务列表;并对至少一个第一服务列表进行格式转换,以获得第一全局服务列表;全局注册中心集群与至少两个微服务集群分别连接,用于将第一全局服务列表发送给至少一个微服务集群。本发明实施例可以实现全局注册中心集群中第一全局服务列表与微服务集群中第一服务列表的同步,可以减少对原有的注册中心集群的服务列表的破坏。
Description
技术领域
本发明涉及但不限于计算机技术领域,尤其涉及一种异构微服务集群中服务处理系统及装置、终端及存储介质。
背景技术
在相关技术中,IT支撑系统的技术架构主流的有传统分布式架构、微服务架构、云原生架构等;其中微服务架构在服务治理模型对服务注册、服务调用、服务熔断和/或配置中心等方面的要求下,IT各行业与组织提出了不同的服务治理架构,如Eureka、Nacos、Consul等。
各业务系统在实现系统业务逻辑时会根据各自技术特点选择不同的服务治理架构,随着业务的发展在一个公司内部会存在多种异构的微服务集群。当想要实现不同微服务集群下服务相互访问时,存在会破坏原有微服务集群等的缺点。
发明内容
有鉴于此,本发明实施例提供一种异构微服务集群中服务处理系统及装置、终端及存储介质,以解决上述技术问题。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种异构微服务集群中服务处理系统,包括:全局注册中心集群、至少两个注册中心集群以及至少两个微服务集群;其中,
所述微服务集群与对应的所述注册中心集群连接;
所述全局注册中心集群与至少两个所述注册中心集群分别连接,用于获取至少一个所述注册中心集群的第一服务列表;并对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
所述全局注册中心集群与至少两个所述微服务集群分别连接,用于将所述第一全局服务列表发送给至少一个所述微服务集群。
上述方案中,所述全局注册中心集群包括:至少一个全局注册中心服务端和至少一个全局注册中心客户端;所述微服务集群包括:至少一个服务实例客户端;所述全局注册中心客户端被设置在所述微服务集群的所述服务实例客户端中;
所述全局注册中心服务端,用于缓存所述第一全局服务列表;和/或,
所述全局注册中心客户端,用于获取所述全局注册中心服务端提供的所述第一全局服务列表,并缓存所述第一全局服务列表。
上述方案中,所述全局注册中心服务端,用于获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
所述全局注册中心服务端,用于将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
所述全局注册中心服务端,用于基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
上述方案中,所述微服务集群至少包括:至少一个第一微服务集群和至少一个第二微服务集群;所述注册中心集群至少包括:与所述第一微服务集群对应连接的第一注册中心集群以及与第二微服务集群对应连接的第二注册中心集群;
所述全局注册中心服务端,用于获取至少一个所述第一注册中心集群中的第三服务列表;并对所述第三服务列表进行格式转换,以获得第三全局服务列表;
所述全局注册中心服务端,用于将所述第三全局服务列表更新到所述第二微服务集群中所述服务实例客户端中。
上述方案中,所述微服务集群至少包括:至少一个第一微服务集群和至少一个第二微服务集群;所述注册中心集群至少包括:与所述第一微服务集群对应连接的第一注册中心集群以及与第二微服务集群对应连接的第二注册中心集群;所述服务实例客户端还包括:服务调用模块;所述第一微服务集群中所述服务实例客户端包括第一服务调用模块,所述第二微服务集群中所述服务实施客户端包括第二服务调用模块;
所述第一服务调用模块,用于获取调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
所述第一服务调用模块,用于若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,所述第一服务调用模块,用于若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;利用所述第二调用模组基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
第二方面,本发明实施例提供一种异构微服务集群中服务处理方法,由全局注册中心集群执行,包括:
获取至少一个注册中心集群的第一服务列表;
对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
将所述第一全局服务列表发送给与至少一个所述注册中心集群分别对应连接的至少一个微服务集群。
上述方案中,所述全局注册中心集群包括:至少一个全局注册中心服务端和至少一个全局注册中心客户端;所述全局注册中心客户端被设置在所述微服务集群的所述服务实例客户端中;
所述第一全局服务列表用于缓存在至少一个所述全局注册中心服务端中;
和/或,所述第一全局服务列表用于供至少一个所述微服务集群缓存在所述微服务集群的至少一个所述服务实例客户端中。
上述方案中,所述全局注册中心集群为全局注册中心服务端;所述方法包括:
获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
上述方案中,所述注册中心集群至少包括:与所述第一微服务集群对应的第一注册中心集群以及与第二微服务集群对应的第二注册中心集群;所述全局注册中心集群为全局注册中心服务端;所述方法包括:
获取至少一个所述第一注册中心集群中的第三服务列表;
对所述第三服务列表进行格式转换,以获得第三全局服务列表;
将第三全局服务列表发送给所述第二微服务集群,其中,所述第三全局服务列表用于供所述第二微服务集群更新所述第一全局服务列表。
第三方面,本发明实施例提供一种异构微服务集群中服务处理方法,由微服务集群中服务实例客户端执行,包括:
接收全局注册中心集群发送的第一全局服务列表;其中,所述第一全局服务列表为所述全局注册中心集群对至少一个第一服务列表进行转换获得;所述第一服务列表为所述全局注册中心集群从至少一个注册中心集群中获取;
缓存所述第一全局服务列表。
上述方案中,所述注册中心集群包括至少一个第一注册中心集群和至少一个第二注册中心集群;所述方法包括:
获取所述第一注册中心集群发送的调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
第四方面,本发明实施例提供一种异构微服务集群中服务处理装置,应用于全局注册中心集群,包括:
第一接收模块,用于获取至少一个注册中心集群的第一服务列表;
第一处理模块,用于对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
第一发送模块,用于将所述第一全局服务列表发送给与至少一个所述注册中心集群分别对应连接的至少一个微服务集群。
第五方面,本发明实施例提供一种异构微服务集群中服务处理装置,应用于微服务集群中服务实例客户端,包括:
第二接收模块,用于接收全局注册中心集群发送的第一全局服务列表;其中,所述第一全局服务列表为所述全局注册中心集群对至少一个第一服务列表进行转换获得;所述第一服务列表为所述全局注册中心集群从至少一个注册中心集群中获取;
第二处理模块,用于缓存所述第一全局服务列表。
第六方面,本发明实施例提供一种终端,所述终端包括处理器和用于存储能够在所述处理器上运行的计算机程序的存储器;其中,所述处理器用于运行计算机程序时,实现本发明任意实施例所述异构微服务集群中服务处理方法。
第七方面,本发明实施例还提供了计算机一种存储介质,所述计算机存储介质中有计算机可执行指令,所述计算机可执行指令被处理器执行实现本发明任意实施例所述异构微服务集群中服务处理方法。
在本发明实施例中,全局注册中心集群与至少两个注册中心集群分别连接,可以用于感知各注册中心集群中第一服务列表的变化;并且全局注册中心集群分别可以与至少两个微服务集群连接,可以将变化后的第一服务列表(例如第一全局服务列表)发送给微服务集群,实现全局注册中心集群中第一全局服务列表与微服务集群中第一服务列表的同步。
并且,全局注册中心集群的引入不会使得原有的注册中心的架构和注册中心保留的第一服务列表等的改变,不同的注册中心集群还可以保留原有的第一服务列表,从而可以减少对原有的注册中心集群的服务列表的破坏。并且,可以使得第一全局服务列表保留在微服务集群的服务实例客户端中,如此可以通过全局注册中心集群实现服务实例客户端中服务列表的动态更新,提高了服务实例客户端中服务列表的准确性。
附图说明
图1为本发明实施例提供的一种异构微服务集群中服务处理系统的示意图。
图2为本发明实施例提供的另一种异构微服务集群中服务处理系统的示意图。
图3为本发明实施例提供的又一种异构微服务集群中服务处理系统的示意图。
图4为本发明实施例提供的一种形成第一全局服务列表的示意图。
图5为本发明实施例提供的一种异构微服务集群中服务处理系统中服务实例客户端的示意图。
图6为本发明实施例提供的一种异构微服务集群中服务处理方法的流程示意图。
图7为本发明实施例提供的一种异构微服务集群的服务调用的示意图。
图8为本发明实施例提供的又一种异构微服务集群中服务处理方法的流程示意图。
图9为本发明实施例提供的再一种异构微服务集群中服务处理方法的流程示意图。
图10为本发明实施例提供的一种异构微服务集群中服务处理装置的结构示意图。
图11为本发明实施例提供的又一种异构微服务集群中服务处理装置的结构示意图。
图12为本发明实施例提供的一种终端的硬件结构示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。另外,在后续的表述中,使用用于标识信息的诸如“第一”或者“第二”等的前缀仅为了有利于本发明的说明,其本身没有特定的意义。另外,在后续的描述中,“多个”是指两个或者两个以上;“多种”是指两种或者两种以上。
为了更好地理解本发明任一个实施例所描述的技术方案,首先,对相关技术中进行部分说明:
在相关技术中,当想要实现不同微服务集群下服务相互访问时,因各微服务治理框架技术栈不一致,导致在异构注册中心下服务调用没有很好的解决办法。目前一般有两种解决方案:一种是将各自微服务集群发布成服务对外提供服务,一种是对异构微架构技术栈进行统一;但是这两种方案在一定程度上都存在一定的缺点与弊端。
例如,一种将各自微服务集群发布成服务对外提供的方式。该方式提供一个系统,该系统可以负责将异构注册中心的服务进行相互注册,如将注册中心1中的所有服务注册到注册中心2中,注册中心2中的所有服务也注册到注册中心1中;则注册中心1和2同时保存了所有注册中心的服务列表。该系统还可以负责服务调用,所有服务调用请求都通过该系统进行转发,如注册中心1中应用1的服务1通过该系统的转发可以访问到注册中心2中应用1的服务1。
又如,一种对异构微架构技术栈进行统一的方式。该方式根据不同数据中心的数量创建不同个定时任务,该定时任务负责同步不同注册中心的服务列表的变化;比如有三个注册中心,当注册中心发生变化时,注册中心1会根据创建的定时任务完成注册中心1到注册中心2、3的信息同步。如此可以最终实现所有注册新的信息同步。
然而,上述的两种方式及相关技术中异构微服务集群的服务发现和/或调用等,存在以下的问题和/或缺点:
(1)为了实现异构微服务集群的服务调用,破坏了原有注册中心的服务列表;并且注册中心之间的数据同步,会将其他注册中心的服务也注册到该注册中心中,这样不仅使原来的注册中心变得庞大与臃肿,还影响了服务列表获取与服务访问的效率,同时给运维工作带来了一定困扰。
(2)在服务调用过程中较好的方式是客户端负载均衡的服务访问,注册中心中的服务应该可以直接访问到异构微服务集群中的服务,而不是通过一种集中化的方式进行路由或者服务筛选,集中化的方式很大程度上会降低服务的调用效率,同时也给服务调用引入高可用方面的风险。
(3)对于异构微服务集群的服务访问不应该对现有微服务集群的技术实现方式造成很大影响;如服务调用方式在编码实现方面的改变等,为了实现该功能需要进行大量的开发改造,这与单独进行网关级别的服务对接相比没有明显的优势,反而耗费了大量的人力与时间成本。
本发明实施例提供一种异构微服务集群中服务处理系统,以至少解决上述部分技术问题。如图1所示,本发明实施例提供了一种异构微服务集群中服务处理系统10,异构微服务集群中服务处理系统10,包括:全局注册中心集群110、至少两个注册中心集群120以及至少两个微服务集群130;其中,
所述微服务集群130与对应的所述注册中心集群120连接;
所述全局注册中心集群110与至少两个所述注册中心集群120分别连接,用于获取至少一个所述注册中心集群120的第一服务列表;并对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
所述全局注册中心集群110与至少两个所述微服务集群130分别连接,用于将所述第一全局服务列表发送给至少一个所述微服务集群130。
在本发明实施例中,至少一个包括一个或多个,多个是指两个或两个以上。
在本发明实施例中,连接是指通信连接。例如,微服务集群与注册中心集群连接是指微服务集群与注册中心集群建立通信连接;微服务集群能够向注册中心集群发送信息和/或微服务集群能够接收注册中心集群发送的信息等。
在一个实施例中,一个微服务集群与一个注册中心集群连接。示例性的,微服务集群包括第一微服务集群和第二微服务集群;注册中心集群包括第一注册中心集群和第二注册中心集群;第一注册中心集群与第一微服务集群连接,用于管理第一微服务集群;第二注册中心集群与第二微服务集群连接,用于管理第二微服务集群。这里,注册中心集群管理微服务集群,包括但不限于以下至少之一:注册中心集群用于注册微服务集群中服务的发现和/或注册和/或调用等。
在一个实施例中,全局注册中心集群包括至少一个全局注册中心。示例性的,如图1所示,全局注册中心集群,包括:全局注册中心1、……以及全局注册中心N;其中,N为大于0的整数。
在一个实施例中,异构微服务集群中服务处理系统包括至少两个注册中心集群;其中,一个注册集群包括至少一个注册中心。示例性的,如图1所示,注册中心集群,包括:注册中心1、……以及注册中心N;其中,N为大于0的整数。
在一个实施例中,异构微服务集群中服务处理系统包括至少两个微服务集群;其中,一个微服务集群包括至少一个服务;其中,一个服务包括至少一个实例。示例性的,如图1所示,一个微服务集群,包括:服务1、……以及服务N;其中,N为大于0的整数。一个服务包括:实例1、……以及实例N;其中,N为大于0的整数。
在一个实施例中,一个注册中心集群包括至少一个注册中心,一个注册中心包括一个注册中心客户端。
在一个实施例中,一个微服务集群包括至少一个服务;一个服务包括至少一个实例;一个实例包括一个服务实例客户端。
在一个实施例中,全局注册中心集群包括至少一个全局注册中心服务端和至少一个全局注册中心客户端。
在一个实施例中,全局注册中心服务端可用于注册到或者集成到至少一个注册中心客户端中。如此全局注册中心可以作为异构注册中心(即注册中心集群中各注册中心)的伪节点。
示例性的,本发明实施例提供一种伪节点注册的实现方式。如图2所示,全局注册中心客户端可作为异构注册中心(例如各注册中心中注册中心客户端)伪节点;该全局注册中心客户端在系统启动时注册到不同的注册中心中;例如全局注册中心服务端可注册到注册中心集群A及注册中心集群B中。服务注册的规范遵循各自微服务治理框架的标准与要求,全局注册中心对不同微服务治理框架的服务注册功能进行聚合与兼容,该伪节点不对原微服务集群提供任何业务功能。
注册中心集群作为一个整体对外提供服务,一般都由多个注册中心构成来确保注册中心集群的高可用性,全局注册中心集群为了更准确的获得各微服务集群的最新服务列表,集群中的全局注册中心作为伪节点至少注册到两个注册中心上从而保证高可用性,最严谨的情况会注册到全部的注册中心上。
在另一个实施例中,全局注册中心服务端也可以是不注册到或者集成到至少一个注册中心客户端中;该全局注册中心服务端与至少一个注册中心客户端建立通信连接。
在一个实施例中,全局注册中心客户端可用于被设置在至少一个微服务集群的服务实施例客户端中或者被集成在至少一个微服务集群的服务实施例客户端中。示例性的,如图2所示,微服务集群中各服务中各实例中包括的客户端为服务实例客户端,该全局注册中心客户端可被集成在至少一个服务实例客户端中。
在另一个实施例中,全局注册中心客户端也可以不设置在服务实例客户端或者集成在服务实例客户端中;该全局注册中心客户端与至少一个服务实例客户端建立通信连接。
本发明实施例中涉及的客户端,例如注册中心客户端、服务实例客户端和/或全局注册中心客户端均可以是但不限于是任意的客户端;例如该些客户端均可以是任意一种移动终端或者固定终端。例如,该注册中心客户端、服务实例客户端和/或全局注册中心客户端可以是但不限于是以下至少之一:手机、计算机、医疗设备、智能家居设备、车联网设备、工业设备和/或穿戴式设备等。
本发明实施例中涉及的服务端,例如全局注册中心服务端可以是但不限于是任意的服务器。例如,该全局注册中心服务端可以是本地服务器或者云服务器等。
为了进一步了解本发明任意实施例,以下提供针对服务与实例的关系、注册中心集群与服务的关系、注册中心与注册中心集群的关系以及全局注册中心集群进行描述。
服务与实例的关系。一个服务对应多个实例;例如,服务名称为订单服务,对应的实例可以有多个,分别为订单服务的实例1、订单服务实例2、订单服务实例N。实例可作为服务的具体实现具备横向扩展的能力;所有的实例可同时提供服务,具体调用到哪一个实例由调用方决定;在微服务集群架构中可基于轮询调用方式或配置权重调用方式等。
注册中心集群与服务的关系。所有服务的所有实例均可注册到注册中心集群中;例如,有订单、支付、打车3个服务,每个服务有10个实例,则3个服务共30个实例均会注册到注册中心集群中。这里,如图3中的服务集群A和服务集群B为两个物理隔离且无任何关系的微服务集群。
注册中心与注册中心集群的关系。注册中心集群作为一个整体对外提供服务,一个注册中心集群中可以包括一个或多个注册中心,多个注册中心确保注册中心集群的高可用性,当个别注册中心发生故障而不会影响整个集群。
全局注册中心集群由一个或多个全局注册中心构成,该全局注册中心集群可作为整体对外提供服务;考虑到高可用性问题,一般全局注册中心集群包括的全局注册中心数量为两个或两个以上。全局注册中心集群中在多个全局注册中心可同时提供服务,每一个全局注册中心都可以访问到对应的注册中心集群来获取服务列表,且各全局注册中心之间也可以进行服务列表的数据同步。
本发明实施例中涉及第一服务列表、第一全局服务列表、第二服务列表、第二全局服务列表、第三服务列表以及第三全局服务列表均可以是但不限于是包括至少一个服务的服务列表。
在一个实施例中,服务列表、全局服务列表、第一服务列表、第一全局服务列表、第二服务列表、第二全局服务列表、第三服务列表以及第三全局服务列表均可以包括但不限限于以下至少之一:服务名称、服务的实例名称、实例地址、实例端口以及实例状态。这里,实例地址可以是实例的IP地址或者物理地址等。实例状态包括但不限于是实例的开启状态或者关闭状态或者与运行状态等。
在另一个实施例中,第一服务列表、第一全局服务列表、第二服务列表、第二全局服务列表、第三服务列表以及第三全局服务列表均可以包括但不限限于以下至少之一:注册中心集群的名称、注册中心集群的类型;服务名称、服务的实例名称、服务地址、服务端口以及服务状态。这里,服务地址可以是服务的IP地址。这里,注册中心集群的名称可以是注册中心集群的标识信息(ID);服务名称可以是服务的标识信息。
示例性的,本发明实施例提供一种服务列表获取的实现方式。全局注册中心服务端作为各注册中心的伪节点,可以通过各注册中心的接口获取到不同注册中心的服务列表(例如第一服务列表)。这里,接口规范遵循各自微服务治理框架的标准与要求,全局注册中心对不同微服务治理框架的服务列表获取进行聚合与兼容;这里,第一服务列表包括服务名称、服务的实例名称、实例的IP地址、实例端口以及实例状态等信息。
当然,在其它实施例中,全局注册中心集群也可以直接接收注册中心集群发送的第一服务列表。
在一个实施例中,全局注册中心集群可以对每个注册中心集群的第一服务列表均设置一个格式转换器;全局注册中心集群可以利用各格式转换器分别对各注册中心集群的第一服务列表进行数据格式转换,以形成统一格式的全局服列表。
在一个实施例中,全局注册中心集群发送微服务集群中的第一全局服务列表可以是包括该微服务集群对应的注册中心集群的第一服务列表,也可以是不包括该微服务集群对应的注册中心集群的第一服务列表。
示例性的,注册中心集群包括Eureka注册中心集群、Nacos注册中心集群以及Consul注册中心集群;Eureka注册中心集群对应的微服务集群为Eureka微服务集群、Nacos注册中心集群对应的微服务集群为Nacos微服务集群以及Consul注册中心集群对应的微服务集群为Consul微服务集群。该第一服务列表包括Eureka注册中心集群的Eureka服务列表、Nacos注册中心集群的Nacos服务列表以及Consul注册中心集群的Consul服务列表。全局注册中心集群确定的第一全局服务列表可包括Eureka服务列表、Nacos服务列表以及Consul服务列表。全局注册中心集群将第一全局服务列表发送给至少一个微服务集群的一种实现方式为:全局注册中心集群将包括Eureka服务列表、Nacos服务列表以及Consul服务列表的第一全局服务列表分别发送给Eureka微服务集群、Nacos微服务集群以及Consul微服务集群。
全局注册中心集群将第一全局服务列表发送给至少一个微服务集群的另一种实现方式为:全局注册中心集群将包括Nacos服务列表以及Consul服务列表的第一全局服务列表发送给Eureka微服务集群、将包括Eureka服务列表和Consul服务列表的第一全局服务列表发送给Nacos微服务集群、以及将包括Eureka服务列表和Nacos服务列表的第一全局服务列表发送给Consul微服务集群。如此,可以尽量简化发送的信息,可以减少各微服务集群中服务实例客户端中缓存的数据量等;并且能够使得各微服务集群保留原本各微服务集群的服务列表,还能确保服务列表的准确性。
这里,将第一全局服务列表发送给至少一个微服务集群可以是:将第一全局服务列表发送给至少一个微服务集群中的至少一个服务实例客户端中。
在本发明实施例中,全局注册中心集群与至少两个注册中心集群分别连接,可以用于感知各注册中心集群中第一服务列表的变化;并且全局注册中心集群分别可以与至少两个微服务集群连接,可以将变化后的第一服务列表(例如第一全局服务列表)发送给微服务集群,实现全局注册中心集群中第一全局服务列表与微服务集群中第一服务列表的同步。
并且,全局注册中心集群的引入不会使得原有的注册中心的架构和注册中心保留的第一服务列表等的改变,不同的注册中心集群还可以保留原有的第一服务列表,从而可以减少对原有的注册中心集群的服务列表的破坏。并且,可以使得第一全局服务列表保留在微服务集群的服务实例客户端中,如此可以通过全局注册中心集群实现服务实例客户端中服务列表的动态更新,提高了服务实例客户端中服务列表的准确性。
请再次参加图1及图2,在一些实施例中,所述全局注册中心集110包括:至少一个全局注册中心服务端1101和至少一个全局注册中心客户端1102;所述微服务集群130包括:至少一个服务实例客户端1301;所述全局注册中心客户端1102被设置在所述微服务集群130的所述服务实例客户端1301中;
所述全局注册中心服务端1101,用于缓存所述第一全局服务列表;
和/或,
所述全局注册中心客户端1102,用于获取所述全局注册中心服务端提供的所述第一全局服务列表,并缓存所述第一全局服务列表。
示例性的,本发明实施例提供一种服务列表缓存的实现方式。该服务列表缓存的方式,包括:对第一服务列表的缓存方式、基于第一服务列表获得第一全局服务列表的方式以及对第一全局服务列表的缓存方式。
全局注册中心集群可通过服务列表获取模块可以获取到各注册中心的第一服务列表,同时提供多种注册中心的第一服务列表的格式转换器,将不同注册中心返回的第一服务列表进行加工与整理,形成第一全局服务列表。这里,服务列表获取模块为全局注册中心中的一部分;每个全局注册中心地位相同。这里,第一全局服务列表的标准数据结构可如下表1所示:
表1
第一服务列表转化为第一全局服务列表的方式可以如图4所示,该第一服务列表转化为第一全局服务列表包括步骤S21和步骤S22;其中,步骤S21:全局注册中心集群中服务列表获取模块获取不同微服务集群的第一服务列表;其中,获取第一服务列表的接口由各微服务集群提供,该接口可兼容至少一个全局注册中心或者注册中心。以Eureka为例,全局注册中心集群可以通过应用程序(APPs)的资源表征状态转移应用程序接口(ResourceRepresentational State Transfer Application Programming Interface,REST API)接口获取到第一服务列表。步骤S22:全局注册中心集群可通过自定义的格式转换器对不同的第一服务列表的数据格式进行解析与处理;并从中提取服务的相关信息;将相关信息映射到自定义的数据结构中,从而形成统一格式的第一全局服务列表。以Eureka为例,Eureka格式转换器会使用Dom4J来从XML中获取、服务名称、服务的实例名称、示例的IP地址、示例状态和/或示例端口等相关信息。这里,将提出的相关信息同上述实施例中标准数据结构中的字段进行映射与转换,从而将XML格式转换为通用的数据格式;例如转换后的服务列表可以为(Order、Order8934、192.168.54.65、8080、Open、...)。对于其他类型的注册中心集群的第一服务列表的数据也通过步骤S22中流程进行转化,从而构建统一格式的第一全局服务列表。
这里,获取的Eureka的第一服务列表的信息可以如下表2所示:
表2
这里,该第一服务列表的信息的数据格式可以为XML格式;不同的注册中心集群中获取到的第一服务列表的数据格式可能会不同。
在一个实施例中,所述全局注册中心客户端缓存的第一全局服务列表,可以是不包括全局注册中心客户端所在的服务实例客户端所包括的第一服务列表的。
示例性的,微服务集群包括Eureka微服务集群;全局注册中心集群将包括Eureka服务列表、Nacos服务列表以及Consul服务列表的分别发送给Eureka微服务集群。Eureka微服务集群中全局注册中心客户端或者服务实例客户端缓存包括Consul服务列表以及Consul服务列表的第一全局服务列表。这里,Eureka微服务集群的服务实例客户端中原本已缓存Eureka服务列表,因此Eureka微服务集群中服务实例客户端可仅缓存包括Consul服务列表以及Consul服务列表的第一全局服务列表;此时第一全局服务列表及Eureka服务列表可分别存储在该Eureka微服务集群中服务实例客户端中不同的数据库或者不同的缓存空间中。
在本发明实施例中,第一全局服务列表可以在全局注册中心客户端和/或全局注册中心服务端进行缓存。当第一全局服务列缓存在全局注册中心服务端中,可用于维护与所有注册中心集群的全部服务的实例的信息;和/或当第一全局服务列表缓存到全局注册中心客户端中,则可有利于后续基于异构微服务集群的服务的调用。
在本发明实施例中,第一全局服务列表也缓存在微服务集群的实例中,并且每个实例之间会采用信息同步的方式互相交换服务列表,从而实现第一全局服务列表快速、动态的更新。
在一些实施例中,所述全局注册中心服务端,用于获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
所述全局注册中心服务端,用于将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
所述全局注册中心服务端,用于基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
在一个实施例中,全局注册中心服务端用于获取至少一个注册中心集群中第二服务列表可包括以下之一:
全局注册中心服务端以预定时间间隔获取至少一个注册中心集群中第二服务列表;
注册中心集群在确定第一服务列表发生更新的情况下,向全局注册中心服务端提供由第一服务列表更新后得到的第二服务列表。
在一个实施例中,第二服务列表是基于第一服务列表更新后确定,可以是但不限于是以下至少之一:
在第一服务列表中添加至少一个服务的信息,以获得第二服务列表;
将第一服务列表中至少一个服务的信息删除,以获得第二服务列表;
将第一服务列表中至少一个服务的信息进行修改,以获得第二服务列表。
这里,服务的信息可以但不限于是服务名称、服务的至少一个实施名称、服务的地址、实例的地址、服务端口、实例端口、服务状态以及实例状态的其中至少之一。
在一个实施例中,第一比较结果可以是第二服务列表与第一全局服务列表中第一服务列表的不同服务的信息;或者第一比较结果可以是第二服务列表与第一全局服务列表中不同服务的信息。
在一个实施例中,基于第一比较结果更新第一全局服务列表,以获得第二全局服务列表,可以是:将第二服务列表替换第一全局服务列表中与第二服务列表对应的第一服务列表,以获得第二全局服务列表;或者,基于第一比较结果修改第一全局服务列表,以或第二全局服务列表。
在一个实施例中,对将至少一个第二服务列表与所述第一全局服务列表进行比对的算法可通过任意一种可行比较算法实现,例如可以是但不限于是通过排序双指针法实现。
在本发明实施例中,全局注册中心集群(例如全局注册中心服务端)获取各注册中心集群中第二服务列表可认为是服务列表嗅探;该全局注册中心服务端可通过不断的嗅探来感知不同注册中心集群中第一服务列表的变化(如服务的信息的增加和/或减少和/或修改等),并通过对获取的各微服务集群的第二服务列表与全局注册中心集群中第一全局服务列表进行比对,实现服务的发现与对第一全局服务列表实时刷新以获得第二全局服务列表。
并且,该嗅探的时间间隔(即预定时间间隔)可通过配置方式灵活选择。
在一些实施例中,所述微服务集群至少包括:至少一个第一微服务集群和至少一个第二微服务集群;所述注册中心集群至少包括:与所述第一微服务集群对应连接的第一注册中心集群以及与第二微服务集群对应连接的第二注册中心集群;
所述全局注册中心服务端,用于获取至少一个所述第一注册中心集群中的第三服务列表;并对所述第三服务列表进行格式转换,以获得第三全局服务列表;
所述全局注册中心服务端,用于将所述第三全局服务列表更新到所述第二微服务集群中所述服务实例客户端中。
在一个实施例中,全局注册中心服务端用于获取至少一个第一注册中心集群中第三服务列表可包括以下之一:
全局注册中心服务端以预定时间间隔获取至少一个第一注册中心集群中第三服务列表;
第一注册中心集群在确定第一服务列表发生更新的情况下,向全局注册中心服务端提供由第一服务列表更新后得到的第三服务列表。
在一个实施例中,第三服务列表是基于第一服务列表更新后确定,可以是但不限于是以下至少之一:
在第一服务列表中添加至少一个服务的信息,以获得第三服务列表;
将第一服务列表中至少一个服务的信息删除,以获得第三服务列表;
将第一服务列表中至少一个服务的信息进行修改,以获得第三服务列表。
这里,服务的信息可以但不限于是服务名称、服务的至少一个实施名称、服务的地址、实例的地址、服务端口、实例端口、服务状态以及实例状态的其中至少之一。
在一个实施例中,第三服务列表与第二服务列表相同,或者第三服务列表与第二服务列表不同。
在一个实施例中,全局注册中心服务端可无需再将第三全局服务列表更新到第一微服务集群中。因为此时第一注册中心集群的第三服务列表是基于第一微服务集群中第一服务列表更新确定的,此时的第一微服务集群中已缓存第三服务列表及第一全局服务列表。
在另一个实施例中,全局注册中心服务端也可以将第三全局服务列表发送给第一微服务集群的服务实例客户端,以供服务实例客户端基于第三全局服务列表替换第一全局服务列表。
在一个实施例中,全局注册中心服务端对所述第三服务列表进行格式转换,以获得第三全局服务列表的实现方式与上述实施例中全局注册中心集群对至少一个第一服务列表进行格式转换,以获得第一全局服务列表的方式类似,在此不再赘述其实现方式。
这里,全局注册中心服务端将第三全局服务列表发送给所述第二微服务集群,其中,所述第三全局服务列表用于供所述第二微服务集群的服务实例客户端基于第三服务列表更新所述第一全局服务列表。
在一个实施例中,全局注册中心服务端可将第三全局服务列表与服务实例客户端中第一全局服务列表进行比对,以获得第二比较结果;当第二比较结果指示第三全局服务列表与第一全局服务列表不同的情况下,将第三全局服务列表发送给第二微服务集群中服务客户端。
这里,全局注册中心服务端还用于基于第三全局服务列表更新第一全局服务列表。
示例性的,上述将第三全局服务列表更新到服务实例客户端可认为是服务列表同步。这里,提供一种服务列表同步的方式:不同微服务集群在运行过程中会发生服务注册和/或发生服务下线。当各微服务集群中服务变化时,注册中心集群会感知到服务变化;该机制由不同微服务集群的自身特性保证,为了可以感知到不同微服务集群中第一服务列表的变化,全局注册中心集群中的服务列表获取模块会以预定时间间隔(可配置)轮询以获取不同注册中心集群的最新服务列表(即第三服务列表)。这里,全局注册中心集群获取的方式主要以各注册中心集群提供的接口为主;例如,全局注册中心集群可通过Eureka注册中心集群的APPs的REST API接口获取第三服务列表,并将获取的第三服务列表转换形成第三全局服务列表;全局注册中心集群可基于第三全局服务列表会与全局注册中心集群中已有的第一全局服务列表进行比对,以确定将第三全局服务列表发送给微服务集群。这里,可通过锁机制保证多个注册中心集群的第三服务列表同时更新引发的线程安全问题。
在本发明实施例中,全局注册中心集群可以采用PUSH和PULL两种方式进行服务列表(例如第三全局服务列表)的同步;例如,可以通过全局注册中心服务端中的服务列表同步模块将第三全局服务列表发送给全局注册中心客户端;或者,可以通过全局注册中心客户端查询全局注册中心服务端以获取第三全局服务列表。这里,采用PUSH方式下的服务列表的同步可提供增量与全量的两种方式,并采用不同的预定时间间隔进行服务列表的同步,同时提供配置的重试机制用于确保数据的一致性;这里,同步的通信协议可以但不限于使用超文本传输协议(Hyper Text Transfer Protocol,HTTP)协议和/或同步中服务列表的报文格式可以但不限于采用JSON格式。
在本发明实施中,全局注册中心服务端与全局注册中心客户端同步的第三服务列表不包括全局注册中心客户端所在服务实例客户端对应的注册中心集群的服务列表;例如,Eureka注册中心集群发生了服务列表的改变,全局注册中心集群感知到Eureka注册中心集群的Eureka服务列表变化后,不会再将变化后的Eureka服务列表同步回Eureka注册中心集群,而是同步到除Eureka注册中心集群对应的注册中心微服务集群之外的其它微服务集群(例如Nacos微服务集等)的服务实例客户端(即全局注册中心客户端)中。如此,不会破坏各异构注册中心集群的服务列表,如此也有利于在服务调用的过程中调用本注册中心集群的服务的调用逻辑与调用非本注册中心的调用逻辑隔离;并且调用本注册中心服务的方式和/或编码逻辑等与未引入全局注册中心集群前保持一致,从而减少了全局注册中心集群引入对于原有微服务集群的影响。
为了进一步了解本发明任意实施例,对全局注册中心客户端的服务里列表获取、服务列表缓存以及服务列表更新进行说明。
示例性的,服务列表的获取。全局注册中心客户端,用于请求和/或接收全局注册中心服务端的全局服务列表(例如第一全局服务列表或者第三全局服务列表)。服务列表的获取可通过两类接口实现;其中,该两类接口包括:注册中心集群与注册中心集群类型的同步接口,以及注册中心集群与服务列表的同步接口。
示例性的,服务列表的缓存。全局注册中心客户端只保存异构微服务集群的服务列表(例如第一全局服务列表或者第三服务列表中不包括本微服务集群的服务列表);本微服务集群的服务列表(例如第一服务列表或者第三服务列表)仍由原微服务集群进行统一管理(例如缓存);该全局注册中心客户端缓存的服务列表的数据结构与全局注册中心服务端缓存的服务列表的数据结构一致。
示例性的,服务列表的更新。全局注册中心服务端发现通过服务列表获取模块的接口接收和/或获取到的异构微服务集群的服务列表与全局注册中心客户端中缓存的全局服务列表不同时,确定异构微服务集群出现了服务状态的改变;则需要对全局注册中心客户端的全局服务列表(不包括本微服务集群的服务列表)进行更新。这里,服务列表可以是上述实施例中第一服务列表或者第三服务列表等;全局服务列表可以是上述实施例的第一全局服务列表或者第三服务列表等。
在一些实施例中,所述微服务集群至少包括:至少一个第一微服务集群和至少一个第二微服务集群;所述注册中心集群至少包括:与所述第一微服务集群对应连接的第一注册中心集群以及与第二微服务集群对应连接的第二注册中心集群;所述服务实例客户端还包括:服务调用模块;所述第一微服务集群中所述服务实例客户端包括第一服务调用模块,所述第二微服务集群中所述服务实施客户端包括第二服务调用模块;
所述第一服务调用模块,用于获取调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
所述第一服务调用模块,用于若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,所述第一服务调用模块,用于若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;利用所述第二调用模组基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
在一个实施例中,服务实例客户端包括:全局注册中心客户端和服务调用模块;其中,全局注册中心客户端,用于接收、请求、处理和/或缓存全局服务列表;服务调用模块,用于进行异构微服务集群的服务之间的调用。
在一个实施例中,调用请求可包括服务列表中包括的信息;例如调用请求包括但不限于以下之一:服务名称、服务的实例名称、服务的IP地址、实例的IP地址、服务端口、实例端口、服务状态以及实例状态。
在另一个实施例中,调用请求还可包括但不限于以下至少之一:注册中心集群的标识信息、注册中心集群的类型以及服务的标识信息。这里,该注册中心集群的标识信息可以是待调用注册中心集群的标识信息;服务的标识信息可以是待调用服务的标识信息。
示例性的,如图5所示,提供一种服务调用模块逻辑图;服务实例客户端包括:服务实例客户端1和服务实例客户端2;其中,服务实例客户端1包括全局注册中心客户端1和服务调用模块1;服务实例客户端2包括全局注册中心客户端2和服务调用模块2;服务调用模块1和服务调用模块2均可包括统一接口、数据转换模块和/或负载均衡模块等。
这里,第一服务调用模块可利用统一接口获取调用请求。示例性的,客户端(例如全局中心客户端或者服务实例客户端)在统一接口中写入注册中心集群的标识信息和/或服务的标识信息;并将统一接口携带在调用请求中。
这里,第一服务调用模块若基于调用请求确定待调用注册中心集群不是第一注册中心集群且是第二注册中心集群,则基于第二注册中心集群的标识信息对第一全局服务列表进行过滤,以获得第二注册中心集群对应的第一目标服务列表;并基于调用请求确定待调用服务标识信息,从第一目标服务列表中确定出与待调用标识对应的第二目标服务列表;将包括第二目标服务列表的调用请求发送给第二微服务集群的服务实例客户端;第二微服务集群的服务实例客户端利用第二服务调用模块基于负载均衡方式调用第二目标服务列表指示的待调用服务。
这里,基于负载均衡方式可以是但不限于是基于轮询的调用方式或者基于权重的调用方式。例如,第二目标服务列表包括实例L1、实例L2以及实例L3的三个实例;则基于轮询的调用方式可以是:第一次调用实例L1、第二次调用实例L2以及第三次调用实例L3。又如,第二目标服务列表包括实例L1、实例L2以及实例L3的三个实例,且实例L1的权重大于实例L3的权重、L3的权重大于实例L2的权重;则基于权重的调用方式可以是:第一次调用L1、第二次调用L3以及第三次调用L2。
示例性的,服务调用模块应能兼容处理本注册中心集群与异构注册中心集群的服务调用;其中,统一接口将对本微服务集群服务列表与异构微服务集群服务列表进行统一封装与处理,对于客户端的使用者(该客户端的使用者可以是微服务集群的服务实例客户端)来说屏蔽了异构微服务集群的影响,在使用的感知上可以当作一个注册中心集群使用。在统一接口中包括注册中心集群的标识信息和/或服务名称的标识信息等;该统一接口不局限于固定的方法与参数;其中,“zone”参数用于标识注册中心集群的标识信息,“value”参数用于标识服务的标识信息;当调用本注册中心集群的服务时“zone”参数可以为空。统一接口示例可如下表3(以Spring Cloud基础框架为基础)所示;
表3
示例性的,服务调用模块应能处理异构微服务集群之间的服务调用,并兼容不同微服务治理框架调用的数据标准。客户端的使用者可通过统一接口进行异构微服务集群的服务调用时,调用请求中有注册中心集群的标识信息和/或服务的标识信息等。这里,因为各服务实例客户端已缓存全局服务列表(例如第一全局服务列表或者第三全局服务列表等),所以数据转换模块需要先对全局服务列表中的数据进行过滤,定位到指定的微服务集群,然后根据不同微服务集群的对应的格式转换器对过滤后的数据进行数据转换,以构造满足服务调用的服务列表(ServiceList)。这里,如图6所示,本发明实施例提供一种服务调用流程;该服务调用流程包括以下步骤:
步骤S31:服务调用模块通过统一接口进行调用,在统一接口输入以下至少之一信息:注册中心集群的标识信息以及服务的标识信息;
这里,服务调用模块通过统一接口进行异构微服务集群的服务调用会有相应的输入信息,该信息可包括调用服务的以下至少之一的参数:注册中心集群的标识信息或名称、服务的标识信息或名称、服务的实例名称、服务的地址、服务的端口、实例的地址以及实例的端口。服务调用模块通过数据转换模块接收到的该些参数进行数据转换的处理,这里,“Eureka8765”可以为注册中心集群的标识信息,“PAY-FRONT”可以为服务的名称、“/order/pay”可以为服务的地址、和/或“order”为服务的实例名称。
步骤S32:服务调用模块对统一接口中输入的信息进行过滤;
这里,服务调用模块通过数据转换模块将统一接口中输入的信息进行转换,确定出待识别的注册中心集群的标识信息。若基于注册中心集群的标识信息确定待调用注册中心集群是本注册中心集群(本注册中心集群为本服务调用模块所在微服务集群对应的注册中心集群);例如,若“zone”参数为空,则代表调用本注册中心集群。这里,为了不对原有注册中心集群进行功能侵入,则采用该注册中心集群默认提供的客户端(注册中心客户端)进行服务调用。例如,本注册中心集群为Eureka注册中心集群,基于注册中心集群的标识信息确定被调用注册中心集群也为Eureka注册中心集群;则通过Eureka注册中心集群的注册中心客户端进行服务调用。例如,若“zone”参数不为空则代表调用异构注册中心集群;数据转换模块会通过注册中心集群的标识信息从全局服务列表中进行注册中心集群的过滤,如表4所示可通过对Map<注册中心ID,服务列表>的数据结构对注册中心集群的标识信息进行过滤以获得待调用注册中心集群的全部实例信息。例如,若调用的注册中心集群的标识信息为“Eureka876534”,则可以获取到调用服务的全局服务列表为(Order、Order8934、192.168.54.65、8080、Open、...)、(Order、Order8935、192.168.54.65、8081、Open、...)、(Pay、Pay8936、192.168.54.67、8084、Open、...)3条信息。
表4
步骤S33:服务调用模块若确定待调用注册中心集群为本注册中心集群,则根据本注册中心集群的注册中心客户端进行调用;或者,若确定待调用注册中心集群不是本注册中心集群,则获取目标服务列表进行调用。
这里,服务调用模块若确定待调用注册中心集群为本注册中心集群,则确定本注册中心集群的注册中心客户端进行服务调用;例如,确定的本注册中心集群为Eureka注册中心集群,则会通过Eureka注册中心集群的注册中心客户端(Eureka客户端)进行服务列表的获取。此时的逻辑为通过getServer()方法获得服务列表;该服务列表由Eureka客户端与该注册中心集群自身实现。而异构注册中心集群的调用则通过异构微服务集群的服务实例客户端的服务调用模块来实现;在步骤S32中可根据注册中心集群的标识信息获取全局服务列表,并可以过滤出调用的服务为Order服务;则可确定出(Order、Order8934、192.168.54.65、8080、Open、...)、(Order、Order8935、192.168.54.65、8081、Open、...)两条信息。这里,服务调用模块的数据转换模块会对异构微服务调用进行特定的处理,将通过不同服务列表转化为待调用服务的目标服务列表。
示例性的,服务调用模块中包括用于服务调用的负载均衡模块;负载均衡模块可根据目标服务列表进行负载均衡方式的调用。例如,目标服务列表中包括实例L1、实例L2以及实例L3,可通过特定调用方式(该特定调用方式可以是基于轮询的调用方式或者基于权重的调用方式等)进行服务的调用。例如,基于轮询的调用方式可以是:第一次调用实例L1、第二次调用实例L2以及第三次调用实例L3。
示例性的,如图7所示,服务调用模块确定出目标服务列表;服务调用模块所在的服务实例客户端可基于目标服务列表进行服务的调用;该目标服务列表包括Eureka微服务集群的服务、Nacos微服务集群的服务以及其它微服务集群的服务。例如,Eureka客户端可调用Eureka微服务集群的服务,Nacos客户端可调用Nacos微服务集群的服务,以此类推,直至目标服务列表指示的服务调用结束。
在本发明实施例中,可以通过一个微服务注册集群中的实例直接访问到另外一个微服务集群中的实例;并且负载均衡模块可支持轮询的调用方式或者权重的调用方式,而不会通过一个集中化的系统或装置进行服务的访问与转发,大大的提高了服务访问的效率和/或访问成本。
并且,全局注册中心集群的全局注册中心客户端与服务调用模块的使用不会对微服务集群等进行大量的改造,可通过配置的方式可以直接与全局注册中心集群的全局注册中心服务端进行互联;同时对不同的注册中心集群的服务调用进行了统一接口的兼容,可以降低对原微服务集群的服务访问的影响,可提高扩展性以及降低开发成本。
为了进一步解释本发明任意实施例,以下提供几个具体实施例。
示例一:本发明实施例提供一种服务注册与服务发现的方式。
微服务集群可包括Eureka微服务集群和Nacos微服务集群,并通过如图3所示的方式进行了全局注册中心集群的集成与部署,现通过Nacos微服务集群新加入一个服务为例简述本发明在服务注册与服务发现的流程。
Nacos微服务集群中新增加了一个实例,该实例的信息为(Order、Order2345、192.168.54.65、8080、Open)。Nacos微服务集群会感知到新服务的注册并更新Nacos微服务集群的服务列表;由于全局注册中心客户端已注册为Nacos微服务集群中伪节点,所以可以实时的获取到Nacos微服务集群的最新服务列表;当全局注册中心客户端发现获取到的Nacos微服务集群的最新服务列表与全局注册中心服务端缓存的服务列表不一致时,更新全局注册中心服务端的服务列表。例如,在(Nacos425857,Nacos)关系下新增(Nacos425857,(Order,192.168.54.65、8080、Open))实例的信息;为了将最新服务列表同步到Eureka微服务集群的全局注册中心客户端中,全局注册中心服务端会从全局服务列表中筛选出Eureka注册中心集群的全部服务列表,并通过服务列表同步模块将Nacos微服务集群新增服务实例的事件逐一进行广播以发送到各Eureka微服务集群中配置的全局注册中心客户端中。
Eureka微服务集群中的全局注册中心客户端通过服务列表更新模块的接口接收到Nacos微服务集群的最新服务列表后,发现与本地缓存的全局服务列表不同,则确定Nacos微服务集群的服务状态发生了改变。此时,可更新本地缓存的全局服务列表;例如,在(Nacos425857,Nacos)关系下新增(Nacos425857,(Order,192.168.54.65、8080、Open))实例的信息;至此,Nacos注册中心集群新增加一个Order实例的事件同步到Eureka注册中心集群。
如此,本发明实施例可通过全局注册中心服务端与全局注册中心客户端的配合实现了Nacos微服务集群与Eureka微服务集群该两个异构微服务集群的服务注册与服务发现(这里,多个异构微服务集群的服务注册与服务发现原理也相同)。
示例二:本发明实施例提供一种异构微服务集群的服务调用方式。
通过服务注册与服务发现的前提下,异构微服务集群缓存的服务列表的信息可如下表5所示(这里,以两个异构微服务集群为例,多个微服务集群原理相似):
表5
Eureka注册中心集群中的全局注册中心客户端可以通过获取或者接收的方式实时的更新服务实例客户端的全局服务列表。当Eureka微服务集群要调用Nacos微服务集群中订单服务Order时,可通过统一接口模块申明要访问的注册中心集群的标识信息“Nacos425857”;Eureka微服务集群中服务调用模块可根据服务实例客户端中缓存的全局服务列表筛选出该Nacos注册中心集群对应的服务列表,该Nacos注册中心集群对应的服务列表包括4个支付Pay实例以及2个订单Order实例。Eureka微服务集群中服务调用模块根据待调用的服务名Order返回目标服务列表,该目标服务列表可包括Order9369、Order9370两个实例的信息。Nacos微服务集群的服务调用模块中负载均衡模块根据待调用的两个实例的目标服务列表对订单服务Order进行访问;例如采用轮询的调用方式进行调用,如第一次访问Nacos微服务集群中的Order9369实例,第二次访问Nacos微服务集群中的Order9370实例;同时负载均衡模块根据目标服务列表的信息完成网络与数据交互。
如此,本发明实施例可通过微服务集群中服务实例客户端,例如服务实例客户端中全局注册客户端及调用服务模块等实现异构微服务集群的服务调用。
这里需要指出的是:以下异构微服务集群中服务处理方法项的描述,与上述异构微服务集群中服务处理系统项描述是类似的,同系统的有益效果描述,不做赘述。对于本发明异构微服务集群中服务处理方法实施例中未披露的技术细节,请参照本发明异构微服务集群中服务处理系统实施例的描述。
如图8所示,本发明实施例提供一种异构服务集群中服务处理方法,由全局注册中心集群执行,包括以下步骤:
步骤S41:获取至少一个注册中心集群的第一服务列表;
步骤S42:对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
步骤S43:将所述第一全局服务列表发送给与至少一个所述注册中心集群分别对应连接的至少一个微服务集群。
本发明实施例提供的异构服务集群中服务处理方法可由全局注册中心集群中全局注册客户端执行。
本发明实施例中全局注册中心集群、微服务集群以及注册中心集群分别可以为上述实施例中全局注册中心集群、微服务集群以及注册中心集群;本发明实施例及以下涉及的服务列表、第一服务列表、第二服务列表、第三服务列表、全局服务列表、第一全局服务列表、第二全局服务列表以及第三全局服务列表分别可以是上述实施例中服务列表、第一服务列表、第二服务列表、第三服务列表、全局服务列表、第一全局服务列表、第二全局服务列表以及第三全局服务列表。
在一些实施例中,所述全局注册中心集群包括:至少一个全局注册中心服务端和至少一个全局注册中心客户端;所述全局注册中心客户端被设置在所述微服务集群的所述服务实例客户端中;
所述第一全局服务列表用于缓存在至少一个所述全局注册中心服务端中;
和/或,所述第一全局服务列表用于供至少一个所述微服务集群缓存在所述微服务集群的至少一个所述服务实例客户端中。
在一些实施例中,所述全局注册中心集群为全局注册中心服务端;所述方法包括:
获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
本发明实施例的第一比较结果可以为上述实施例中第一比较结果。
在一些实施例中,所述注册中心集群至少包括:与所述第一微服务集群对应的第一注册中心集群以及与第二微服务集群对应的第二注册中心集群;所述全局注册中心集群为全局注册中心服务端;所述方法包括:
获取至少一个所述第一注册中心集群中的第三服务列表;
对所述第三服务列表进行格式转换,以获得第三全局服务列表;
将第三全局服务列表发送给所述第二微服务集群,其中,所述第三全局服务列表用于供所述第二微服务集群更新所述第一全局服务列表。
如图9所示,本发明实施例提供一种异构服务集群中服务处理方法,由微服务集群中服务实例客户端执行,包括以下步骤:
步骤S51:接收全局注册中心集群发送的第一全局服务列表;其中,所述第一全局服务列表为所述全局注册中心集群对至少一个第一服务列表进行转换获得;所述第一服务列表为所述全局注册中心集群从至少一个注册中心集群中获取;
步骤S52:缓存所述第一全局服务列表。
在一些实施例中,所述注册中心集群包括至少一个第一注册中心集群和至少一个第二注册中心集群;所述方法包括:
获取所述第一注册中心集群发送的调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
这里,基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务,也可以是:基于轮询的调用方式或者基于权重的调用方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
这里,基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务,包括:将第一目标服务列表的调用请求发送给第二微服务集群,其中,调用请求用于供第二微服务集群的服务实例客户端基于负载均衡方式调用第一目标列表指示的待调用服务。
这里需要指出的是:以下异构微服务集群中服务处理装置项的描述,与上述异构微服务集群中服务处理系统和/或方法项描述是类似的,同系统和/或方法的有益效果描述,不做赘述。对于本发明异构微服务集群中服务处理装置实施例中未披露的技术细节,请参照本发明异构微服务集群中服务处理系统和/或方法实施例的描述。
如图10所示,本发明实施例提供一种异构微服务集群中服务处理装置,应用于全局注册中心集群,包括:
第一接收模块61,用于获取至少一个注册中心集群的第一服务列表;
第一处理模块62,用于对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
第一发送模块63,用于将所述第一全局服务列表发送给与至少一个所述注册中心集群分别对应连接的至少一个微服务集群。
在一些实施例中,所述全局注册中心集群包括:至少一个全局注册中心服务端和至少一个全局注册中心客户端;所述全局注册中心客户端被设置在所述微服务集群的所述服务实例客户端中;
所述第一全局服务列表用于缓存在至少一个所述全局注册中心服务端中;
和/或,所述第一全局服务列表用于供至少一个所述微服务集群缓存在所述微服务集群的至少一个所述服务实例客户端中。
在一些实施例中,所述全局注册中心集群为全局注册中心服务端;
所述第一获取模块61,用于获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
所述第一处理模块62,用于将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
所述第一处理模块62,用于基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
在一些实施例中,所述注册中心集群至少包括:与所述第一微服务集群对应的第一注册中心集群以及与第二微服务集群对应的第二注册中心集群;所述全局注册中心集群为全局注册中心服务端;
所述第一接收模块61,用于获取至少一个所述第一注册中心集群中的第三服务列表;
所述第一处理模块62,用于对所述第三服务列表进行格式转换,以获得第三全局服务列表;
所述第一发送模块63,用于将第三全局服务列表发送给所述第二微服务集群,其中,所述第三全局服务列表用于供所述第二微服务集群更新所述第一全局服务列表。
如图11所示,本发明实施例提供一种异构微服务集群中服务处理装置,应用于全局注册中心集群,包括:
第二接收模块71,用于接收全局注册中心集群发送的第一全局服务列表;其中,所述第一全局服务列表为所述全局注册中心集群对至少一个第一服务列表进行转换获得;所述第一服务列表为所述全局注册中心集群从至少一个注册中心集群中获取;
第二处理模块72,用于缓存所述第一全局服务列表。
在一些实施例中,所述注册中心集群包括至少一个第一注册中心集群和至少一个第二注册中心集群;所述装置包括:
第二获取模块,用于获取所述第一注册中心集群发送的调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
所述第二处理模块72,用于若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,
所述第二处理模块72,用于若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
如图12所示,本发明实施例还提供了一种终端,所述终端包括处理器81和用于存储能够在所述处理器81上运行的计算机程序的存储器82;其中,所述处理器81用于运行计算机程序时,实现本发明任意实施例的异构微服务集群中服务处理方法。
在一些实施例中,本发明实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器可能种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
在一些实施例中,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Application Specific Integrated Circuits,ASIC)、数字信号处理器(Digital SignalProcessing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(ProgrammableLogic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行发明所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本发明又一实施例提供了一种计算机存储介质,该计算机可读存储介质存储有可执行程序,所述可执行程序被处理器执行时,可实现本发明任意实施例的异构微服务集群中服务处理方法的步骤。
在一些实施例中,所述计算机存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种异构微服务集群中服务处理系统,其特征在于,包括:全局注册中心集群、至少两个注册中心集群以及至少两个微服务集群;其中,
所述微服务集群与对应的所述注册中心集群连接;
所述全局注册中心集群与至少两个所述注册中心集群分别连接,用于获取至少一个所述注册中心集群的第一服务列表;并对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
所述全局注册中心集群与至少两个所述微服务集群分别连接,用于将所述第一全局服务列表发送给至少一个所述微服务集群。
2.根据权利要求1所述的系统,其特征在于,所述全局注册中心集群包括:至少一个全局注册中心服务端和至少一个全局注册中心客户端;所述微服务集群包括:至少一个服务实例客户端;所述全局注册中心客户端被设置在所述微服务集群的所述服务实例客户端中;
所述全局注册中心服务端,用于缓存所述第一全局服务列表;和/或,
所述全局注册中心客户端,用于获取所述全局注册中心服务端提供的所述第一全局服务列表,并缓存所述第一全局服务列表。
3.根据权利要求2所述的系统,其特征在于,所述全局注册中心服务端,用于获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
所述全局注册中心服务端,用于将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
所述全局注册中心服务端,用于基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
4.根据权利要求2或3所述的系统,其特征在于,所述微服务集群至少包括:至少一个第一微服务集群和至少一个第二微服务集群;所述注册中心集群至少包括:与所述第一微服务集群对应连接的第一注册中心集群以及与第二微服务集群对应连接的第二注册中心集群;
所述全局注册中心服务端,用于获取至少一个所述第一注册中心集群中的第三服务列表;并对所述第三服务列表进行格式转换,以获得第三全局服务列表;
所述全局注册中心服务端,用于将所述第三全局服务列表更新到所述第二微服务集群中所述服务实例客户端中。
5.根据权利要求2或3所述的方法,其特征在于,所述微服务集群至少包括:至少一个第一微服务集群和至少一个第二微服务集群;所述注册中心集群至少包括:与所述第一微服务集群对应连接的第一注册中心集群以及与第二微服务集群对应连接的第二注册中心集群;所述服务实例客户端还包括:服务调用模块;所述第一微服务集群中所述服务实例客户端包括第一服务调用模块,所述第二微服务集群中所述服务实施客户端包括第二服务调用模块;
所述第一服务调用模块,用于获取调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
所述第一服务调用模块,用于若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,所述第一服务调用模块,用于若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;利用所述第二调用模组基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
6.一种异构微服务集群中服务处理方法,其特征在于,由全局注册中心集群执行,包括:
获取至少一个注册中心集群的第一服务列表;
对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
将所述第一全局服务列表发送给与至少一个所述注册中心集群分别对应连接的至少一个微服务集群。
7.根据权利要求6所述的方法,其特征在于,所述全局注册中心集群包括:至少一个全局注册中心服务端和至少一个全局注册中心客户端;所述全局注册中心客户端被设置在所述微服务集群的所述服务实例客户端中;
所述第一全局服务列表用于缓存在至少一个所述全局注册中心服务端中;
和/或,所述第一全局服务列表用于供至少一个所述微服务集群缓存在所述微服务集群的至少一个所述服务实例客户端中。
8.根据权利要求6或7所述的方法,其特征在于,所述全局注册中心集群为全局注册中心服务端;所述方法包括:
获取至少一个所述注册中心集群中第二服务列表,其中,所述第二服务列表是基于所述第一服务列表更新后确定;
将至少一个所述第二服务列表与所述第一全局服务列表进行比对,以获得第一比较结果;
基于所述第一比较结果更新所述第一全局服务列表,以获得第二全局服务列表。
9.根据权利要求6或7所述的方法,其特征在于,所述注册中心集群至少包括:与所述第一微服务集群对应的第一注册中心集群以及与第二微服务集群对应的第二注册中心集群;所述全局注册中心集群为全局注册中心服务端;所述方法包括:
获取至少一个所述第一注册中心集群中的第三服务列表;
对所述第三服务列表进行格式转换,以获得第三全局服务列表;
将第三全局服务列表发送给所述第二微服务集群,其中,所述第三全局服务列表用于供所述第二微服务集群更新所述第一全局服务列表。
10.一种异构微服务集群中服务处理方法,其特征在于,由微服务集群中服务实例客户端执行,包括:
接收全局注册中心集群发送的第一全局服务列表;其中,所述第一全局服务列表为所述全局注册中心集群对至少一个第一服务列表进行转换获得;所述第一服务列表为所述全局注册中心集群从至少一个注册中心集群中获取;
缓存所述第一全局服务列表。
11.根据权利要求10所述的方法,其特征在于,所述注册中心集群包括至少一个第一注册中心集群和至少一个第二注册中心集群;所述方法包括:
获取所述第一注册中心集群发送的调用请求;其中,所述调用请求包括用于指示待调用注册中心集群的标识信息和/或指示待调用服务的标识信息;
若基于所述调用请求确定待调用注册中心集群为所述第一注册中心集群,确定基于所述第一微服务集群中所述服务实施例客户端调用所述调用请求所指示的所述待调用服务;
或者,若基于所述调用请求确定待调用注册中心集群是所述第二注册中心集群,基于所述第二注册中心集群的标识信息对所述第一全局服务列表进行过滤,以获得所述第二注册中心集群对应的第一目标服务列表;基于负载均衡方式调用所述第二微服务器集群中所述第一目标服务列表指示的所述待调用服务。
12.一种异构微服务集群中服务处理装置,其特征在于,应用于全局注册中心集群,包括:
第一接收模块,用于获取至少一个注册中心集群的第一服务列表;
第一处理模块,用于对至少一个所述第一服务列表进行格式转换,以获得第一全局服务列表;
第一发送模块,用于将所述第一全局服务列表发送给与至少一个所述注册中心集群分别对应连接的至少一个微服务集群。
13.一种异构微服务集群中服务处理装置,其特征在于,应用于微服务集群中服务实例客户端,包括:
第二接收模块,用于接收全局注册中心集群发送的第一全局服务列表;其中,所述第一全局服务列表为所述全局注册中心集群对至少一个第一服务列表进行转换获得;所述第一服务列表为所述全局注册中心集群从至少一个注册中心集群中获取;
第二处理模块,用于缓存所述第一全局服务列表。
14.一种终端,其特征在于,所述终端包括处理器和用于存储能够在所述处理器上运行的计算机程序的存储器;其中,所述处理器用于运行计算机程序时,实现权利要求6至9、或者10至11任一项所述的异构微服务集群中服务处理方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质中有计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行实现权利要求6至9、或者10至11任一项所述异构微服务集群中服务处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599505.5A CN116647552A (zh) | 2022-12-12 | 2022-12-12 | 异构微服务集群中服务处理方法及系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211599505.5A CN116647552A (zh) | 2022-12-12 | 2022-12-12 | 异构微服务集群中服务处理方法及系统、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116647552A true CN116647552A (zh) | 2023-08-25 |
Family
ID=87621796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211599505.5A Pending CN116647552A (zh) | 2022-12-12 | 2022-12-12 | 异构微服务集群中服务处理方法及系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116647552A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041329A (zh) * | 2023-10-08 | 2023-11-10 | 南京翼辉信息技术有限公司 | 一种基于异构总线结构的微服务配置系统及其控制方法 |
-
2022
- 2022-12-12 CN CN202211599505.5A patent/CN116647552A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041329A (zh) * | 2023-10-08 | 2023-11-10 | 南京翼辉信息技术有限公司 | 一种基于异构总线结构的微服务配置系统及其控制方法 |
CN117041329B (zh) * | 2023-10-08 | 2023-12-15 | 南京翼辉信息技术有限公司 | 一种基于异构总线结构的微服务配置系统及其控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110990047B (zh) | 用于多个微服务架构的融合方法及装置 | |
CN111201765A (zh) | 通信网络中的服务注册和发现 | |
US9749445B2 (en) | System and method for updating service information for across-domain messaging in a transactional middleware machine environment | |
CN114048046B (zh) | 一种服务的调用方法、装置及负载均衡设备 | |
CN103064960A (zh) | 数据库查询方法及设备 | |
CN113973129B (zh) | 一种支持多种注册中心微服务的网关 | |
CN107172214B (zh) | 一种具有负载均衡的服务节点发现方法及装置 | |
CN110601981A (zh) | 服务路由方法、服务提供方云域及服务调用方云域 | |
CN111193803A (zh) | 基于spring cloud的微服务构建方法及spring cloud微服务架构 | |
CN114448686B (zh) | 一种基于微服务的跨网络通信装置与方法 | |
US20060259523A1 (en) | System and method of synchronization of internal data cache with wireless device application data repositories | |
CN106131102A (zh) | 一种分配服务器的方法及装置 | |
CN111510330A (zh) | 接口管理装置、方法及存储介质 | |
CN111884844A (zh) | 基于zookeeper的消息服务接入方法和设备 | |
CN117459444A (zh) | 微服务同城双活同中心优先路由方法、设备及存储介质 | |
CN116647552A (zh) | 异构微服务集群中服务处理方法及系统、终端及存储介质 | |
CN115562757A (zh) | 数据处理方法、配置中心系统、电子设备及存储介质 | |
WO2023016019A1 (zh) | 资源共享方法及微前端系统、应用、计算机可读存储介质 | |
CN111309691A (zh) | 基于总线架构的数据共享交换系统和交换方法 | |
CN112558943B (zh) | 微服务架构下配置信息管理系统 | |
CN113779452B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114244654B (zh) | 一种url的转发方法、装置、设备及计算机存储介质 | |
CN114143323A (zh) | 企业级微服务平台跨区域容灾架构及方法 | |
CN118012470B (zh) | 电力信息管理应用更新方法、装置、电子设备与介质 | |
CN116594848B (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 |