CN114640657A - 多注册中心的融合方法、装置 - Google Patents

多注册中心的融合方法、装置 Download PDF

Info

Publication number
CN114640657A
CN114640657A CN202011492820.9A CN202011492820A CN114640657A CN 114640657 A CN114640657 A CN 114640657A CN 202011492820 A CN202011492820 A CN 202011492820A CN 114640657 A CN114640657 A CN 114640657A
Authority
CN
China
Prior art keywords
registry
instance
service
micro
registration center
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
Application number
CN202011492820.9A
Other languages
English (en)
Inventor
王晓涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN202011492820.9A priority Critical patent/CN114640657A/zh
Publication of CN114640657A publication Critical patent/CN114640657A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

本发明涉及一种多注册中心的融合方法、装置,所述方法包括:确定待融合的注册中心集合;调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心。如此调用注册中心同步服务从任一注册中心获取微服务实例对应的实例信息,并将实例信息注册到除该注册中心之外的其余注册中心,多个注册中心之间能够相互通信,以及相互融合。

Description

多注册中心的融合方法、装置
技术领域
本发明涉及微服务技术领域,尤其涉及一种多注册中心的融合方法、装置。
背景技术
在微服务结构中,注册中心是一个必不可少的组件,注册中心提供了微服务的注册与发现功能。目前,比较流行的注册中心有Eureka、Consul、Zookeeper、Nacos等,这些注册中心相互独立,无法融合,即在同一个微服务架构的系统中,只能使用一种注册中心。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本发明提供了一种多注册中心的融合方法、装置、电子设备以及存储介质。
第一方面,本发明提供了一种多注册中心的融合方法,所述方法包括:
确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
在一个可选的实施方式中,所述获取所述微服务实例对应的实例信息,包括:
获取所述微服务实例的实例标识;
判断所述实例标识是否在所述同步服务中首次出现;
若所述实例标识在所述同步服务中首次出现,获取所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述方法还包括:
若所述实例标识在所述同步服务中非首次出现,判断所述微服务实例对应的微服务的服务标识是否存在于所述第一注册中心的微服务列表中;
若所述微服务实例对应的微服务的服务标识存在于所述第一注册中心的微服务列表中,向第二注册中心发送所述微服务实例对应的心跳数据。
在一个可选的实施方式中,所述向第二注册中心发送所述微服务实例对应的心跳数据,包括:
判断所述微服务实例是否处于在线状态;
若所述微服务实例处于在线状态,向第二注册中心发送所述微服务实例对应的心跳数据。
在一个可选的实施方式中,所述方法还包括:
若所述微服务实例未处于在线状态,从第二注册中心中删除所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述方法还包括:
若所述微服务实例对应的微服务的服务标识未存在于所述第一注册中心的微服务列表中,略过所述微服务实例不进行处理。
在一个可选的实施方式中,所述获取所述微服务实例对应的实例信息,包括:
确定所述第一注册中心对应的中心类型;
确定与所述中心类型对应的信息获取方式;
利用所述信息获取方式,获取所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述调用注册中心同步服务遍历第一注册中心,包括:
获取所述注册中心集合中每个注册中心的微服务实例的数量,并进行相加;
判断相加结果是否超过预设数量阈值;
若所述相加结果未超过所述预设数量阈值,启动注册中心同步服务中的一个第一同步服务实例;
调用所述第一同步服务实例遍历第一注册中心。
在一个可选的实施方式中,所述方法还包括:
若所述相加结果超过所述预设数量阈值,为第三注册中心启动注册中心同步服务中的一个第二同步服务实例,其中,所述第三注册中心为所述注册中心集合中的任一个注册中心;
调用所述第二同步服务实例遍历所述第三注册中心;
确定所述第三注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第四注册中心,其中,所述第四注册中心为所述注册中心集合中非所述第三注册中心的注册中心。
第二方面,本发明提供了一种多注册中心的融合装置,所述装置包括:
集合确定模块,用于确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
中心遍历模块,用于调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
信息获取模块,用于确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
信息注册模块,用于将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
第三方面,本发明提供了一种电子设备,包括:至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行上述第一方面中任一项所述的多注册中心的融合方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面中任一项所述的多注册中心的融合方法。
本发明实施例提供的技术方案,通过确定待融合的注册中心集合,调用注册中心同步服务遍历第一注册中心,第一注册中心为注册中心集合中的任一个注册中心,确定该第一注册中心中微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到第二注册中心,第二注册中心为注册中心集合中非第一注册中心的注册中心。如此调用注册中心同步服务从任一注册中心获取微服务实例对应的实例信息,并将实例信息注册到除该注册中心之外的其余注册中心,多个注册中心之间能够相互通信,以及相互融合。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种多注册中心的融合方法的实施流程示意图;
图2为本发明实施例提供的一种多注册中心的融合方案的架构示意图;
图3为本发明实施例提供的另一种多注册中心的融合方法的实施流程示意图;
图4为本发明实施例提供的另一种多注册中心的融合方案的架构示意图;
图5为本发明实施例提供的另一种多注册中心的融合方案的架构示意图;
图6为本发明实施例提供的另一种多注册中心的融合方案的架构示意图;
图7为本发明实施例提供的一种多注册中心的融合装置的结构示意图;
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,对于一个复杂的微服务架构的系统,通常由多个团队进行开发,每个团队技术背景不一样,有可能使用不同的注册中心,在一个复杂的微服务架构的系统中,如何让多个注册中心能够相互通信,相互融合,是亟需解决的问题。
为了解决上述问题,如图1所示,为本发明实施例提供的一种多注册中心的融合方法的实施流程示意图,该方法具体可以包括以下步骤:
S101,确定待融合的注册中心集合。
在本发明实施例中,可以确定待融合的注册中心集合,其中,可以通过注册中心列表,确定待融合的注册中心集合。对于注册中心集合,至少包括2个注册中心,对于注册中心可以是Eureka、Consul、Zookeeper、Nacos等,本发明实施例对此不作限定。
例如,如图2所示,通过注册中心列表,确定待融合的注册中心集合中注册中心A、注册中心B、注册中心C、注册中心D等注册中心集合。对于注册中心A,可以是Eureka,对于注册中心C,可以是Consul,Eureka、Consul作为注册中心在微服务注册与发现时采用的是Http协议。对于注册中心B,可以是Zookeeper,Zookeeper作为注册中心在微服务注册与发现时采用的是RPC协议,注册中心D,可以是Nacos,Nacos作为注册中心在微服务注册与发现时采用的是Http协议或者RPC协议。
S102,调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心。
S103,确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息。
S104,将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心。
在本发明实施例中,可以调用注册中心同步服务遍历第一注册中心,该第一注册中心为注册中心集合中的任一个注册中心,确定该第一注册中心中微服务实例,并获取该微服务实例对应的实例信息,将该实例信息注册到第二注册中心,其中,第二注册中心为注册中心集合中非第一注册中心的注册中心。
其中,可以通过第一注册中心中微服务实例注册列表,确定该第一注册中心中微服务实例,本发明实施例对此不作限定。对于实例信息,例如可以是微服务实例的IP地址,微服务实例的端口,微服务名称,微服务状态数据等,本发明实施例对此不作限定。此外,在将该实例信息注册到第二注册中心之后,可以将微服务实例的实例标识添加至第二注册中心中微服务实例注册列表。
对于注册中心同步服务,具体可以包括对各个类型的注册中心接口,该注册中心同步服务用于从一个注册中心确定其中的微服务实例,并获取微服务实例对应的实例信息,然后通过其他注册中心的接口,模拟微服务注册的过程,将一个注册中心上的微服务注册到其他注册中心中,即将一个注册中心中的微服务实例的实例信息注册到其他注册中心中。
例如,调用注册中心同步服务遍历注册中心A,通过注册中心A中微服务实例注册列表确定注册中心A中的微服务实例(微服务实例是微服务启动的实例,一般一个微服务可以启动多个实例,这些实例之间完全对等,这里微服务实例有可能部分位于注册中心A中,有可能部分位于其它注册中心,仅仅是注册到注册中心A),获取注册中心A中的微服务实例对应的实例信息,将注册中心A中的微服务实例对应的实例信息注册到注册中心B、注册中心C、注册中心D。在注册中心A中的微服务实例对应的实例信息注册到注册中心B、注册中心C、注册中心D之后,将微服务实例的实例标识添加至注册中心B、注册中心C、注册中心D中微服务实例注册列表。
在将注册中心A中的微服务实例对应的实例信息注册到注册中心B、注册中心C、注册中心D之后,可以调用注册中心同步服务遍历注册中心B,通过注册中心B中微服务实例注册列表确定注册中心B中的微服务实例(这里微服务实例有可能部分位于注册中心B中,有可能部分位于其它注册中心,仅仅是注册到注册中心B),获取注册中心B中的微服务实例对应的实例信息,将注册中心B中的微服务实例对应的实例信息注册到注册中心A、注册中心C、注册中心D。在将注册中心B中的微服务实例对应的实例信息注册到注册中心A、注册中心C、注册中心D之后,将微服务实例的实例标识添加至注册中心A、注册中心C、注册中心D中微服务实例注册列表。
在将注册中心B中的微服务实例对应的实例信息注册到注册中心A、注册中心C、注册中心D之后,可以调用注册中心同步服务遍历注册中心C,通过注册中心C中微服务实例注册列表确定注册中心C中的微服务实例(这里微服务实例有可能部分位于注册中心C中,有可能部分位于其它注册中心,仅仅是注册到注册中心C),获取注册中心C中的微服务实例对应的实例信息,将注册中心C中的微服务实例对应的实例信息注册到注册中心A、注册中心B、注册中心D。在将注册中心C中的微服务实例对应的实例信息注册到注册中心A、注册中心B、注册中心D之后,可以将微服务实例的实例标识添加至注册中心A、注册中心B、注册中心D中微服务实例注册列表。
在将注册中心C中的微服务实例对应的实例信息注册到注册中心A、注册中心B、注册中心D,可以调用注册中心同步服务遍历注册中心D,通过注册中心D中微服务实例注册列表确定注册中心D中的微服务实例(这里微服务实例有可能部分位于注册中心D中,有可能部分位于其它注册中心,仅仅是注册到注册中心D),获取注册中心D中的微服务实例对应的实例信息,将注册中心D中的微服务实例对应的实例信息注册到注册中心A、注册中心B、注册中心C。在将注册中心D中的微服务实例对应的实例信息注册到注册中心A、注册中心B、注册中心C之后,可以将微服务实例的实例标识添加至注册中心A、注册中心B、注册中心C中微服务实例注册列表。
如此通过这种模拟微服务注册的过程,可以保证注册中心A、注册中心B、注册中心C、注册中心D相互之间的数据同步,实现注册中心A、注册中心B、注册中心C、注册中心D等多个类型注册中心的融合。
此外,需要说明的是,可以周期性执行上述步骤S101至S104,本发明实施例对此不作限定。
通过上述对本发明实施例提供的技术方案的描述,通过确定待融合的注册中心集合,调用注册中心同步服务遍历第一注册中心,第一注册中心为注册中心集合中的任一个注册中心,确定该第一注册中心中微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到第二注册中心,第二注册中心为注册中心集合中非第一注册中心的注册中心。
如此调用注册中心同步服务从任一注册中心获取微服务实例对应的实例信息,并将实例信息注册到除该注册中心之外的其余注册中心,多个注册中心之间能够相互通信,以及相互融合。
如图3所示,为本发明实施例提供的另一种多注册中心的融合方法的实施流程示意图,该方法具体可以包括以下步骤:
S301,确定待融合的注册中心集合。
在本发明实施例中,本步骤与上述步骤S101类似,本发明实施例在此不再一一赘述。
S302,获取所述注册中心集合中每个注册中心的微服务实例的数量,并进行相加。
对于待融合的注册中心集合中各个注册中心,本发明实施例可以获取各个注册中心中微服务实例的数量,并进行相加。这里,微服务实例是微服务启动的实例,一般一个微服务可以启动多个实例,这些实例之间完全对等。
例如,对于注册中心A、注册中心B、注册中心C以及注册中心D等各个注册中心中微服务实例,如图4所示,本发明实施例可以获取注册中心A、注册中心B、注册中心C以及注册中心D等各个注册中心中微服务实例的数量,并进行相加,如下表1所示。
注册中心 微服务实例的数量
注册中心A 4
注册中心B 4
注册中心C 4
注册中心D 4
16(微服务实例的总数量)
表1
S303,判断相加结果是否超过预设数量阈值。
对于各个注册中心中微服务实例的数量的相加结果,本发明实施例可以判断相加结果是否超过预设数量阈值(例如100),从而可以根据判断结果决定是否启动注册中心同步服务中的多个同步服务实例,以此来提高同步的性能。
例如,对于注册中心A、注册中心B、注册中心C以及注册中心D等各个注册中心中微服务实例的数量的相加结果16,本发明实施例可以判断该相加结果是否超过预设数量阈值。
S304,若所述相加结果未超过所述预设数量阈值,启动注册中心同步服务中的一个第一同步服务实例;
S305,调用所述第一同步服务实例遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
S306,确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息。
S307,将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心。
对于各个注册中心中微服务实例的数量的相加结果,如果相加结果未超过预设数量阈值,说明各个注册中心中微服务实例的数量较少,为了节省资源,可以启动注册中心同步服务中的一个第一同步服务实例即可,从而调用该第一同步服务实例遍历第一注册中心,其中,第一注册中心为注册中心集合中的任一个注册中心,确定第一注册中心中微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到第二注册中心,其中,第二注册中心为注册中心集合中非第一注册中心的注册中心,且第二注册中心采用的通信协议与第一注册中心采用的通信协议不同。需要说明的是,这里第二注册中心采用的通信协议与第一注册中心采用的通信协议不同,可以进一步节省资源,提高实例信息同步效率。
具体的,在本发明实施例中,调用该第一同步服务实例遍历第一注册中心,确定第一注册中心中微服务实例,可以获取微服务实例的实例标识(例如实例ID、实例名称等,本发明实施例对此不作限定),判断该实例标识是否在注册中心同步服务中首次出现,若实例标识在注册中心同步服务中首次出现,可以获取微服务实例对应的实例信息,以及,将实例信息注册到第二注册中心。
例如,对于注册中心A、注册中心B、注册中心C以及注册中心D等各个注册中心中微服务实例的数量的相加结果16,该相加结果未超过预设数量阈值100,可以启动注册中心同步服务中的一个同步服务实例1,如图5所示,从而可以调用同步服务实例1遍历注册中心A,通过注册中心A中的查询服务信息接口确定注册中心A中的微服务实例,通过查询实例信息接口获取微服务实例的实例ID,判断该实例ID是否在注册中心同步服务中首次出现,若实例ID在注册中心同步服务中首次出现,那么表示微服务实例属于注册中心A,可以通过查询实例信息接口获取微服务实例对应的实例信息,以及,将实例信息注册到注册中心B、注册中心C以及注册中心D。在调用同步服务实例1依序遍历注册中心B、注册中心C以及注册中心D的过程中,处理流程与上述类似,本发明实施例在此不再一一赘述。
另外,在本发明实施例中,调用第一同步服务实例遍历第一注册中心,确定第一注册中心中微服务实例,可以获取微服务实例的实例标识(例如实例ID、实例名称等),判断该实例标识是否在注册中心同步服务中首次出现,若该实例标识在注册中心同步服务中非首次出现,判断微服务实例对应的微服务的服务标识(例如服务ID、服务名称等)是否存在于该第一注册中心的微服务列表中,若微服务实例对应的微服务的服务标识存在于该第一注册中心的微服务列表中,向第二注册中心发送微服务实例对应的心跳数据,若微服务实例对应的微服务的服务标识未存在于第一注册中心的微服务列表中,略过微服务实例不进行处理。
其中,可以判断微服务实例是否处于在线状态,若微服务实例处于在线状态,向第二注册中心发送微服务实例对应的心跳数据,若微服务实例未处于在线状态,从第二注册中心中删除微服务实例对应的实例信息。
例如,调用同步服务实例1遍历注册中心A,通过注册中心A中的查询服务信息接口确定注册中心A中的微服务实例,通过查询实例信息接口获取微服务实例的实例ID,判断该实例ID是否在注册中心同步服务中首次出现,若实例ID在注册中心同步服务中非首次出现,可以继续判断微服务实例对应的微服务的服务标识是否存在于注册中心A的微服务列表中,如果微服务实例对应的微服务的服务标识存在于注册中心A的微服务列表中,表示该微服务实例属于注册中心A,继续判断微服务实例是否处于在线状态,如果微服务实例处于在线状态,可以通过注册中心B、注册中心C、注册中心D的心跳接口,向注册中心B、注册中心C、注册中心D发送微服务实例对应的心跳数据,用于通知注册中心B、注册中心C、注册中心D,注册中心A中的微服务实例在线。
如果微服务实例未处于在线状态,说明注册中心A中的微服务实例下线,可以从注册中心B、注册中心C、注册中心D中删除微服务实例对应的实例信息。若微服务实例对应的微服务的服务标识未存在于注册中心A的微服务列表中,表明该微服务实例是注册中心B、注册中心C或注册中心D注册到注册中心A的微服务实例,并不是注册中心A的微服务实例,可以不进行处理。在调用同步服务实例1依序遍历注册中心B、注册中心C以及注册中心D的过程中,处理流程与上述类似,本发明实施例在此不再一一赘述。
此外,对于不同类型的注册中心,其信息获取方式存在差异,因此在获取微服务实例对应的实例信息之前,本发明实施例可以确定第一注册中心对应的中心类型,确定与中心类型对应的信息获取方式,从而利用该信息获取方式,获取微服务实例对应的实例信息。
例如,对于注册中心A,可以确定注册中心A对应的中心类型Eureka,确定与该中心类型对应的信息获取方式:查询实例信息接口,从而通过查询实例信息接口获取注册中心A中微服务实例对应的实例信息。
例如,对于注册中心B,可以确定注册中心B对应的中心类型Zookeeper,确定与该中心类型对应的信息获取方式:注册路径/{service}/{version}/{ip:port},通过该注册路径可以获取注册中心B中微服务实例对应的实例信息。
S308,若所述相加结果超过所述预设数量阈值,为第三注册中心启动注册中心同步服务中的一个第二同步服务实例,其中,所述第三注册中心为所述注册中心集合中的任一个注册中心。
对于各个注册中心中微服务实例的数量的相加结果,如果相加结果超过预设数量阈值,可以将各个注册中心中微服务实例对应的实例信息保存到缓存数据库Redis中或者关系型数据库中,这样可以保持多个同步服务实例共享数据,这样可以启动注册中心同步服务中的多个同步服务实例,提升同步的性能,即为第三注册中心启动注册中心同步服务中的一个第二同步服务实例,其中,第三注册中心为注册中心集合中的任一个注册中心。如此针对任一注册中心,可以为该注册中心启动对注册中心同步服务中的一个第二同步服务实例,启动与注册中心数量对等的第二同步服务实例。
例如,对于注册中心A、注册中心B、注册中心C以及注册中心D等各个注册中心中微服务实例的数量的相加结果160,如果相加结果超过预设数量阈值100,可以为注册中心A启动注册中心同步服务中的一个同步服务实例1,可以为注册中心B启动注册中心同步服务中的一个同步服务实例2,可以为注册中心C启动注册中心同步服务中的一个同步服务实例3,可以为注册中心D启动注册中心同步服务中的一个同步服务实例4,如图6所示,如此启动与注册中心数量对等的同步服务实例。
S309,调用所述第二同步服务实例遍历所述第三注册中心。
S310,确定所述第三注册中心中微服务实例,并获取所述微服务实例对应的实例信息。
S311,将所述实例信息注册到第四注册中心,其中,所述第四注册中心为所述注册中心集合中非所述第三注册中心的注册中心。
在本发明实施例中,可以调用第二同步服务实例遍历第三注册中心,确定第三注册中心中微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到第四注册中心,其中,第四注册中心为注册中心集合中非第三注册中心的注册中心。
例如,调用同步服务实例1遍历同步服务实例1对应的注册中心A,确定注册中心A中的微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到注册中心B、注册中心C、注册中心D。其中,调用同步服务实例1遍历注册中心A,通过注册中心A中的查询服务信息接口确定注册中心A中的微服务实例,通过查询实例信息接口获取微服务实例的实例ID,判断该实例ID是否在注册中心同步服务中首次出现,若实例ID在注册中心同步服务中首次出现,那么表示微服务实例属于注册中心A,可以通过查询实例信息接口获取微服务实例对应的实例信息,以及,将实例信息注册到注册中心B、注册中心C以及注册中心D。
调用同步服务实例2遍历同步服务实例2对应的注册中心B,确定注册中心B中的微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到注册中心A、注册中心C、注册中心D。其中,调用同步服务实例2遍历注册中心B,通过注册中心B中的查询服务信息接口确定注册中心B中的微服务实例,通过查询实例信息接口获取微服务实例的实例ID,判断该实例ID是否在注册中心同步服务中首次出现,若实例ID在注册中心同步服务中首次出现,那么表示微服务实例属于注册中心B,可以通过查询实例信息接口获取微服务实例对应的实例信息,以及,将实例信息注册到注册中心A、注册中心C以及注册中心D。
调用同步服务实例3遍历同步服务实例3对应的注册中心C,确定注册中心C中的微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到注册中心A、注册中心B、注册中心D。其中,调用同步服务实例3遍历注册中心C,通过注册中心C中的查询服务信息接口确定注册中心C中的微服务实例,通过查询实例信息接口获取微服务实例的实例ID,判断该实例ID是否在注册中心同步服务中首次出现,若实例ID在注册中心同步服务中首次出现,那么表示微服务实例属于注册中心C,可以通过查询实例信息接口获取微服务实例对应的实例信息,以及,将实例信息注册到注册中心A、注册中心B以及注册中心D。
调用同步服务实例4遍历同步服务实例4对应的注册中心D,确定注册中心D中的微服务实例,并获取微服务实例对应的实例信息,将实例信息注册到注册中心A、注册中心B、注册中心C。其中,调用同步服务实例4遍历注册中心D,通过注册中心D中的查询服务信息接口确定注册中心D中的微服务实例,通过查询实例信息接口获取微服务实例的实例ID,判断该实例ID是否在注册中心同步服务中首次出现,若实例ID在注册中心同步服务中首次出现,那么表示微服务实例属于注册中心D,可以通过查询实例信息接口获取微服务实例对应的实例信息,以及,将实例信息注册到注册中心A、注册中心B以及注册中心C。
与上述方法实施例相对应,本发明实施例还提供了一种多注册中心的融合装置,如图7所示,该装置包括:集合确定模块710、中心遍历模块720、信息获取模块730、信息注册模块740。
集合确定模块710,用于确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
中心遍历模块720,用于调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
信息获取模块730,用于确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
信息注册模块740,用于将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在多注册中心的融合设备侧执行的多注册中心的融合方法。
所述处理器用于执行存储器中存储的多注册中心的融合程序,以实现以下在多注册中心的融合设备侧执行的多注册中心的融合方法的步骤:
确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
在一个可选的实施方式中,所述获取所述微服务实例对应的实例信息,包括:
获取所述微服务实例的实例标识;
判断所述实例标识是否在所述同步服务中首次出现;
若所述实例标识在所述同步服务中首次出现,获取所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述方法还包括:
若所述实例标识在所述同步服务中非首次出现,判断所述微服务实例对应的微服务的服务标识是否存在于所述第一注册中心的微服务列表中;
若所述微服务实例对应的微服务的服务标识存在于所述第一注册中心的微服务列表中,向第二注册中心发送所述微服务实例对应的心跳数据。
在一个可选的实施方式中,所述向第二注册中心发送所述微服务实例对应的心跳数据,包括:
判断所述微服务实例是否处于在线状态;
若所述微服务实例处于在线状态,向第二注册中心发送所述微服务实例对应的心跳数据。
在一个可选的实施方式中,所述方法还包括:
若所述微服务实例未处于在线状态,从第二注册中心中删除所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述方法还包括:
若所述微服务实例对应的微服务的服务标识未存在于所述第一注册中心的微服务列表中,略过所述微服务实例不进行处理。
在一个可选的实施方式中,所述获取所述微服务实例对应的实例信息,包括:
确定所述第一注册中心对应的中心类型;
确定与所述中心类型对应的信息获取方式;
利用所述信息获取方式,获取所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述调用注册中心同步服务遍历第一注册中心,包括:
获取所述注册中心集合中每个注册中心的微服务实例的数量,并进行相加;
判断相加结果是否超过预设数量阈值;
若所述相加结果未超过所述预设数量阈值,启动注册中心同步服务中的一个第一同步服务实例;
调用所述第一同步服务实例遍历第一注册中心。
在一个可选的实施方式中,所述方法还包括:
若所述相加结果超过所述预设数量阈值,为第三注册中心启动注册中心同步服务中的一个第二同步服务实例,其中,所述第三注册中心为所述注册中心集合中的任一个注册中心;
调用所述第二同步服务实例遍历所述第三注册中心;
确定所述第三注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第四注册中心,其中,所述第四注册中心为所述注册中心集合中非所述第三注册中心的注册中心。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行:确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
图8为本发明实施例提供的一种电子设备的结构示意图,图8所示的电子设备80包括:至少一个处理器801、以及与处理器801连接的至少一个存储器802、总线803;其中,处理器801、存储器802通过总线803完成相互间的通信;处理器用于调用存储器中的程序指令,以执行上述的多注册中心的融合方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
在一个可选的实施方式中,所述获取所述微服务实例对应的实例信息,包括:
获取所述微服务实例的实例标识;
判断所述实例标识是否在所述同步服务中首次出现;
若所述实例标识在所述同步服务中首次出现,获取所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述方法还包括:
若所述实例标识在所述同步服务中非首次出现,判断所述微服务实例对应的微服务的服务标识是否存在于所述第一注册中心的微服务列表中;
若所述微服务实例对应的微服务的服务标识存在于所述第一注册中心的微服务列表中,向第二注册中心发送所述微服务实例对应的心跳数据。
在一个可选的实施方式中,所述向第二注册中心发送所述微服务实例对应的心跳数据,包括:
判断所述微服务实例是否处于在线状态;
若所述微服务实例处于在线状态,向第二注册中心发送所述微服务实例对应的心跳数据。
在一个可选的实施方式中,所述方法还包括:
若所述微服务实例未处于在线状态,从第二注册中心中删除所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述方法还包括:
若所述微服务实例对应的微服务的服务标识未存在于所述第一注册中心的微服务列表中,略过所述微服务实例不进行处理。
在一个可选的实施方式中,所述获取所述微服务实例对应的实例信息,包括:
确定所述第一注册中心对应的中心类型;
确定与所述中心类型对应的信息获取方式;
利用所述信息获取方式,获取所述微服务实例对应的实例信息。
在一个可选的实施方式中,所述调用注册中心同步服务遍历第一注册中心,包括:
获取所述注册中心集合中每个注册中心的微服务实例的数量,并进行相加;
判断相加结果是否超过预设数量阈值;
若所述相加结果未超过所述预设数量阈值,启动注册中心同步服务中的一个第一同步服务实例;
调用所述第一同步服务实例遍历第一注册中心。
在一个可选的实施方式中,所述方法还包括:
若所述相加结果超过所述预设数量阈值,为第三注册中心启动注册中心同步服务中的一个第二同步服务实例,其中,所述第三注册中心为所述注册中心集合中的任一个注册中心;
调用所述第二同步服务实例遍历所述第三注册中心;
确定所述第三注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第四注册中心,其中,所述第四注册中心为所述注册中心集合中非所述第三注册中心的注册中心。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

1.一种多注册中心的融合方法,其特征在于,所述方法包括:
确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
2.根据权利要求1所述的方法,其特征在于,所述获取所述微服务实例对应的实例信息,包括:
获取所述微服务实例的实例标识;
判断所述实例标识是否在所述同步服务中首次出现;
若所述实例标识在所述同步服务中首次出现,获取所述微服务实例对应的实例信息。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述实例标识在所述同步服务中非首次出现,判断所述微服务实例对应的微服务的服务标识是否存在于所述第一注册中心的微服务列表中;
若所述微服务实例对应的微服务的服务标识存在于所述第一注册中心的微服务列表中,向第二注册中心发送所述微服务实例对应的心跳数据。
4.根据权利要求3所述的方法,其特征在于,所述向第二注册中心发送所述微服务实例对应的心跳数据,包括:
判断所述微服务实例是否处于在线状态;
若所述微服务实例处于在线状态,向第二注册中心发送所述微服务实例对应的心跳数据。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述微服务实例未处于在线状态,从第二注册中心中删除所述微服务实例对应的实例信息。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述微服务实例对应的微服务的服务标识未存在于所述第一注册中心的微服务列表中,略过所述微服务实例不进行处理。
7.根据权利要求1所述的方法,其特征在于,所述获取所述微服务实例对应的实例信息,包括:
确定所述第一注册中心对应的中心类型;
确定与所述中心类型对应的信息获取方式;
利用所述信息获取方式,获取所述微服务实例对应的实例信息。
8.根据权利要求1所述的方法,其特征在于,所述调用注册中心同步服务遍历第一注册中心,包括:
获取所述注册中心集合中每个注册中心的微服务实例的数量,并进行相加;
判断相加结果是否超过预设数量阈值;
若所述相加结果未超过所述预设数量阈值,启动注册中心同步服务中的一个第一同步服务实例;
调用所述第一同步服务实例遍历第一注册中心。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若所述相加结果超过所述预设数量阈值,为第三注册中心启动注册中心同步服务中的一个第二同步服务实例,其中,所述第三注册中心为所述注册中心集合中的任一个注册中心;
调用所述第二同步服务实例遍历所述第三注册中心;
确定所述第三注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
将所述实例信息注册到第四注册中心,其中,所述第四注册中心为所述注册中心集合中非所述第三注册中心的注册中心。
10.一种多注册中心的融合装置,其特征在于,所述装置包括:
集合确定模块,用于确定待融合的注册中心集合,其中,所述注册中心集合至少包括二个注册中心;
中心遍历模块,用于调用注册中心同步服务遍历第一注册中心,其中,所述第一注册中心为所述注册中心集合中的任一个注册中心;
信息获取模块,用于确定所述第一注册中心中微服务实例,并获取所述微服务实例对应的实例信息;
信息注册模块,用于将所述实例信息注册到第二注册中心,其中,所述第二注册中心为所述注册中心集合中非所述第一注册中心的注册中心,且所述第二注册中心采用的通信协议与所述第一注册中心采用的通信协议不同。
CN202011492820.9A 2020-12-16 2020-12-16 多注册中心的融合方法、装置 Pending CN114640657A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011492820.9A CN114640657A (zh) 2020-12-16 2020-12-16 多注册中心的融合方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011492820.9A CN114640657A (zh) 2020-12-16 2020-12-16 多注册中心的融合方法、装置

