CN110377431A - 多注册中心场景下服务调用方法及装置 - Google Patents

多注册中心场景下服务调用方法及装置 Download PDF

Info

Publication number
CN110377431A
CN110377431A CN201910689099.3A CN201910689099A CN110377431A CN 110377431 A CN110377431 A CN 110377431A CN 201910689099 A CN201910689099 A CN 201910689099A CN 110377431 A CN110377431 A CN 110377431A
Authority
CN
China
Prior art keywords
service
registration
information
address
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.)
Granted
Application number
CN201910689099.3A
Other languages
English (en)
Other versions
CN110377431B (zh
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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN201910689099.3A priority Critical patent/CN110377431B/zh
Publication of CN110377431A publication Critical patent/CN110377431A/zh
Application granted granted Critical
Publication of CN110377431B publication Critical patent/CN110377431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种多注册中心场景下服务调用方法及装置,该方法包括:获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略;根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息;根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息;根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。本发明解决了现有技术服务消费者的负载均衡策略无法有效的实行的技术问题。

Description

多注册中心场景下服务调用方法及装置
技术领域
本发明涉及分布式服务框架缓存技术领域,具体而言,涉及一种多注册中心场景下服务调用方法及装置。
背景技术
现有分布式服务框架在灾备等级的要求下,会在同地或异地部署多套设备,因此会存在多套注册中心提供服务提供者信息列表。服务消费者在高可用的要求下,会向多套注册中心订阅服务提供者信息并拉取到本地缓存。在本地缓存中会包含2类信息:1)服务信息,该信息主要包含服务名、服务方法名、服务提供者地址、服务提供者区域和服务提供者园区;2)注册中心信息,该信息主要包括注册中心地址、注册中心区域和注册中心园区。服务信息会在注册中心信息中以列表的形式存在。在系统高可用的需求下,一个服务会有多个服务提供者,一个服务提供者会在多个注册中心进行注册,因此现有分布式服务框架注册/订阅结构如图2所示,在此结构下,分布式服务消费者会在缓存中首先缓存注册中心信息,然后再在注册中心中缓存该注册中心提供的所有服务信息。
上述缓存方案会导致客户端负载均衡不均。如图2所示,注册中心A因计划安排进行重启,重启完成后,服务提供者A至服务提供者B会向注册中心A发起服务注册。由于服务注册过程耗时较久,因此服务注册成功会有先后顺序,假设此时服务提供者A先注册成功,注册中心A将服务提供者A提供的服务信息推送到服务消费者。服务消费者发起服务调用,首先判断注册中心A属于同区域同园区优先选择,然后从注册中心A中获取服务的服务提供者信息只能获取到服务提供者A,此时所有的服务访问调用压力全部集中到了服务提供者A上。而实际情况是服务提供者B也能够提供服务,并通过注册中心B将自身的信息推送到了服务消费者的缓存中。这就导致了服务消费者的负载均衡策略无法有效的实行,仅能从服务提供者A上调用服务。
本发明为了解决上述技术问题中的至少一个,提出了一种多注册中心场景下服务调用方法及装置。
发明内容
本发明的主要目的在于提供一种多注册中心场景下服务调用方法及装置,以解决现有技术服务消费者的负载均衡策略无法有效的实行的技术问题。
为了实现上述目的,根据本发明的一个方面,提供了一种多注册中心场景下服务调用方法,该方法包括:
获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略;
根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息,其中,所述服务注册信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区以及服务注册地址;
根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息;
根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。
可选的,该方法还包括:
接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述服务信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区;
根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址。
可选的,所述注册中心地址变更信息包括:变更后的注册中心地址;
所述根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址,具体包括:
当所述变更后的注册中心地址为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为空。
可选的,所述根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址,具体还包括:
当所述变更后的注册中心地址不为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为所述变更后的注册中心地址。
可选的,所述负载均衡策略包括:轮询、加权轮询以及随机选择中的一种。
为了实现上述目的,根据本发明的另一方面,提供了一种多注册中心场景下服务调用装置,该装置包括:
配置调用单元,用于获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略;
服务筛选单元,用于根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息,其中,所述服务注册信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区以及服务注册地址;
负载均衡单元,用于根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息;
服务调用单元,用于根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。
可选的,该装置还包括:
变更信息获取单元,用于接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述服务信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区;
服务注册地址变更单元,用于根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址。
可选的,所述注册中心地址变更信息包括:变更后的注册中心地址;
所述服务注册地址变更单元,具体用于当所述变更后的注册中心地址为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为空。
可选的,所述服务注册地址变更单元,具体还用于当所述变更后的注册中心地址不为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为所述变更后的注册中心地址。
可选的,所述负载均衡策略包括:轮询、加权轮询以及随机选择中的一种。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述多注册中心场景下服务调用方法中的步骤。
为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述多注册中心场景下服务调用方法中的步骤。
本发明的有益效果为:本发明根据服务提供者信息合并多注册中心信息生成服务提供者提供的各服务的服务注册信息。当服务消费者在调用服务时,可以根据服务注册信息来确定服务提供者提供的服务是否可用,进而根据服务注册信息来进行服务筛选及执行负载均衡策略,避免了现有技术的根据注册中心缓存的服务信息来判断服务是否可用造成的服务消费者无法有效的实施负载均衡策略的问题。本发明消除了注册中心重启对服务消费者的影响。用户不再受到注册中心重启的影响,真正做到根据全量服务提供者信息实现负载均衡策略,提高了服务的高可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明实施例多注册中心场景下服务调用方法的第一流程图;
图2是现有技术分布式服务框架注册/订阅结构示意图;
图3是本发明实施例多注册中心场景下服务调用方法的第二流程图;
图4是本发明实施例变更服务注册信息中的服务注册地址的第一流程图;
图5是本发明实施例变更服务注册信息中的服务注册地址的第二流程图;
图6是本发明实施例多注册中心场景下服务调用装置的第一结构框图;
图7是本发明实施例多注册中心场景下服务调用装置的第二结构框图;
图8是本发明实施例计算机设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
需要说明的是,本发明的说明书和权利要求书中的服务提供者可以为服务器或服务器集群等;服务消费者可以为客户端、用户终端、服务器以及服务器集群等;注册中心可以为服务器或服务器集群等。
本发明实施例的多注册中心场景下服务调用方法通过重构了服务消费缓存的服务信息维度和负载均衡策略,将原来服务信息以列表的形式存在于注册中心信息中反转为注册中心信息以列表的形式存在于服务信息中,然后基于服务信息实现同区域同园区优先的负载均衡策略,基于注册中心推送的服务信息更新服务的可用性。
图1是本发明实施例多注册中心场景下服务调用方法的第一流程图,如图1所示,本实施例的多注册中心场景下服务调用方法包括步骤S101至步骤S104。
步骤S101,获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略。
在本发明实施例中,每个服务消费者都有对应的用户自定义配置的配置信息,用户可以根据服务消费者的实际情况来设置服务消费者调用的服务、服务消费者物理部署注册区域及注册园区、注册中心地址、服务消费者IP地址和服务消费者的负载均衡策略等配置信息。在本发明实施例中,该配置信息该设置可以以XML文件的格式进行存储。本步骤通过对配置信息进行解析,可以解析出服务消费者调用的服务的服务名、该服务消费者的注册区域和注册园区以及该服务消费者对应的负载均衡策略。
在本发明的一可选实施例中,XML文件格式的配置信息的一个示例可以如下所示:
<!--应用属性-->
<dubbo:application name="Hello"owner="F-DEMO"region=”sh”dc=”jd”/>
<!--注册中心-->
<dubbo:registry id="rg1"address="127.0.0.3"protocol="zookeeper"enable="true"/>
<dubbo:registry id="rg2"address="127.0.0.4"protocol="zookeeper"enable="true"/>
<!--服务调用协议-->
<dubbo:protocol name="Hello"host="127.0.0.1"port="28080"lb="rand"/>
在本发明的实施例中,上述配置信息可以以Map的形式在内存中保存起来,Key值为配置名称,Value值为配置的数值。当需要调用配置信息时,可以以其他装置传入的配置名称作为Key,查询出对应的配置数值返回给其他装置。
步骤S102,根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息,其中,所述服务注册信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区以及服务注册地址。
在本发明实施例中,根据服务提供者信息合并多注册中心信息生成服务提供者提供的各服务的服务注册信息。当服务消费者在调用服务时,可以根据服务注册信息来确定服务提供者提供的服务是否可用,进而根据服务注册信息来进行服务筛选及执行负载均衡策略。
在本发明实施例中,当服务提供者在注册中心对某个服务进行注册时,根据该服务的服务信息以及注册中心信息生成该服务的服务注册信息,并对该服务注册信息进行保存。在本发明的可选实施例中,生成该服务的服务注册信息的具体方法可以为,对服务信息进行扩展,在服务信息中加入服务注册地址一项,进而将注册中心信息中的注册中心地址填入该服务注册地址,生成该服务对应的服务注册信息。
在本发明的实施例中,服务信息包括:服务名、方法名、服务提供者地址、服务提供者区域、服务提供者园区等信息。注册中心信息包括:注册中心地址等信息。
在本发明实施例中,可以根据服务注册信息中的服务注册地址来判断服务是否可用,具体为,当服务注册信息中的服务注册地址为空时判断该服务不可用,当服务注册信息中的服务注册地址不为空表示该服务可用。当注册中心开始重启时,会将在该注册中心注册的所有服务的服务注册信息中的服务注册地址更新为空,以表示目前在该注册中心注册的所有服务暂不可用。当注册中心重启结束后,各服务提供者开始在该注册中心进行服务注册,在服务注册成功后将服务注册信息中的服务注册地址更新该注册中心的地址,以表示服务可用。
本发明在确定出当前可用的服务注册信息后,需要根据服务消费者需要调取的服务的服务名对当前可用的服务注册信息进行筛选,筛选出与需要调取的服务的服务名对应的服务注册信息。
本发明在确定出所有与服务名对应的服务注册信息后,还进一步对服务注册信息进行筛选,筛选的原理为保证服务消费者的园区和/或区域与服务注册信息对应的服务提供者的园区和/区域相同,以提供更优质的服务。在本发明的优选实施例中,筛选出所有与服务消费者的园区和区域均相同的服务提供者对应的服务注册信息。在本发明的其他可选实施例中,也可以筛选出仅与服务消费者的园区或区域相同的服务提供者对应的服务注册信息。进而根据筛选出的服务注册信息实行负载均衡策略。
在本发明的可选实施例中,本步骤具体可以包括:
1、筛选出所有服务注册地址不为空的服务注册信息;
2、根据服务名对通过步骤1筛选出的服务注册信息进行筛选;
3、根据服务提供者的园区和区域对通过步骤2筛选出的服务注册信息进行筛选,筛选出最终用于执行负载均衡策略的所有服务注册信息。
在本发明的实施例中,在生成服务注册信息后可以将服务注册信息以列表的存储格式进行储存,列表的存储格式可以为Conccrent Map类型,其Key值为服务名,Value值为服务注册信息各字段组成的URL字符串数组,其具体格式的举例可以如下:
dubbo://127.0.0.1:28079/com.icbc.dsf.Hi?_registryid=127.0.0.2:2181&anyhost=true&application=dsf&check=false&codec=dubbo&dc=jd&default.lazyinit=true&dsf=1.3.3&dst_app=dsf&heartbeat=60000&interface=com.icbc.dsf.Hi&logger=slf4j&methods=sayHi&organization=o?&owner=F-DSF&pid=435576&region=sh&register.ip=122.248.237.60&remote.timestamp=1558007408482&server=netty4&side=consumer&timestamp=1558007880134
在根据服务名对服务注册信息进行筛选时,可以以服务名为Key值在储存服务注册信息的Map列表中获取所有对应的服务注册信息的URL字符串数组。在根据园区和区域进行再次筛选时,可以循环解析URL字符串获取服务提供者区域(region)和服务提供者园区(dc)信息,如果和服务消费者的注册区域和注册园区相同,则加入临时数组当中;如果不同,则跳过该次循环直到结束。最后将临时数组返回,用于执行下一步负载均衡策略。
步骤S103,根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息。
在本发明的可选实施例中,负载均衡策略可以采用:轮询、加权轮询以及随机选择中的一种。
步骤S104,根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。
从以上描述可以看出,本发明实施例根据服务提供者信息合并多注册中心信息生成服务提供者提供的各服务的服务注册信息。当服务消费者在调用服务时,可以根据服务注册信息来确定服务提供者提供的服务是否可用,进而根据服务注册信息来进行服务筛选及执行负载均衡策略,避免了现有技术的根据注册中心缓存的服务信息来判断服务是否可用造成的服务消费者无法有效的实施负载均衡策略的问题。本发明消除了注册中心重启对服务消费者的影响。用户不再受到注册中心重启的影响,真正做到根据全量服务提供者信息实现负载均衡策略,提高了服务的高可用性。
图3是本发明实施例多注册中心场景下服务调用方法的第二流程图,如图3所示,本发明实施例的多注册中心场景下服务调用方法还包括步骤S201和步骤S202。
步骤S201,接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述服务信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区。
在本发明实施例中,可以根据各注册中心的地址和端口信息,通过ZkClient客户端建立与各注册中心的网络连接,在建立与各注册中心的网络连接时可以建立ZkClient客户端与注册中心进行1:1的对应关系。本发明通过定期向注册中心发送心跳报文,保持连接的可用性,同时接收注册中心推送的服务注册变更信息。在本发明的实施例中,获取到服务注册变更信息后,从服务注册变更信息中提取注册中心信息和服务信息,该注册中心信息为注册中心地址变更信息,服务注册变更信息的主要属性可以如下表1:
表1
上述表1中序号6的注册中心地址为变更后的注册中心地址,其根据情况可以为注册中心的IP地址或者为空。
在本发明可选实施例中,当注册中心开始重启时,此时会推送在该注册中心注册的所有服务的服务注册变更信息,此时服务注册变更信息中变更后的注册中心地址为空,以使将对应的服务注册信息中的服务注册地址更新为空,表示目前在该注册中心注册的所有服务暂不可用。当注册中心重启结束后,各服务提供者开始在该注册中心进行服务注册,在服务注册成功后推送该服务的服务注册变更信息,此时服务注册变更信息中变更后的注册中心地址为注册中心的地址,后续将对应的服务注册信息中的服务注册地址更新为该注册中心的地址,以表示服务可用。
步骤S202,根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址。
在本发明实施例中,在从服务注册变更信息中提取出服务信息和注册中心地址变更信息后,可以根据注册中心地址变更信息更新该服务信息对应的服务注册信息中的服务注册地址,具体在更新时可以根据注册中心地址变更信息修改或删除服务注册地址。
由上述实施例所述,本发明生成服务对应的服务注册信息的具体方法可以为,对服务信息进行扩展,在服务信息中加入服务注册地址一项,进而将注册中心信息中的注册中心地址填入该服务注册地址,生成该服务对应的服务注册信息。同理,在更新服务注册信息的服务注册地址时,需要用变更后的注册中心地址替换原服务注册地址,以完成服务注册地址的替换。
图4是本发明实施例变更服务注册信息中的服务注册地址的第一流程图,如图4所示,本发明实施例变更服务注册信息中的服务注册地址的流程包括步骤S301和步骤S302。
步骤S301,接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述注册中心地址变更信息包括:变更后的注册中心地址。
步骤S302,当所述变更后的注册中心地址为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为空。
在本发明可选实施例中,当注册中心开始重启时,此时会推送在该注册中心注册的所有服务的服务注册变更信息,此时服务注册变更信息中变更后的注册中心地址为空,以使将对应的服务注册信息中的服务注册地址更新为空,表示目前在该注册中心注册的所有服务暂不可用。
图5是本发明实施例变更服务注册信息中的服务注册地址的第二流程图,如图5所示,本发明实施例变更服务注册信息中的服务注册地址的流程还包括步骤S401和步骤S402。
步骤S401,接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述注册中心地址变更信息包括:变更后的注册中心地址。
步骤S402,当所述变更后的注册中心地址不为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为所述变更后的注册中心地址。
在本发明实施例中,当注册中心重启结束后各服务提供者在该注册中心进行服务注册时或者由于其他原因服务提供者需要在注册中心重新对服务进行注册时,推送该服务的服务注册变更信息,此时服务注册变更信息中变更后的注册中心地址为注册中心的地址,后续将对应的服务注册信息中的服务注册地址更新为该注册中心的地址,以表示服务可用。
从以上描述可以看出,本发明实施例根据服务提供者信息合并多注册中心信息生成服务提供者提供的各服务的服务注册信息,从而消除在注册中心重启的场景下,服务消费者客户端负载均衡策略无法实施的影响。其实现了至少如下技术效果:
1、消除了注册中心重启对服务消费者的影响。用户不在受到注册中心重启的影响,真正做到根据全量服务提供者信息实现负载均衡策略,提高了服务的高可用性;
2、提供了客户端缓存合并框架。减小了服务消费者客户端缓存服务提供者列表占用缓存的大小,提高了服务的稳定性。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于同一发明构思,本发明实施例还提供了一种多注册中心场景下服务调用装置,可以用于实现上述实施例所描述的多注册中心场景下服务调用方法,如下面的实施例所述。由于多注册中心场景下服务调用装置解决问题的原理与多注册中心场景下服务调用方法相似,因此多注册中心场景下服务调用装置的实施例可以参见多注册中心场景下服务调用方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本发明实施例多注册中心场景下服务调用装置的第一结构框图,如图6所示,本发明实施例多注册中心场景下服务调用装置包括:配置调用单元1、服务筛选单元2、负载均衡单元3以及服务调用单元4,配置调用单元1、服务筛选单元2、负载均衡单元3以及服务调用单元4依次连接。
配置调用单元1,用于获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略。
服务筛选单元2,用于根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息,其中,所述服务注册信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区以及服务注册地址。
负载均衡单元3,用于根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息。在本发明的实施例中,所述负载均衡策略包括:轮询、加权轮询以及随机选择中的一种。
服务调用单元4,用于根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。
图7是本发明实施例多注册中心场景下服务调用装置的第二结构框图,图7所示,本发明实施例多注册中心场景下服务调用装置还包括:变更信息获取单元5和服务注册地址变更单元6,变更信息获取单元5与服务注册地址变更单元6连接,服务注册地址变更单元6与服务筛选单元2连接,将服务注册地址变更后的服务注册信息送入服务筛选单元2。
变更信息获取单元5,用于接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述服务信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区。
服务注册地址变更单元6,用于根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址。
在本发明的实施例中,所述注册中心地址变更信息包括:变更后的注册中心地址。
所述服务注册地址变更单元6,具体用于当所述变更后的注册中心地址为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为空。
所述服务注册地址变更单元6,具体还用于当所述变更后的注册中心地址不为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为所述变更后的注册中心地址。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图8所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。
处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。
上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。
为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述多注册中心场景下服务调用方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(HardDisk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种多注册中心场景下服务调用方法,其特征在于,包括:
获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略;
根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息,其中,所述服务注册信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区以及服务注册地址;
根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息;
根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。
2.根据权利要求1所述的多注册中心场景下服务调用方法,其特征在于,还包括:
接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述服务信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区;
根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址。
3.根据权利要求2所述的多注册中心场景下服务调用方法,其特征在于,所述注册中心地址变更信息包括:变更后的注册中心地址;
所述根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址,具体包括:
当所述变更后的注册中心地址为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为空。
4.根据权利要求3所述的多注册中心场景下服务调用方法,其特征在于,所述根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址,具体还包括:
当所述变更后的注册中心地址不为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为所述变更后的注册中心地址。
5.根据权利要求1所述的多注册中心场景下服务调用方法,其特征在于,所述负载均衡策略包括:轮询、加权轮询以及随机选择中的一种。
6.一种多注册中心场景下服务调用装置,其特征在于,包括:
配置调用单元,用于获取服务消费者调用的服务的服务名、该服务消费者的注册区域和/或注册园区、该服务消费者对应的负载均衡策略;
服务筛选单元,用于根据所述服务名、所述服务消费者的注册区域和/或所述注册园区从储存的所有服务注册地址不为空的服务注册信息中筛选出对应的服务注册信息,其中,所述服务注册信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区以及服务注册地址;
负载均衡单元,用于根据所述负载均衡策略从筛选出的服务注册信息中确定出一个服务注册信息;
服务调用单元,用于根据确定出的服务注册信息中的服务提供者地址建立所述服务消费者与服务提供者的连接,以使所述服务消费者进行服务调用。
7.根据权利要求6所述的多注册中心场景下服务调用装置,其特征在于,还包括:
变更信息获取单元,用于接收注册中心发送的服务注册变更信息,所述服务注册变更信息包括:服务信息和注册中心地址变更信息,所述服务信息包括:服务名、服务提供者地址、服务提供者区域、服务提供者园区;
服务注册地址变更单元,用于根据所述注册中心地址变更信息更新所述服务信息对应的服务注册信息中的服务注册地址。
8.根据权利要求7所述的多注册中心场景下服务调用装置,其特征在于,所述注册中心地址变更信息包括:变更后的注册中心地址;
所述服务注册地址变更单元,具体用于当所述变更后的注册中心地址为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为空。
9.根据权利要求8所述的多注册中心场景下服务调用装置,其特征在于,所述服务注册地址变更单元,具体还用于当所述变更后的注册中心地址不为空时,将所述服务信息对应的服务注册信息中的服务注册地址更新为所述变更后的注册中心地址。
10.根据权利要求6所述的多注册中心场景下服务调用装置,其特征在于,所述负载均衡策略包括:轮询、加权轮询以及随机选择中的一种。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项方法中的步骤。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序在计算机处理器中执行时实现如权利要求1至5任意一项方法中的步骤。
CN201910689099.3A 2019-07-29 2019-07-29 多注册中心场景下服务调用方法及装置 Active CN110377431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910689099.3A CN110377431B (zh) 2019-07-29 2019-07-29 多注册中心场景下服务调用方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910689099.3A CN110377431B (zh) 2019-07-29 2019-07-29 多注册中心场景下服务调用方法及装置

Publications (2)

Publication Number Publication Date
CN110377431A true CN110377431A (zh) 2019-10-25
CN110377431B CN110377431B (zh) 2022-02-01

Family

ID=68256735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910689099.3A Active CN110377431B (zh) 2019-07-29 2019-07-29 多注册中心场景下服务调用方法及装置

Country Status (1)

Country Link
CN (1) CN110377431B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182062A (zh) * 2019-12-30 2020-05-19 苏宁云计算有限公司 服务多活调用方法、系统及电子设备
CN112769945A (zh) * 2021-01-19 2021-05-07 中国工商银行股份有限公司 分布式服务调用方法及装置
CN112910943A (zh) * 2019-12-04 2021-06-04 华为技术有限公司 一种服务提供方法、装置及系统
CN114564450A (zh) * 2022-03-04 2022-05-31 北京宇信科技集团股份有限公司 分布式文件系统的处理方法、装置、系统、介质和设备
CN114598743A (zh) * 2022-03-17 2022-06-07 上海小度技术有限公司 一种服务发现方法、装置、电子设备及存储介质
CN114640629A (zh) * 2022-03-30 2022-06-17 深圳前海环融联易信息科技服务有限公司 基于zookeeper的系统多注册中心匹配方法
WO2024169469A1 (zh) * 2023-02-15 2024-08-22 华为云计算技术有限公司 一种建立连接的方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385175B1 (en) * 1998-01-10 2002-05-07 Ncr Corporation Method and apparatus for routing service request/agent programs to service provided sites wherein said programs comprise of a list of the sites visited
CN105933444A (zh) * 2016-06-27 2016-09-07 焦点科技股份有限公司 基于注册中心和缓存机制协同的服务发现方法
CN106941508A (zh) * 2016-01-05 2017-07-11 阿里巴巴集团控股有限公司 服务调用方法、装置和系统
CN107317830A (zh) * 2016-04-26 2017-11-03 中兴通讯股份有限公司 一种服务发现的处理方法及装置
CN108632299A (zh) * 2017-03-15 2018-10-09 北京京东尚科信息技术有限公司 增强注册中心可用性的方法、装置、电子设备和存储介质
CN109413209A (zh) * 2018-12-17 2019-03-01 上海金融期货信息技术有限公司 一种基于双队列及注册中心的动态负载均衡方法和系统
CN109714319A (zh) * 2018-12-06 2019-05-03 深圳市中农网有限公司 微服务的管理系统、方法、装置、计算机设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385175B1 (en) * 1998-01-10 2002-05-07 Ncr Corporation Method and apparatus for routing service request/agent programs to service provided sites wherein said programs comprise of a list of the sites visited
CN106941508A (zh) * 2016-01-05 2017-07-11 阿里巴巴集团控股有限公司 服务调用方法、装置和系统
CN107317830A (zh) * 2016-04-26 2017-11-03 中兴通讯股份有限公司 一种服务发现的处理方法及装置
CN105933444A (zh) * 2016-06-27 2016-09-07 焦点科技股份有限公司 基于注册中心和缓存机制协同的服务发现方法
CN108632299A (zh) * 2017-03-15 2018-10-09 北京京东尚科信息技术有限公司 增强注册中心可用性的方法、装置、电子设备和存储介质
CN109714319A (zh) * 2018-12-06 2019-05-03 深圳市中农网有限公司 微服务的管理系统、方法、装置、计算机设备及存储介质
CN109413209A (zh) * 2018-12-17 2019-03-01 上海金融期货信息技术有限公司 一种基于双队列及注册中心的动态负载均衡方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
YI-HSING TSAI: "Network service connection management mechanism and network service platform", 《2013 IEEE INTERNATIONAL CONFERENCE ON MECHATRONICS AND AUTOMATION》 *
ZHIDA CHEN: "Distributed Publish/Subscribe Query Processing on the Spatio-Textual Data Stream", 《2017 IEEE 33RD INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 *
周永圣: "基于SpringCloud微服务架构的进销存管理系统的设计与实现", 《工业控制计算机》 *
庄鹏: "基于ZooKeeper的分布式服务中间件设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112910943A (zh) * 2019-12-04 2021-06-04 华为技术有限公司 一种服务提供方法、装置及系统
CN112910943B (zh) * 2019-12-04 2024-03-05 华为云计算技术有限公司 一种服务提供方法、装置及系统
CN111182062A (zh) * 2019-12-30 2020-05-19 苏宁云计算有限公司 服务多活调用方法、系统及电子设备
CN112769945A (zh) * 2021-01-19 2021-05-07 中国工商银行股份有限公司 分布式服务调用方法及装置
CN114564450A (zh) * 2022-03-04 2022-05-31 北京宇信科技集团股份有限公司 分布式文件系统的处理方法、装置、系统、介质和设备
CN114564450B (zh) * 2022-03-04 2023-02-28 北京宇信科技集团股份有限公司 分布式文件系统的处理方法、装置、系统、介质和设备
CN114598743A (zh) * 2022-03-17 2022-06-07 上海小度技术有限公司 一种服务发现方法、装置、电子设备及存储介质
CN114640629A (zh) * 2022-03-30 2022-06-17 深圳前海环融联易信息科技服务有限公司 基于zookeeper的系统多注册中心匹配方法
WO2024169469A1 (zh) * 2023-02-15 2024-08-22 华为云计算技术有限公司 一种建立连接的方法及装置

Also Published As

Publication number Publication date
CN110377431B (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
CN110377431A (zh) 多注册中心场景下服务调用方法及装置
CN108510389B (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
CN103841134B (zh) 基于api发送、接收信息的方法、装置及系统
EP4236207A1 (en) Data transmission method, apparatus and device in service integration, and storage medium and computer program product
WO2016011883A1 (zh) 数据资源的获取方法、装置和系统
US10320753B1 (en) Method and system for providing persona masking in a computer network
CN103945000B (zh) 一种负载均衡方法及负载均衡器
CN107317830A (zh) 一种服务发现的处理方法及装置
CN110601981A (zh) 服务路由方法、服务提供方云域及服务调用方云域
CN110808857B (zh) 实现Kubernetes集群的网络互通方法、装置、设备以及存储介质
CN107015989A (zh) 数据处理方法和装置
CN110196843A (zh) 一种基于容器集群的文件分发方法及容器集群
CN109474710B (zh) 获取信息的方法及装置
CN112769945B (zh) 分布式服务调用方法及装置
CN109587272A (zh) 一种微服务的优化方法、装置和电子设备
US11637914B2 (en) Multiple geography service routing
CN113973129A (zh) 一种支持多种注册中心微服务的网关
CN110391940A (zh) 服务地址的响应方法、装置、系统、设备和存储介质
CN114025000B (zh) 网络访问关系的建立方法、装置、设备及存储介质
CN116800825A (zh) 一种基于微服务拆分的调用方法、装置、设备及介质
CN107249038A (zh) 业务数据转发方法及系统
CN103209196A (zh) 门户接入方法及装置
CN113377652B (zh) 测试数据生成方法及装置
WO2024066503A1 (zh) 服务调用方法及装置
CN114285857B (zh) 负载均衡方法以及装置、系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant