首页> 中国专利> 一种服务注册方法、注册中心、系统及可读存储介质

一种服务注册方法、注册中心、系统及可读存储介质

摘要

本发明涉及一种服务注册方法、注册中心、系统及可读存储介质,该方法通过获取服务提供端的第二注册信息及与第二注册信息对应的映射关系数据,将第二注册信息转换为与服务消费端注册信息的格式相匹配的第一注册信息,从而使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接,从而解决了现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息格式不同,造成两者无法通信的问题。

著录项

  • 公开/公告号CN114827295A

    专利类型发明专利

  • 公开/公告日2022-07-29

    原文格式PDF

  • 申请/专利权人 北京奇艺世纪科技有限公司;

    申请/专利号CN202210444935.3

  • 发明设计人 陈恺;

    申请日2022-04-26

  • 分类号H04L69/08;H04L41/14;H04L67/14;

  • 代理机构北京细软智谷知识产权代理有限责任公司;

  • 代理人涂凤琴

  • 地址 100089 北京市海淀区海淀北一街2号10层、11层

  • 入库时间 2023-06-19 16:08:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-29

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及云计算技术领域,具体涉及一种服务注册方法、注册中心、系统及可读存储介质。

背景技术

微服务架构是互联网行业广泛采用的系统架构方式。在这种架构下,系统被拆分为多个可以独立开发、部署、运行的模块,每个模块称为一个微服务,通过网络对外提供一组相关的功能服务。每个微服务在运行时存在一个或者多个实例,每个实例可以运行在不同的服务器上,但都提供相同的功能,通过增加运行实例可以提升一个微服务的承载量。微服务之间利用网络通信进行功能组合,最终形成一个整体系统。

微服务间进行网络通信时,一个关键问题是服务消费方需要知道服务提供方所有实例所在的服务器网络地址和端口,以便建立连接发起请求,这个过程称为服务发现。通常服务消费方的服务发现还需要服务提供方经过一个被称为服务注册过程进行配合才能完成,这两个过程合称为服务注册发现。为了解决包括服务注册发现在内的各种微服务通信的共性问题,业内出现了很多微服务框架。一个系统内的多个微服务只要采用同一种微服务框架进行开发,就能方便地实现互相通信。因此,围绕每种微服务框架,形成了各自的微服务体系。

然而随着系统的发展和融合,大型互联网公司通常都会遇到不同微服务体系间需要互相通信的问题。除了通信协议的差异之外,不同微服务框架采用的服务注册发现模型(以下简称注册模型)也不尽相同,造成体系间的互通困难。例如知名开源微服务框架Spring Cloud采用的就是以应用为单位的注册模型(以下简称应用注册模型),而ApacheDubbo(2.7.5之前版本)采用的是以Java语言接口为单位的注册模型(以下简称接口注册模型),因此即使两者都支持HTTP通信协议,仍然无法使基于Dubbo(开源分布式服务框架)开发的服务消费者来消费基于Spring Cloud开发的服务提供者提供的服务,反之亦然。

发明内容

为至少在一定程度上克服相关技术中存在的问题,本发明提供一种服务注册方法、注册中心、系统及可读存储介质,以解决现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息的格式不同,造成两者无法通信的问题。

根据本发明实施例的第一方面,提供一种服务注册方法,适用于注册中心,包括:

获取服务提供端的第二注册信息;

获取与所述第二注册信息对应的映射关系数据;

基于所述映射关系数据生成与所述第二注册信息对应的第一注册信息,所述第一注册信息的格式与服务消费端的注册信息的格式相匹配;

存储所述第一注册信息,以使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接。

进一步地,所述获取服务提供端的第二注册信息之前,还包括:

获取第一注册模型所有实例的注册信息,并标记为第一注册信息;

获取第二注册模型所有实例的注册信息,并标记为第二注册信息;

基于所述第一注册信息和第二注册信息中相同服务的关联信息,建立所述第一注册信息和第二注册信息之间的映射关系,并将所有实例之间的映射关系存储为映射关系数据。

进一步地,所述方法,还包括:

监听注册中心中所有第一注册信息和第二注册信息的变化;

当第一注册信息和/或第二注册信息发生变化时,更新所述映射关系数据;

监听所述映射关系数据中所有映射关系的变化;

当映射关系发生变化时,更新所述映射关系数据。

进一步地,所述当第一注册信息和/或第二注册信息发生变化时,更新所述映射关系数据,包括:

若新增了第一注册信息,查找与所述第一注册信息对应的映射关系,并基于所述映射关系生成与所述第一注册信息对应的第二注册信息;