Publications (1)

Publication Number Publication Date
CN114640657A true CN114640657A (zh) 2022-06-17

Family

ID=81944558

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011492820.9A Pending CN114640657A (zh) 2020-12-16 2020-12-16 多注册中心的融合方法、装置

Country Status (1)

Country Link
CN (1) CN114640657A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115562757A (zh) * 2022-10-20 2023-01-03 中电金信软件有限公司 数据处理方法、配置中心系统、电子设备及存储介质
WO2023246168A1 (zh) * 2022-06-23 2023-12-28 华为云计算技术有限公司 一种微服务迁移方法、装置及计算设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及系统
CN109246251A (zh) * 2018-11-13 2019-01-18 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CN110262902A (zh) * 2019-05-16 2019-09-20 杭州朗和科技有限公司 信息处理方法及系统、介质和计算设备
CN110601981A (zh) * 2019-09-11 2019-12-20 神州数码融信软件有限公司 服务路由方法、服务提供方云域及服务调用方云域
CN110636093A (zh) * 2018-06-25 2019-12-31 中兴通讯股份有限公司 微服务注册和发现方法、设备、存储介质以及微服务系统
CN110990047A (zh) * 2019-11-06 2020-04-10 北京云思畅想科技有限公司 用于多个微服务架构的融合方法及装置
CN111414230A (zh) * 2020-03-18 2020-07-14 北京达佳互联信息技术有限公司 服务管理系统、服务管理方法、服务器、存储介质
CA3168289A1 (en) * 2019-01-18 2020-07-23 10353744 Canada Ltd. Method and system for monitoring microservices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515759A (zh) * 2015-11-27 2016-04-20 国网信息通信产业集团有限公司 一种微服务注册方法及系统
CN110636093A (zh) * 2018-06-25 2019-12-31 中兴通讯股份有限公司 微服务注册和发现方法、设备、存储介质以及微服务系统
CN109246251A (zh) * 2018-11-13 2019-01-18 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CA3168289A1 (en) * 2019-01-18 2020-07-23 10353744 Canada Ltd. Method and system for monitoring microservices
CN110262902A (zh) * 2019-05-16 2019-09-20 杭州朗和科技有限公司 信息处理方法及系统、介质和计算设备
CN110601981A (zh) * 2019-09-11 2019-12-20 神州数码融信软件有限公司 服务路由方法、服务提供方云域及服务调用方云域
CN110990047A (zh) * 2019-11-06 2020-04-10 北京云思畅想科技有限公司 用于多个微服务架构的融合方法及装置
CN111414230A (zh) * 2020-03-18 2020-07-14 北京达佳互联信息技术有限公司 服务管理系统、服务管理方法、服务器、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李春阳;刘迪;崔蔚;李晓珍;李春岐;: "基于微服务架构的统一应用开发平台", 计算机系统应用, no. 04, 15 April 2017 (2017-04-15) *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023246168A1 (zh) * 2022-06-23 2023-12-28 华为云计算技术有限公司 一种微服务迁移方法、装置及计算设备
CN115562757A (zh) * 2022-10-20 2023-01-03 中电金信软件有限公司 数据处理方法、配置中心系统、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106933548B (zh) 全局信息获取、处理及更新、方法、装置和系统
CN106933550B (zh) 全局信息获取、处理及更新方法、装置和系统
CN110825448B (zh) 实现多业务模块相互调用的方法、装置、电子设备和存储介质
CN109582470B (zh) 一种数据处理方法及数据处理装置
CN114640657A (zh) 多注册中心的融合方法、装置
CN111786984B (zh) Pod通信连接方法、装置及电子设备、存储介质
CN111723161A (zh) 一种数据处理方法、装置及设备
CN111225018A (zh) 一种请求报文处理方法、装置和电子设备
CN112866421A (zh) 基于分布式缓存以及nsq的智能合约运行方法及装置
CN114884962A (zh) 负载均衡方法及装置和电子设备
CN111814020A (zh) 一种数据的获取方法和装置
CN108023920B (zh) 一种数据包传输方法、设备及应用接口
CN111464395B (zh) 一种创建区块链的方法、装置及可读存储介质
CN115914358A (zh) 消息推送方法、装置、电子设备及计算机存储介质
CN110581826B (zh) 一种核心网通信方法、装置及系统
CN107332679B (zh) 一种无中心信息同步方法及装置
CN112507193A (zh) 数据更新方法、装置、设备和存储介质
CN113986955B (zh) 业务链的确定方法、装置、电子设备及介质
CN111435320A (zh) 一种数据处理方法及其装置
CN110740151A (zh) 一种微服务调整方法、装置、服务器及计算机存储介质
CN111324368A (zh) 一种数据共享方法及服务器
CN116954474A (zh) 数据读取的方法、装置、设备、存储介质和程序产品
CN116257305A (zh) 一种数据治理方法、装置、计算机设备及存储介质
CN116841871A (zh) 针对区块链的测试方法、装置、设备和存储介质
CN117354321A (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