CN113938520A - 一种服务注册方法、设备及存储介质 - Google Patents
一种服务注册方法、设备及存储介质 Download PDFInfo
- Publication number
- CN113938520A CN113938520A CN202111016168.8A CN202111016168A CN113938520A CN 113938520 A CN113938520 A CN 113938520A CN 202111016168 A CN202111016168 A CN 202111016168A CN 113938520 A CN113938520 A CN 113938520A
- Authority
- CN
- China
- Prior art keywords
- registration
- service
- registry
- target service
- network
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000006870 function Effects 0.000 claims abstract description 34
- 230000000977 initiatory effect Effects 0.000 claims abstract description 17
- 238000004891 communication Methods 0.000 claims description 28
- 230000005012 migration Effects 0.000 claims description 9
- 238000013508 migration Methods 0.000 claims description 9
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 230000006978 adaptation Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 14
- 230000009977 dual effect Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000004590 computer program Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种服务注册方法、设备及存储介质。在本申请实施例中,可在服务网格下,为网络代理组件配置扩展功能,在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,可利用目标服务关联的网络代理组件从目标服务发起的服务注册请求中获取注册信息,并基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。这样,可基于网络代理组件与目标服务之间的非侵入关系以及网络代理组件针对各类注册中心提供的语言适配功能,保证网络代理组件的无障碍代注册能力,从而在服务网格下,实现服务的无障碍注册,突破语言的限制。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种服务注册方法、设备及存储介质。
背景技术
微服务架构是一类将单一应用程序作为由众多小型服务构成之套件加以开发的方式,其中各项服务都拥有自己的进程并利用轻量化机制实现通信。在微服务架构下的服务的数量众多,可采用服务网格来实现服务间通信,服务之间可通过注册中心进行服务注册、服务发现,进而进行数据交换。
为了防止单一注册中心不稳定或者在需要进行注册中心迁移的情况下,会涉及到微服务的双注册问题,但是,目前只有JAVA等常用语言的微服务能够提供双注册的能力,而对于其它微服务则无法实现双注册,为服务间通信带来阻碍。
发明内容
本申请的多个方面提供一种服务注册方法、设备及存储介质,用以在服务网格下,实现服务的无障碍注册。
本申请实施例提供一种服务注册方法,包括:
利用网络代理组件监测目标服务发起的服务注册请求,所述服务注册请求中包含所述目标服务的注册信息,其中,所述网络代理组件和所述目标服务运行在服务网格下的不同容器中;
在需要将所述目标服务注册至第一注册中心且所述目标服务与所述第一注册中心之间语言不适配的情况下,利用所述网络代理组件从所述服务注册请求中获取所述注册信息;
利用所述网络代理组件基于所述注册信息向所述第一注册中心发起符合所述第一注册中心所需语言要求的代注册请求,以将所述目标服务注册至所述第一注册中心
本申请实施例还提供一种通信端,包括存储器、处理器和网络代理组件,所述通信端上部署有多个容器,所述网络代理组件和目标服务运行在服务网格下的不同的容器中;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述网络代理组件耦合,用于执行所述一条或多条计算机指令,以用于:
利用网络代理组件监测目标服务发起的服务注册请求,所述服务注册请求中包含所述目标服务的注册信息;
在需要将所述目标服务注册至第一注册中心且所述目标服务与所述第一注册中心之间语言不适配的情况下,利用所述网络代理组件从所述服务注册请求中获取所述注册信息;
利用所述网络代理组件基于所述注册信息向所述第一注册中心发起符合所述第一注册中心所需语言要求的代注册请求,以将所述目标服务注册至所述第一注册中心。
本申请实施例还提供一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行前述的服务注册方法。
在本申请实施例中,可在服务网格下,为网络代理组件配置扩展功能,在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,可利用目标服务关联的网络代理组件从目标服务发起的服务注册请求中获取注册信息,并基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。这样,可基于网络代理组件与目标服务之间的非侵入关系以及网络代理组件针对各类注册中心提供的语言适配功能,保证网络代理组件的无障碍代注册能力,从而在服务网格下,实现服务的无障碍注册,突破语言的限制。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一示例性实施例提供的一种服务注册方法的流程示意图;
图2为本申请一示例性实施例提供的在单注册场景下的服务注册方案逻辑示意图;
图3为本申请一示例性实施例提供的在双注册场景下的服务注册方案逻辑示意图;
图4为本申请另一示例性实施例提供的一种通信端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,微服务的注册会受到语言的限制,给服务间通信带来阻碍。为此,本申请的一些实施例中:可在服务网格下,为网络代理组件配置扩展功能,在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,可利用目标服务关联的网络代理组件从目标服务发起的服务注册请求中获取注册信息,并基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。这样,可基于网络代理组件与目标服务之间的非侵入关系以及网络代理组件针对各类注册中心提供的语言适配功能,保证网络代理组件的无障碍代注册能力,从而在服务网格下,实现服务的无障碍注册,突破语言的限制。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请一示例性实施例提供的一种服务注册方法的流程示意图。参考图1,该方法包括:
步骤100、利用网络代理组件监测目标服务发起的服务注册请求,服务注册请求中包含目标服务的注册信息,其中,网络代理组件和目标服务运行在服务网格下的不同容器中;
步骤101、在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,利用网络代理组件从服务注册请求中获取注册信息;
步骤102、利用网络代理组件基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。
本实施例提供的服务注册方法可应用于服务通信场景中,支持服务的无障碍注册。
为了更清楚地阐述本实施例提供的服务注册方案,以下先对本实施例中的涉及到的几个技术概念进行简要说明:
微服务架构:微服务架构是一类将单一应用程序作为由众多小型服务构成之套件加以开发的方式,其中各项服务都拥有自己的进程并利用轻量化机制实现通信。
服务网格(service mesh):是一种非侵入式的服务化框架,是用于处理服务间通信的专用基础设施层。它负责通过包含现代云原生应用程序的复杂服务拓扑来可靠地传递请求。实际上,服务网格通常通过一组轻量级网络代理来实现,这些代理与应用程序代码一起部署,而不需要感知应用程序本身。在服务网格下,每个服务集群可支持多个服务的运行,对于一个服务来说,可存在一个或多个容器组POD为其提供支持,不同容器组POD可能分布在不同的节点上,而对于一个容器组POD来说,可包含一个或多个容器。
网络代理组件,是服务网格中高性能的流量代理组件,本实施例中,可在每个容器组POD中部署网络代理组件,且网络代理组件和负载在容器组POD中的各服务运行在不同的容器中,也就是,网络代理组件所处的容器独立于POD中各个服务所处的容器,且网络代理组件可用于对POD中各个服务的流量进行管理。本实施例中,网络代理组件可采用服务网格下的特使Envoy组件。
注册中心,在服务网格下,服务提供方可将自己注册到注册中心,以供服务调用方能够方便地找到自己,其中,注册中心可用于提供注册功能并维护服务的注册信息。
基于此,本实施例提供的服务注册方案可支持服务的单注册和/或双注册,单注册可理解为向单个注册中心进行注册,双注册可理解为向两个或两个以上的注册中心进行注册。其中,双注册可能发生在防止单一注册不稳定的情况下,这种情况下,可在原有注册中心的基础上,在更多的注册中心中对进行服务注册;双注册还可能发生在注册中心迁移的情况下,这种情况下,可能需要将服务从原有注册中心迁移至新的注册中心,但是迁移并不是一簇而成,而是需要支持服务的迁移过渡态,在迁移过渡态下,需要同时在原有注册中心和新的注册中心进行服务注册。这样,在新的注册中心进行服务注册的过程中,有可能出现服务与注册中心之间语言不适配的问题。
这里,语言不适配可以是指服务的开发语言和注册中心中承担注册功能的SDK支持的语言不一致。实际应用中,从语言维度来说,常见的服务可包括但不限于Dubbo、SpringCloud、NodeJs、.net、Golang、C++、Python等多种语言类型的服务,其中,部分语言具有固定统一的框架,如JAVA类语言,因此通用性更高一些,而另一部分语言的通用性可较低;而注册中心也具有多样性,常见的注册中心可包括但不限于nacos、eureka、consul、zookeeper、etcd等,不同的注册中心中承担注册功能的SDK支持的语言可能存在差别,而注册中心仅能处理符合其语言要求的注册流量。这样,服务的开发语言的多样性和注册中心所支持语言的多样性,导致服务和注册中心之间可能出现语言不适配的问题,尤其是前述的双注册情况下,也即是,服务需要在新的注册中心进行注册的情况下,大概率会遇到语言不适配的问题,而导致无法注册。
为此,参考图1,在步骤100中,对网络代理组件来说,可监测目标服务发起的服务注册请求。在服务网格下,网络代理组件可用于对服务发生的流量进行监测,例如,可采用流量劫持等方式来进行流量监测,当然这仅是示例性的,本实施例中,可采用现有或未来针对网络代理组件提出的任意流量监测方案来对目标服务发起的流量进行监测。而在目标服务发起的流量中,网络代理组件可从中识别出服务注册请求,且仅对服务注册请求执行本实施例提供的服务注册方案。实际应用中,网络代理组件可在目标服务发起的流量中包含某注册中心地址或者其它能够标识流量类型为服务注册类流量的情况下,确定目标服务发起的流量为服务注册请求。
本实施例中,可判断目标服务发起的服务注册请求是否需要进行代注册。判断操作可由网络代理组件来执行,当然也由目标服务所在的通信端(例如,节点等)中的处理器来执行。一种示例性的判断方案可以是:在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,确定目标服务需要进行代注册。其中,目标服务可在服务注册请求中指向第一注册中心,例如,携带第一注册中心的相关信息(地址信息等)来示意需要注册至第一注册中心;当然,也可在网络代理组件中预先进行指定,以指定目标服务需要注册至第一注册中心,本实施例对如何示意目标服务需要注册至第一注册中心的实现方式不做限定。另外,本实施例中,可有网络代理组件或目标服务所在通信端中的处理器确定目标服务的开发语言(例如在服务注册请求中携带开发语言的标识)和第一注册中心中承担注册功能的SDK所支持的语言,以判断双方之间是否语言适配,本实施例对判断语言是否适配的实现方式也不做限定。
图2为本申请一示例性实施例提供的在单注册场景下的服务注册方案逻辑示意图。图3为本申请一示例性实施例提供的在双注册场景下的服务注册方案逻辑示意图。这里,参考图3,针对前述的单注册场景,第一注册中心可以是目标服务需要注册到的注册中心;针对前述的双注册场景,第一注册中心可以是目标服务的原有注册中心之外的任意一个新的注册中心。
在步骤101中,在确定目标服务需要进行代注册的情况下,对网络代理组件来说,可从服务注册请求中获取注册信息。其中,注册信息可包括但不限于服务名称、服务地址或目的地址等需要注册至注册中心的信息,在此不做穷举。
基于此,在步骤102中,对网络代理组件来说,可基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。这里,网络代理组件可对目标服务的注册信息进行封装,而且,在封装操作可按照第一注册中心的语言要求来执行,这样,封装后获得的代注册请求中可携带目标服务的注册信息,而且,代注册请求符合第一注册中心的语言要求,因此,通过代注册请求,可在目标服务和第一注册中心之间语言不适配的情况下,实现将目标服务成功注册至第一注册中心,这突破了目标服务和第一注册中心之间的语言障碍。
可选地,本实施例中,可利用网络代理组件按照第一注册中心中承担注册功能的SDK所需的语言要求,将注册信息封装为代注册请求;并通过调用SDK的API接口,向第一注册中心发起代注册请求;或者利用网络代理组件按照第一注册中心中承担注册功能的SDK所需的语言要求,将注册信息封装为代注册请求;并采用HTTP的方式,向第一注册中心发起代注册请求。当然,这仅是示例性的,本实施例对网络代理组件和第一注册中心之间采用的通信方式并不限于此。另外,两者之间的语言适配方式也并不限于此。
参考图2和图3,针对上述提及的单注册场景,本实施例中,可按照上述的代注册方案将目标服务注册至任意类型的注册中心,而不再受到语言的局限。针对上述提及的双注册场景,本实施例中,若目标服务需要向除第一注册中心之外的其它注册中心(以第二注册中心为例)进行注册,则对网络代理组件来说,可在第二注册中心有效的情况下,将服务注册请求转发至第二注册中心,以将目标服务注册至第二注册中心,其中,第二注册中心与目标服务之间语言适配,例如,第二注册中心可以是目标服务的原有注册中心。另外,本实施例中,目标服务可在服务注册请求中指向第一注册中心和第二注册中心,以示意需要在第一注册中心和第二注册中心中进行注册,当然,也可在网络代理组件中预先为目标服务指定需要进行注册的注册中心的相关信息,而由网络代理组件来确定目标服务所需注册的注册中心。而在第二注册中心无效的情况下,网络代理组件可拦截目标服务发起的服务注册请求,以禁止目标服务在第二注册中心中进行注册。这里,可通过判断目标服务是否需要在第二注册中心中进行注册来确定第二注册中心相对于目标服务的有效性。例如,对于注册中心迁移的场景来说,目标服务可能已经不需要在原注册中心中进行注册,而只需要在新的注册中心中进行注册,但是目标服务可能因为消息延时的问题还未获知该情况,但网络代理组件已经及时获知该情况,则网络代理组件可确定原注册中心相对于目标服务来说已经无效,可通过拦截的方式来禁止目标服务向原注册中心进行注册。这样,针对与目标服务之间语言适配的注册中心,本实施例中,网络代理组件可沿用原有的处理流程,承担转发工作,以支持目标服务向这类注册中心进行注册,还可按需对目标服务向这类注册中心发起的注册流量进行拦截,以避免目标服务的无效注册。而针对与目标服务之间语言不适配的注册中心,网络代理组件则可按照前述的代注册方案,为目标服务进行代注册。这样,在双注册场景下,本实施例提供的代注册方案不影响原有注册流程的执行,而可在原有注册流程之外,增加向其它任意注册中心进行服务注册的功能。
本实施例中,在完成目标服务的注册后,还可向注册中心发出心跳请求,以示意注册中心留存目标服务的注册信息。在单注册场景下,本实施例中,可由目标服务或网络代理组件向注册中心发出心跳请求;在双注册场景下,本实施例中,对网络代理组件来说,可在监测到目标服务向第二注册中心发出心跳请求的情况下,利用网络代理组件代替目标服务向第一注册中心发出心跳请求,而向第二注册中心发生心跳的方式可沿用原有方案,这样,可实现向第一注册中心和第二注册中心发起心跳请求,以示意第一注册中心和第二注册中心均留存目标服务的注册信息。其中,心跳请求可用于表征目标服务的运行状态,对注册中心来说,若在指定时长内接收到目标服务的心跳请求,则可继续留存目标服务的注册信息,而若在指定时长内未接收到目标服务的心跳请求,则可丢弃目标服务的注册信息。
据此,本实施例中,可在服务网格下,为网络代理组件配置扩展功能,在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,可利用目标服务关联的网络代理组件从目标服务发起的服务注册请求中获取注册信息,并基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。这样,可基于网络代理组件与目标服务之间的非侵入关系以及网络代理组件针对各类注册中心提供的语言适配功能,保证网络代理组件的无障碍代注册能力,从而在服务网格下,实现服务的无障碍注册,突破语言的限制。
在上述或下述实施例中,还可在目标服务与第一注册中心之间语言不适配的情况下,利用网络代理组件进行面向第一注册中心的服务发现。
本实施例中,可利用所述网络代理组件响应于目标服务发起的服务发现请求,从第一注册中心中获取指定服务的注册信息;利用网络代理组件将指定服务的注册信息调整为符合目标服务的语言要求的数据格式后,提供给目标服务。
在前述的单注册场景下,对网络代理组件来说,可响应于目标服务发起的服务发现请求,从第一注册中心中获取注定服务的注册信息,并按照目标服务的语言要求对指定服务的注册信息进行数据格式的转换后,再提供给目标服务。这样,目标服务可无障碍地解析出指定服务的注册信息,从而顺利地与指定服务之间展开通信。在此过程中,网络代理组件承担了代发现工作,帮助目标服务面向第一注册中心来发现指定服务。
在前述的双注册场景下,对网络代理组件来说,可响应于目标服务发起的服务发现请求,分别从第一注册中心和第二注册中心中获取指定服务的第一注册信息和第二注册信息;根据第一注册信息和第二注册信息,确定指定服务对应的服务发现信息;按照目标服务的语言要求将服务发现信息提供给目标服务。其中,目标服务可按照与第二注册中心之间的原有服务发现流量来发起服务发现请求,这样,服务发现请求是与第二注册中心的语言要求适配的,而与第一注册中心的语言则不适配,为此,可为网络代理组件扩展与第一注册中心进行语言适配的功能,从而可由网络代理组件代替目标服务面向第一注册中心进行服务发现。基于此,网络代理组件可将指定服务在不同注册中心中的注册信息进行融合,并将融合结果作为指定服务的服务发现信息,并可按照目标服务所需的数据格式对服务发现信息进行封装后,将封装后信息提供给目标服务。这样,目标服务可无障碍地解析出指定服务的服务发现信息(也即是注册信息),从而顺利地与指定服务之间展开通信。在此过程中,网络代理组件承担了面向第一注册中心的代发现工作、面向第二注册中心的转发工作以及注册信息的融合及封装等工作,帮助目标服务面向多个注册中心来发现指定服务。
另外,在双注册场景下,可能存在指定服务在第一注册中心和第二注册中心中的注册信息不一致的问题,例如,迁移场景中,指定服务可能已经不在原有注册中心中进行注册了,这样从原有注册中心中获取到的注册信息很可能不是准确的。为此,本实施例中,若第一注册中心为迁移工作的目的注册中心,则在第一注册信息有效的情况下,以第一注册信息作为指定服务对应的服务发现信息。对于网络代理组件来说,若第一注册中心为迁移工作的目的注册中心,则可在第一注册信息有效的情况下(也即是已经目标服务成功注册至第一注册中心),将按照从第二注册中心获取到的第二注册信息的数据格式,对从第一注册中心获取到的第一注册信息进行数据格式转换,并将转换后的第一注册信息作为指定服务的服务发现信息并提供给目标服务,而丢弃第二注册信息,从而保证指定服务的服务发现信息的准确性。
据此,本实施例中,可在服务发现阶段,利用网络代理组件实现服务与注册中心之间的语言适配,而且,在双注册场景下,可利用网络代理组件对指定服务在多个注册中心的注册信息进行融合,以更加准确地确定指定服务的注册信息,从而支持目标服务与指定服务之间的顺利通信。
另外,在上述各实施例中,可采用WebAssembly技术实现网络代理组件涉及到的扩展功能,如上述实施例中提及的获取目标服务的注册信息、发起代注册请求、服务发现过程中的语言适配等功能。这样,基于WebAssembly技术的加持,可有效保证网络代理组件的运行速度,而网络代理组件可只为同容器组POD中的服务提供代注册和代发现功能,这可有效保证网络代理组件的处理性能。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤100至步骤102的执行主体可以为设备A;又比如,步骤100和101的执行主体可以为设备A,步骤102的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的注册中心、注册信息等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4为本申请另一示例性实施例提供的一种通信端的结构示意图。如图4所示,该通信端可包括:存储器40、处理器41和网络代理组件42。参考图4,该通信端上可部署有多个容器,网络代理组件和目标服务运行在服务网格下的不同的容器中。
其中,存储器40可用于存储一条或多条计算机指令。并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器41与存储器40和网络代理组件42耦合,用于执行一条或多条计算机指令,以用于:
利用网络代理组件监测目标服务发起的服务注册请求,服务注册请求中包含目标服务的注册信息;
在需要将目标服务注册至第一注册中心且目标服务与第一注册中心之间语言不适配的情况下,利用网络代理组件从服务注册请求中获取注册信息;
利用网络代理组件基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求,以将目标服务注册至第一注册中心。
本实施例提供的通信端可以是云网络中的节点、虚拟机、云服务器等,本实施例对通信端的物理实现形式不做限定。在一种示例性的部署方案中,通信端中可部署有多个容器组POD,并可为每个容器组POD部署网络代理组件,而网络代理组件则可以边车Sidecar的形式,无侵入式地对其所对应的容器组POD中的各服务进行流量处理,实际应用中,网络代理组件可以是服务网格下的特使Envoy组件,其中,在容器组POD中,网络代理组件与服务运行在不同的容器中,这保证了网络代理组件的功能可与服务的开发语言无关,完全不同于传统的JAVAagent等侵入服务的注册方案。
本实施例中,可采用WebAssembly技术对网络代理组件进行功能扩展,这不仅可保证网络代理组件的扩展功能的运行速度,还可支持网络代理组件的扩展功能可适配多种类型的注册中心,也即是通过功能扩展,网络代理组件可具有同时适配多种语言的能力。
另外,本实施例中,可将网络代理组件的扩展功能配置在其过滤器中,以保证网络代理组件的扩展功能与服务注册请求及服务发现请求处于相同的处理链路中。这样,本实施例中,处理器41可通过所述网络代理组件包含的过滤器执行服务注册请求监测操作和代注册操作等扩展功能。
基于此,在一可选实施例中,处理器41还可用于:
若服务注册请求指向第一注册中心,则确定需要将目标服务注册至第一注册中心。
在一可选实施例中,若服务注册请求指向第二注册中心和第一注册中心,处理器41还可用于:
在第二注册中心有效的情况下,利用网络代理组件将服务注册请求转发至第二注册中心,以将目标服务注册至第二注册中心;
其中,第二注册中心与目标服务之间语言适配。
在一可选实施例中,处理器41还可用于:
在第二注册中心无效的情况下,拦截服务注册请求,以禁止目标服务向第二注册中心进行注册。
在一可选实施例中,处理器41还可用于:
在监测到目标服务向第二注册中心发出心跳请求的情况下,利用网络代理组件代替目标服务向第一注册中心发出心跳请求;
其中,心跳请求用于表征目标服务的运行状态。
在一可选实施例中,处理器41还可用于:
利用网络代理组件响应于目标服务发起的服务发现请求,分别从第一注册中心和第二注册中心中获取指定服务的第一注册信息和第二注册信息;
根据第一注册信息和第二注册信息,确定指定服务对应的服务发现信息;
利用网络代理组件按照目标服务的语言要求将服务发现信息提供给目标服务。
在一可选实施例中,处理器41在根据第一注册信息和第二注册信息,确定指定服务对应的服务发现信息的过程中,可用于:
若第一注册中心为迁移工作的目的注册中心,则在第一注册信息有效的情况下,以第一注册信息作为指定服务对应的服务发现信息。
在一可选实施例中,处理器41在利用网络代理组件基于注册信息向第一注册中心发起符合第一注册中心所需语言要求的代注册请求过程中,可用于:
利用网络代理组件按照第一注册中心中承担注册功能的SDK所需的语言要求,将注册信息封装为代注册请求;并通过调用SDK的API接口,向第一注册中心发起代注册请求;或者
利用网络代理组件按照第一注册中心中承担注册功能的SDK所需的语言要求,将注册信息封装为代注册请求;并采用HTTP的方式,向第一注册中心发起代注册请求。
值得说明的是,上述关于通信端的各实施例中的技术细节,可参考前述的方法实施例中的相关描述,为节省篇幅,在此不再赘述,但这不应造成本申请保护范围的损失。另外,图4中仅示意性给出部分组件,并不意味着通信端只包括图4所示组件
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由通信端执行的各步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种服务注册方法,包括:
利用网络代理组件监测目标服务发起的服务注册请求,所述服务注册请求中包含所述目标服务的注册信息,其中,所述网络代理组件和所述目标服务运行在服务网格下的不同容器中;
在需要将所述目标服务注册至第一注册中心且所述目标服务与所述第一注册中心之间语言不适配的情况下,利用所述网络代理组件从所述服务注册请求中获取所述注册信息;
利用所述网络代理组件基于所述注册信息向所述第一注册中心发起符合所述第一注册中心所需语言要求的代注册请求,以将所述目标服务注册至所述第一注册中心。
2.根据权利要求1所述的方法,还包括:
若所述服务注册请求指向所述第一注册中心,则确定需要将所述目标服务注册至所述第一注册中心。
3.根据权利要求1所述的方法,若所述服务注册请求指向第二注册中心和所述第一注册中心,所述方法还包括:
在所述第二注册中心有效的情况下,利用所述网络代理组件将所述服务注册请求转发至所述第二注册中心,以将所述目标服务注册至所述第二注册中心;
其中,所述第二注册中心与所述目标服务之间语言适配。
4.根据权利要求3所述的方法,还包括:
在所述第二注册中心无效的情况下,拦截所述服务注册请求,以禁止所述目标服务向所述第二注册中心进行注册。
5.根据权利要求3所述的方法,还包括:
在监测到所述目标服务向所述第二注册中心发出心跳请求的情况下,利用所述网络代理组件代替所述目标服务向所述第一注册中心发出心跳请求;
其中,所述心跳请求用于表征所述目标服务的运行状态。
6.根据权利要求3所述的方法,还包括:
利用所述网络代理组件响应于所述目标服务发起的服务发现请求,分别从所述第一注册中心和所述第二注册中心中获取指定服务的第一注册信息和第二注册信息;
根据所述第一注册信息和所述第二注册信息,确定所述指定服务对应的服务发现信息;
利用所述网络代理组件按照所述目标服务的语言要求将所述服务发现信息提供给所述目标服务。
7.根据权利要求6所述的方法,所述根据所述第一注册信息和所述第二注册信息,确定所述指定服务对应的服务发现信息,包括:
若所述第一注册中心为迁移工作的目的注册中心,则在所述第一注册信息有效的情况下,以所述第一注册信息作为所述指定服务对应的服务发现信息。
8.根据权利要求1所述的方法,所述利用所述网络代理组件基于所述注册信息向所述第一注册中心发起符合所述第一注册中心所需语言要求的代注册请求,包括:
利用所述网络代理组件按照所述第一注册中心中承担注册功能的SDK所需的语言要求,将所述注册信息封装为所述代注册请求;并通过调用所述SDK的API接口,向所述第一注册中心发起所述代注册请求;或者
利用所述网络代理组件按照所述第一注册中心中承担注册功能的SDK所需的语言要求,将所述注册信息封装为所述代注册请求;并采用HTTP的方式,向所述第一注册中心发起所述代注册请求。
9.根据权利要求1所述的方法,在所述服务网格下,所述网络代理组件采用特使Envoy组件。
10.一种通信端,包括存储器、处理器和网络代理组件,所述通信端上部署有多个容器,所述网络代理组件和目标服务运行在服务网格下的不同的容器中;
所述存储器用于存储一条或多条计算机指令;
所述处理器与所述存储器和所述网络代理组件耦合,用于执行所述一条或多条计算机指令,以用于:
利用网络代理组件监测目标服务发起的服务注册请求,所述服务注册请求中包含所述目标服务的注册信息;
在需要将所述目标服务注册至第一注册中心且所述目标服务与所述第一注册中心之间语言不适配的情况下,利用所述网络代理组件从所述服务注册请求中获取所述注册信息;
利用所述网络代理组件基于所述注册信息向所述第一注册中心发起符合所述第一注册中心所需语言要求的代注册请求,以将所述目标服务注册至所述第一注册中心。
11.根据权利要求10所述的通信端,所述网络代理组件包含过滤器,所述处理器具体用于:
通过所述网络代理组件包含的过滤器执行服务注册请求监测操作和代注册操作。
12.一种存储计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-9任一项所述的服务注册方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016168.8A CN113938520A (zh) | 2021-08-31 | 2021-08-31 | 一种服务注册方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111016168.8A CN113938520A (zh) | 2021-08-31 | 2021-08-31 | 一种服务注册方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113938520A true CN113938520A (zh) | 2022-01-14 |
Family
ID=79274921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111016168.8A Pending CN113938520A (zh) | 2021-08-31 | 2021-08-31 | 一种服务注册方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113938520A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827249A (zh) * | 2022-05-06 | 2022-07-29 | 阿里巴巴(中国)有限公司 | 网格代理扩展的方法和装置 |
CN115065720A (zh) * | 2022-06-15 | 2022-09-16 | 中电云数智科技有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
CN115378993A (zh) * | 2022-07-26 | 2022-11-22 | 上海道客网络科技有限公司 | 支持命名空间感知的服务注册与发现的方法和系统 |
WO2023246168A1 (zh) * | 2022-06-23 | 2023-12-28 | 华为云计算技术有限公司 | 一种微服务迁移方法、装置及计算设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2565334A1 (en) * | 2004-05-03 | 2005-11-17 | Level 3 Communications, Inc. | Registration redirect server |
US20090199172A1 (en) * | 2008-01-31 | 2009-08-06 | Business Objects, S.A. | Apparatus and method for importing language extension resources to support application execution |
US20110055810A1 (en) * | 2009-08-31 | 2011-03-03 | Dehaan Michael Paul | Systems and methods for registering software management component types in a managed network |
CN105763582A (zh) * | 2014-12-16 | 2016-07-13 | 阿里巴巴集团控股有限公司 | 用于切换服务注册设备的方法、设备及系统 |
US9609613B1 (en) * | 2015-09-25 | 2017-03-28 | At&T Intellectual Property I, L.P. | Method and apparatus for managing communication services using multiple subscription agreements |
WO2019067892A1 (en) * | 2017-09-29 | 2019-04-04 | Condvida Wireless, Llc | SERVICE REGISTRATION BASED ON PREFERENCES AND SERVICE CAPABILITY REQUIREMENTS |
CN110990081A (zh) * | 2019-12-10 | 2020-04-10 | 北京懿医云科技有限公司 | 微服务注册、发现方法及装置、存储介质及电子设备 |
CN112637126A (zh) * | 2020-11-23 | 2021-04-09 | 北京中电普华信息技术有限公司 | 一种服务注册方法及Pod |
CN112637332A (zh) * | 2020-12-22 | 2021-04-09 | 上海安畅网络科技股份有限公司 | 一种服务注册发现方法和系统 |
-
2021
- 2021-08-31 CN CN202111016168.8A patent/CN113938520A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2565334A1 (en) * | 2004-05-03 | 2005-11-17 | Level 3 Communications, Inc. | Registration redirect server |
US20090199172A1 (en) * | 2008-01-31 | 2009-08-06 | Business Objects, S.A. | Apparatus and method for importing language extension resources to support application execution |
US20110055810A1 (en) * | 2009-08-31 | 2011-03-03 | Dehaan Michael Paul | Systems and methods for registering software management component types in a managed network |
CN105763582A (zh) * | 2014-12-16 | 2016-07-13 | 阿里巴巴集团控股有限公司 | 用于切换服务注册设备的方法、设备及系统 |
US9609613B1 (en) * | 2015-09-25 | 2017-03-28 | At&T Intellectual Property I, L.P. | Method and apparatus for managing communication services using multiple subscription agreements |
WO2019067892A1 (en) * | 2017-09-29 | 2019-04-04 | Condvida Wireless, Llc | SERVICE REGISTRATION BASED ON PREFERENCES AND SERVICE CAPABILITY REQUIREMENTS |
CN110990081A (zh) * | 2019-12-10 | 2020-04-10 | 北京懿医云科技有限公司 | 微服务注册、发现方法及装置、存储介质及电子设备 |
CN112637126A (zh) * | 2020-11-23 | 2021-04-09 | 北京中电普华信息技术有限公司 | 一种服务注册方法及Pod |
CN112637332A (zh) * | 2020-12-22 | 2021-04-09 | 上海安畅网络科技股份有限公司 | 一种服务注册发现方法和系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827249A (zh) * | 2022-05-06 | 2022-07-29 | 阿里巴巴(中国)有限公司 | 网格代理扩展的方法和装置 |
WO2023213262A1 (zh) * | 2022-05-06 | 2023-11-09 | 阿里巴巴(中国)有限公司 | 网格代理扩展的方法和装置 |
CN115065720A (zh) * | 2022-06-15 | 2022-09-16 | 中电云数智科技有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
CN115065720B (zh) * | 2022-06-15 | 2024-02-13 | 中电云计算技术有限公司 | 一种自动适配多个外部注册中心到服务网格Istio的方法和装置 |
WO2023246168A1 (zh) * | 2022-06-23 | 2023-12-28 | 华为云计算技术有限公司 | 一种微服务迁移方法、装置及计算设备 |
CN115378993A (zh) * | 2022-07-26 | 2022-11-22 | 上海道客网络科技有限公司 | 支持命名空间感知的服务注册与发现的方法和系统 |
CN115378993B (zh) * | 2022-07-26 | 2023-07-21 | 上海道客网络科技有限公司 | 支持命名空间感知的服务注册与发现的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113938520A (zh) | 一种服务注册方法、设备及存储介质 | |
US10735311B2 (en) | Method for obtaining information about service chain in cloud computing system and apparatus | |
CN113612686A (zh) | 流量调度方法、装置及电子设备 | |
US11917720B2 (en) | Methods, systems, and computer readable media for enabling forwarding of subsequent network function subscription updates | |
US11638134B2 (en) | Methods, systems, and computer readable media for resource cleanup in communications networks | |
JP7507305B2 (ja) | サービス要求処理 | |
CN113254227B (zh) | 跨数据中心的远程方法调用的方法、系统 | |
WO2023229855A1 (en) | Methods, systems, and computer readable media for utilizing network function (nf) service attributes associated with registered nf service producers in a hierarchical network | |
US20230188625A1 (en) | Service request handling | |
US20240244414A1 (en) | Session binding relationship processing method and apparatus, electronic device, and readable medium | |
CN115243278A (zh) | 用于提高间接通信的可靠性的方法、系统及存储介质 | |
CN112311572B (zh) | 一种网元的测试方法、装置及电子设备 | |
CN116980480B (zh) | 基于微服务网络模型的熔断信息的处理方法及系统 | |
CN113918326A (zh) | 一种处理请求的方法及装置 | |
CN113676510A (zh) | 一种云存储方法、系统、设备及存储介质 | |
US20220019380A1 (en) | Methods providing network service restoration context and related service instance sets and storage resource nodes | |
CN111526044A (zh) | 一种交换机与服务器之间链路发现方法及设备、介质 | |
US12069126B2 (en) | Service request handling | |
US11979824B2 (en) | Service request handling | |
CN115665228B (zh) | 一种跨节点的服务发现方法及装置 | |
CN114466011B (zh) | 一种元数据服务请求方法、装置、设备及介质 | |
CN117879955A (zh) | 微服务通信方法、装置、计算机设备和存储介质 | |
CN118042449A (zh) | 网络存储功能故障检测及容灾方法及相关设备 | |
CN117527508A (zh) | 消息发送方法、装置、存储介质及电子设备 | |
CN116366706A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40066364 Country of ref document: HK |