建立并存储所述第一注册信息对应到第二注册信息的映射关系;

和/或,

若新增了第二注册信息,查找与所述第二注册信息对应的映射关系,并基于所述映射关系生成与所述第二注册信息对应的第一注册信息;

建立并存储所述第二注册信息对应到第一注册信息的映射关系。

进一步地,所述方法,还包括:

若删除了第一注册信息,查找删除的第一注册信息对应的映射关系,将该映射关系及该映射关系下的第二注册信息删除;

和/或,

若删除了第二注册信息,查找删除的第二注册信息对应的映射关系,将该映射关系及该映射关系下的第一注册信息删除。

进一步地,所述映射关系发生变化时,更新所述映射关系数据,包括:

若新增了映射关系,基于所述映射关系生成与第一注册信息对应的第二注册信息,和/或,与第二注册信息对应的第一注册信息;

若删除了映射关系,查询所述映射关系下的第一注册信息和第二注册信息,将所述第一注册信息和第二注册信息皆删除。

进一步地,所述获取服务提供端的第二注册信息,包括:

通过人工操作获取第二注册信息;或者,

从服务提供端的微服务框架提供的接口查询第二注册信息。

根据本发明实施例的第二方面,提供一种注册中心,包括:

处理器和存储器,其中,

所述存储器中存储有可供处理器调用的计算机程序;

所述处理器通过调用所述存储器中存储的计算机程序,执行上述的服务注册方法。

根据本发明实施例的第三方面,提供一种服务注册系统,包括:

服务生产端、服务消费端,及,上述的注册中心;

所述服务生产端、服务消费端之间通信连接,且分别与所述注册中心通信连接。

根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有可擦写的计算机程序;

当所述计算机程序在计算机设备上运行时,使得所述计算机设备执行上述的服务注册方法。

本发明的实施例提供的技术方案可以包括以下有益效果:

通过获取服务提供端的第二注册信息及与第二注册信息对应的映射关系数据,将第二注册信息转换为与服务消费端注册信息的格式相匹配的第一注册信息,从而使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接,从而解决了现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息格式不同,造成两者无法通信的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种服务注册方法的流程图;

图2是根据一示例性实施例示出的一种服务注册系统的架构图;

图3是根据一示例性实施例示出的一种服务注册系统的示意框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

实施例一

图1是根据一示例性实施例示出的一种服务注册方法的流程图,如图1所示,该方法包括:

步骤S11、获取服务提供端的第二注册信息;

步骤S12、获取与所述第二注册信息对应的映射关系数据;

步骤S13、基于所述映射关系数据生成与所述第二注册信息对应的第一注册信息,所述第一注册信息的格式与服务消费端的注册信息的格式相匹配;

步骤S14、存储所述第一注册信息,以使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接。

需要说明的是,本实施例提供的技术方案,适用于异构注册模型的微服务体系间进行远程调用的场景。所述异构注册模型是指微服务体系不同的注册模型,即指上述的服务提供端和服务消费端的注册模型不同。

在具体实践中,本实施例提供的技术方案,以注册模型转换程序的形式加载在注册中心。所述服务生产端、服务消费端之间通信连接,且分别与所述注册中心通信连接。

在具体实践中,所述服务提供端的注册模型包括但不限于:接口注册模型、应用注册模型;所述服务消费端的注册模型包括但不限于:接口注册模型、应用注册模型。

当服务提供端为接口注册模型时,服务消费端可能为应用注册模型,两者注册模型不同,需要采用本实施例提供的这种服务注册方法实现通信;当服务提供端为应用注册模型时,服务消费端可能为接口注册模型,两者注册模型不同,需要采用本实施例提供的这种服务注册方法实现通信。

可以理解的是,本实施例提供的技术方案,通过获取服务提供端的第二注册信息及与第二注册信息对应的映射关系数据,将第二注册信息转换为与服务消费端注册信息的格式相匹配的第一注册信息,从而使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接,从而解决了现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息格式不同,造成两者无法通信的问题。

在具体实践中,步骤S11中“获取服务提供端的第二注册信息”,包括:

通过人工操作获取第二注册信息;或者,

从服务提供端的微服务框架提供的接口查询第二注册信息(例如,gRPC微服务体系可以查询应用-接口定义对应关系,自动获取自己的注册信息)。

本实施例提供的技术方案,多种注册信息获取方式,使得本实施例提供的技术方案可以适用多种应用场景,扩展了方案的适用性和实用性。

在具体实践中,步骤S11之前,还可以包括:

获取第一注册模型所有实例x

获取第二注册模型所有实例y

基于第一注册信息r(x

上述的i,j皆为自然数,符号“->”代表映射方向。

可以理解的是,在具体实践中,所述第一注册模型和第二注册模型都可能会成为服务提供端和服务消费端。例如,若第一注册模型想和第二注册模型通信,那么第一注册模型就是服务消费端,第二注册模型就是服务提供端;若第二注册模型想和第一注册模型通信,那么第二注册模型就是服务消费端,第一注册模型就是服务提供端。

为了便于理解本实施例提供的技术方案,现以第一注册模型为接口注册模型,第二注册模型为应用注册模型,解释说明本实施例提供的技术方案。

1)接口注册模型是通过接口,查找所有实例所在的服务器网络地址和端口。参见图2,接口注册模型的注册信息可以为:

interfaceA:{ip1:port1,ip2:port2,......}

interfaceB:{ip1:port1,ip2:port2,......}

interfaceC:{ip11:port11,ip12:port12,......}

......

其中,interfaceA代表接口A,interfaceB代表接口B,interfaceC代表接口C,port1代表端口1,ip1代表端口1的网络地址;port2代表端口2,ip2代表端口2的网络地址......。

2)应用注册模型是通过应用,查找所有实例所在的服务器网络地址和端口。参见图2,应用注册模型的注册信息可以为:

applicationM:{ip1:port1,ip2:port2,......}

applicationN:{ip11:port11,ip12:port12,......}

......

其中,application代表应用。

综上1)和2)可知,第一注册信息和第二注册信息中相同服务的关联信息为“所有实例所在的服务器网络地址和端口”。若要实现第一注册模型和第二注册模型之间的通信,需要基于“所有实例所在的服务器网络地址和端口”,建立第一注册信息对应到第二注册信息的映射关系数据c

P

P

P

......

根据图2的示例,c

P

P

P

......

为了便于理解本实施例提供的上述步骤S11~S14,现以第一注册模型为接口注册模型,第二注册模型为应用注册模型为例,解释说明如下:

当第二注册模型为服务提供端,第一注册模型为服务消费端,首先,第二注册模型会将自身当前时刻的所有实例的注册信息注册到注册中心,然后注册中心会将所有第二注册信息,根据对应的映射关系数据,逐条转换为第一注册信息,具体如下:

将第二注册信息applicationM:{ip1:port1,ip2:port2,......},根据映射关系数据c

interfaceA:{ip1:port1,ip2:port2,......}

interfaceB:{ip1:port1,ip2:port2,......}

将第二注册信息applicationN:{ip11:port11,ip12:port12,......},根据映射关系数据c

interfaceC:{ip11:port11,ip12:port12,......}

......

当服务消费端的接口interfaceA想去和服务提供端建立通信连接时,从所述注册中心中识别到注册信息interfaceA:{ip1:port1,ip2:port2,......}(由于该注册信息与服务消费端的注册信息的格式相匹配,能够被服务消费端识别),所以服务消费端直接基于所有实例所在的服务器网络地址和端口{ip1:port1,ip2:port2,......}即可实现与服务提供端建立通信连接。

当服务消费端的接口interfaceB想去和服务提供端建立通信连接时,从所述注册中心中识别到注册信息interfaceB:{ip1:port1,ip2:port2,......}(由于该注册信息与服务消费端的注册信息的格式相匹配,能够被服务消费端识别),所以服务消费端直接基于所有实例所在的服务器网络地址和端口{ip1:port1,ip2:port2,......}即可实现与服务提供端建立通信连接。

当服务消费端的接口interfaceC想去和服务提供端建立通信连接时,从所述注册中心中识别到注册信息interfaceC:{ip11:port11,ip12:port12,......}(由于该注册信息与服务消费端的注册信息的格式相匹配,能够被服务消费端识别),所以服务消费端直接基于所有实例所在的服务器网络地址和端口{ip11:port11,ip12:port12,......}即可实现与服务提供端建立通信连接。

.......以此类推,此处不再赘述。

当第一注册模型为服务提供端,第二注册模型为服务消费端,首先,第一注册模型会将自身当前时刻的所有实例的注册信息注册到注册中心,然后注册中心会将所有第一注册信息,根据对应的映射关系数据,逐条转换为第二注册信息,具体如下:

将第一注册信息interfaceA:{ip1:port1,ip2:port2,......},根据映射关系数据c

applicationM:{ip1:port1,ip2:port2,......}

将第一注册信息interfaceB:{ip1:port1,ip2:port2,......},根据映射关系数据c

applicationM:{ip1:port1,ip2:port2,......}

将第一注册信息interfaceC:{ip11:port11,ip12:port12,......},根据映射关系数据c

applicationN:{ip11:port11,ip12:port12,......}

......

当服务消费端的应用applicationM想去和服务提供端建立通信连接时,从所述注册中心中识别到注册信息applicationM:{ip1:port1,ip2:port2,......}(由于该注册信息与服务消费端的注册信息的格式相匹配,能够被服务消费端识别),所以服务消费端直接基于所有实例所在的服务器网络地址和端口{ip1:port1,ip2:port2,......}即可实现与服务提供端建立通信连接。

当服务消费端的应用applicationN想去和服务提供端建立通信连接时,从所述注册中心中识别到注册信息applicationN:{ip11:port11,ip12:port12,......}(由于该注册信息与服务消费端的注册信息的格式相匹配,能够被服务消费端识别),所以服务消费端直接基于所有实例所在的服务器网络地址和端口{ip11:port11,ip12:port12,......}即可实现与服务提供端建立通信连接。

.......以此类推,此处不再赘述。

在具体实践中,本实施例提供的这种服务注册方法,还包括:

监听注册中心中所有第一注册信息r(x

当第一注册信息r(x

例如,若新增了第一注册信息r(x

建立并存储所述第一注册信息对应到第二注册信息的映射关系p

例如,若新增了第二注册信息r(y

建立并存储所述第二注册信息对应到第一注册信息的映射关系p

例如,若删除了第一注册信息r(x

例如,若删除了第二注册信息r(y

在具体实践中,本实施例提供的这种服务注册方法,还包括:

监听所述映射关系数据c

当映射关系p

例如,若新增了映射关系p

例如,若新增了映射关系p

例如,若删除了映射关系p

例如,若删除了映射关系p

可以理解的是,本实施例提供的技术方案,基于接口注册模块的接口与应用注册模型的应用之间的对应关系,将应用注册模型下应用的注册信息转换为接口注册模型下该应用所有接口的注册信息,并将转换后的注册信息注册在注册中心,就可以使得服务消费端通过转换后的注册信息便可以知道服务提供端所有实例所在的服务器网络地址和端口,最终完成通信。

实施例二

根据一示例性实施例示出的一种注册中心,包括:

处理器和存储器,其中,

所述存储器中存储有可供处理器调用的计算机程序;

所述处理器通过调用所述存储器中存储的计算机程序,执行上述的服务注册方法。

需要说明的是,所述注册中心在具体实践中可以服务器、计算机设备、智能终端(例如,手机、平板电脑、智能手表等)等形式存在。

所述处理器包括但不限于:CPU、单片机、PLC控制器、FPGA控制器等。

所述存储器可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器;还可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。存储器可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。

可以理解的是,本实施例提供的技术方案,由于注册中心能够通过获取服务提供端的第二注册信息及与第二注册信息对应的映射关系数据,将第二注册信息转换为与服务消费端注册信息的格式相匹配的第一注册信息,从而使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接,从而解决了现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息格式不同,造成两者无法通信的问题。

实施例三

图3是根据一示例性实施例示出的一种服务注册系统的示意框图,如图3所示,该系统包括:

服务生产端101、服务消费端102,及,上述的注册中心103;

所述服务生产端101、服务消费端102之间通信连接,且分别与所述注册中心103通信连接。

可以理解的是,本实施例提供的技术方案,由于注册中心103能够通过获取服务提供端的第二注册信息及与第二注册信息对应的映射关系数据,将第二注册信息转换为与服务消费端注册信息的格式相匹配的第一注册信息,从而使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接,从而解决了现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息格式不同,造成两者无法通信的问题。

实施例四

根据一示例性实施例示出的一种计算机可读存储介质,其上存储有可擦写的计算机程序;

当计算机程序在计算机设备上运行时,使得计算机设备执行执行上述实施例一所述的服务注册方法。

本实施例公开的计算机可读存储介质包括但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可以理解的是,本实施例提供的技术方案,通过获取服务提供端的第二注册信息及与第二注册信息对应的映射关系数据,将第二注册信息转换为与服务消费端注册信息的格式相匹配的第一注册信息,从而使服务消费端在响应消费指令时,能够基于所述第一注册信息与所述服务提供端建立通信连接,从而解决了现有技术中服务提供端和服务消费端由于采用了不同注册模型导致注册信息格式不同,造成两者无法通信的问题。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号