CN115314557B - 一种全球跨区服务调用方法及系统 - Google Patents
一种全球跨区服务调用方法及系统 Download PDFInfo
- Publication number
- CN115314557B CN115314557B CN202210886596.4A CN202210886596A CN115314557B CN 115314557 B CN115314557 B CN 115314557B CN 202210886596 A CN202210886596 A CN 202210886596A CN 115314557 B CN115314557 B CN 115314557B
- Authority
- CN
- China
- Prior art keywords
- service
- region
- cross
- discovery
- cluster
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000000977 initiatory effect Effects 0.000 claims abstract description 7
- 230000008859 change Effects 0.000 claims description 25
- VYMDGNCVAMGZFE-UHFFFAOYSA-N phenylbutazonum Chemical compound O=C1C(CCCC)C(=O)N(C=2C=CC=CC=2)N1C1=CC=CC=C1 VYMDGNCVAMGZFE-UHFFFAOYSA-N 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 3
- 238000007726 management method Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000002955 isolation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- 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/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- 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/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种全球跨区服务调用方法及系统,方法包括接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息,若有缓存,则下发第二区对应的第二跨区服务信息;若没有缓存,则订阅跨区服务请求,向第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发第二发现服务集群反馈的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务。其中,发现服务集群之间自由连接,相互平等,某一区可以同时向其他区同时调用不同或者相同的服务,本实施例基于全球跨区调用服务场景,采用去中心化,网状结构,解决全球跨区服务调用的单点故障问题。
Description
技术领域
本发明涉及跨区服务调用领域,尤其涉及一种全球跨区服务调用方法及系统。
背景技术
YM在全球有多个根据服务集群划分的逻辑区域以及一个全球发现服务集群,而且在每个逻辑区域中的业务区域内有业务服务、发现服务以及数据存储中心。在这种架构下,跨区调用服务需要做到以下两件事情:跨区服务除了注册到自身逻辑区域的发现服务,还需要注册到全球发现服务集群,服务消费者需要往全球发现服务集群查询跨区服务。
目前全球跨区调用服务场景中存在单点故障问题,具体表现为,当逻辑区域A的跨区服务A向全球发现服务集群进行保活时,有可能因为网络问题导致保活失败,从而导致逻辑区域A的跨区服务A下线,而此时逻辑区域B服务来全球发现服务集群查询时,查询不到跨区服务A,导致业务异常,产生单点故障,从而降低跨区服务的可用性。
发明内容
本发明提供了一种全球跨区服务调用方法及系统,基于全球跨区调用服务场景,解决全球跨区服务调用的单点故障问题。
为了解决上述技术问题,本发明实施例提供了一种全球跨区服务调用方法及系统,包括:接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息;其中,第一区的第一发现服务集群和第二区的第二发现服务集群相互平等;
若没有缓存,则订阅跨区服务请求,向第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发第二发现服务集群反馈的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务;其中,反馈的第二跨区服务信息是第二发现服务集群根据长轮询而生成;
若有缓存,则下发第二区对应的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务。
实施本发明实施例,实现全球跨区调用服务时,即第一区的区内服务请求调用第二区内的第二服务的跨区服务请求,首先查询本区的发现服务中是否存在缓存,已有跨区服务的缓存则可以马上返回响应所需的跨区服务信息,当不存在缓存时,订阅跨区服务,发起跨区服务请求的长轮询,请求过程中查询到跨区服务信息,反馈跨区服务信息,完成跨区调用服务,各个逻辑区的发现服务集群之间通过长轮询方式形成网状结构关联,解决全球跨区服务调用的单点故障问题,原有传统的全球跨区服务调用需要全球发现服务集群,故呈现中心化架构,本方法中不存在全球发现服务集群,逻辑区域间的跨区调用的过程不需要再向全球发现服务集群发起请求,各个区的发现服务集群处于相互平等的并列关系,各发现服务集群之间不存在主从关系,实现去中心化,采用网状的分布式架构,避免单点故障,保证跨区服务的高可用。
作为优选方案,向第二区的第二发现服务集群发起跨区服务请求的长轮询,具体为:
向第二区的第二发现服务集群发起跨区服务请求的长轮询,使第二发现服务集群根据长轮询携带的第一服务版本,检查服务版本变动情况,并根据服务版本变动情况反馈第二跨区服务信息。
实施本发明实施例,检查服务版本变动情况,实时监控跨区服务变化,及时反馈跨区服务信息,实时性强。
作为优选方案,第二发现服务集群根据长轮询携带的第一服务版本,检查服务版本变动情况,并根据服务版本变动情况反馈第二跨区服务信息,具体为:第二发现服务集群检查第一服务版本与第二服务的服务版本是否发生变动;
若服务版本发生变动,第二发现服务集群反馈第二跨区服务信息;
若服务版本没有发生变动,则第二发现服务集群等待预设时间,在预设时间内,服务版本有变动,第二发现服务集群反馈第二跨区服务信息,若在预设时间内服务版本仍没有变动,第二发现服务集群反馈超时信息。
实施本发明实施例,根据携带服务版本与本地服务版本比较,监控跨区服务的变化,服务有变动,则立即反馈跨区服务信息,并开启超时管理,避免长时间无响应等待。
作为优选方案,下发第二发现服务集群反馈的第二跨区服务信息,具体为:将反馈的第二跨区服务信息更新到缓存,并将通知事件依次加入事件队列,定时从事件队列中查询通知事件,批量拉取通知事件,按服务维度去合并所有通知事件,推送订阅跨区服务请求,下发变更的跨区服务列表,根据变更的跨区服务列表,查询出订阅跨区服务的会话,根据订阅跨区服务的会话,下发第二发现服务集群的反馈第二跨区服务信息。
实施本发明实施例,实现实时同步另一区的跨区服务信息,形成副本缓存到本地,根据变更的跨区服务列表,查询出此次订阅跨区服务的会话,并反馈跨区服务信息,便于二次调用时直接使用缓存数据,节省调用查询时间,实现各个区域的发现服务集群之间低耦合,支持故障隔离,不影响其他区的跨区服务发现。
作为优选方案,订阅跨区服务请求,具体为:将跨区服务会话加入会话管理中,开启超时处理,检测订阅管理状态,开启订阅跨区服务的线程。
作为优选方案,在接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求之前,若本区内服务没有注册到本区发现服务集群上,根据跨区服务标识,将本区内服务注册到本区发现服务集群上。
实施本发明实施例,添加跨区服务标识,将本地服务注册到本区的发现服务,不需要将发现服务注册到全球发现服务集群,去中心化,避免单点故障。
作为优选方案,为了解决相同的技术问题,本发明实施例还提供了一种全球跨区服务调用系统,包括:若干个逻辑区,每个逻辑区包括发现服务集群、区内服务集群和负载均衡模块,其中,发现服务集群执行全球跨区服务调用方法;
其中,若干个逻辑区通过跨区服务列表同步联系,若干个发现服务集群之间自由连接,形成网状交互;
区内服务集群通过注册服务到达发现服务集群,发现服务集群通过发现服务到达区内服务集群,负载均衡模块通过源IP均衡到发现服务集群实例上。
作为优选方案,包括若干个逻辑区,每个逻辑区包括发现服务集群、区内服务集群和负载均衡模块;
其中,发现服务集群用于查询跨区服务;
区内服务集群用于提供本区的区内服务;
负载均衡模块用于访问流量分发的负载均衡服务。
作为优选方案,发现服务集群包括缓存判断单元和执行查询单元;
其中,缓存判断单元用于接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息;其中,第一区的第一发现服务集群和第二区的第二发现服务集群相互平等;
执行查询单元用于若有缓存,则下发第二区对应的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务;
若没有缓存,则向第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发第二发现服务集群反馈的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务;其中,反馈的第二跨区服务信息是第二发现服务集群根据长轮询而生成。
附图说明
图1:为本发明提供的全球跨区服务调用方法的一种实施例的流程示意图;
图2:为本发明提供的全球跨区服务调用方法的一种实施例的服务发现流程;
图3:为本发明提供的全球跨区服务调用方法的一种实施例的四个逻辑区的网状关联示意图;
图4:为本发明提供的全球跨区服务调用方法的一种实施例的服务注册流程;
图5:为本发明提供的全球跨区服务调用方法的一种实施例的跨区服务流程管理图;
图6:为本发明提供的全球跨区服务调用系统的另一种实施例的连接关系示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参照图1,为本发明实施例提供的一种全球跨区服务调用方法的流程示意图。本实施例的全球跨区服务调用方法适用于全球跨区调用服务,发现服务集群节点数量固定或跨区服务变动较少的场景,解决全球跨区服务调用的单点故障问题。本实施例通过各个逻辑区的发现服务集群之间通过长轮询方式形成网状结构关联,避免单点故障,保证跨区服务的高可用。该全球跨区服务调用方法包括步骤101至步骤103,各步骤具体如下:
步骤101:接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息;其中,第一区的第一发现服务集群和第二区的第二发现服务集群相互平等。
在本实施例中,Region-A的服务需要去跨区发现Region-B服务时,查询本区Region-A的发现服务,如图2所示服务发现流程,Conagent边车服务负责代理业务注册到发现服务查询请求本区发现服务,如需查询跨区服务,则查询服务信息中需携带Region标识字段。本区发现服务,根据Region标识进行不同处理。如果Region标识为空(本区默认为空)或指明目标Region,以单Region模式拉取服务列表,否则以拉取全部Region处理。在服务长轮询查询时,会携带长轮询的同步的服务版本,发现服务会根据该版本比对本地服务版本,如果其版本不一致,则会立即响应跨区服务列表。而如果一致,则会等待预设时间(包括但不限于60s)响应超时,或者这期间会有服务变动响应跨区服务列表,触发长轮询中断返回。Region-A的服务需要去跨区发现Region-B服务时,Region-A携带服务版本(服务名称、服务集群归属、项目归属以及区域归属等)查询限制条件,与Region-A本地服务版本比较,判断是否已存在B服务缓存,如果存在B服务缓存,根据缓存做出响应,第一次服务查询时,如果不存在B服务缓存,则立即触发B服务的跨区查询操作,而之后查询中知道本地有缓存的情况只会读取缓存,缓存的更新,由发现服务本身去实时长轮询。Region-A和Region-B是不同的逻辑区域,Region-A的发现服务集群和Region-B的发现服务集群是相互平等的并列关系。
作为本实施例的多个逻辑区间调用的一种举例,如图3所示的四个逻辑区的网状关联示意图,逻辑区Region-A、逻辑区Region-B、逻辑区Region-C和逻辑区Region-D的发现服务集群之间通过长轮询方式形成网状结构关联,发现服务集群-1、发现服务集群-2、和发现服务集群-3和发现服务集群-4之间相互同步,各个发现服务集群属于节点相互平等,属于并列关系,不存在主从关系,两两发现服务集群之间自由连接,在实际过程中,逻辑区的数量可能会更多,涉及的调用也会更加复杂,节点(发现服务集群)两两之间可以自由连接,通过跨区服务列表同步在跨区调用不同区的服务时实现不同区服务的同时调用。在跨区调用时,第一区(可以包含多种不同的服务)可以同时向第二区或者第三区、第四区同时调用某一服务的情况比如:第一区向第二区调用支付服务、第一区向第三区调用修改密码服务、第一区向第四区调用浏览某一网页服务等,上述服务调用可以同时发生,两两发现服务集群之间是并列并且可以自由连接,在跨区调用时形成去中心化的网状关联,每个发现服务集群之间高度自治,发现服务集群两两之间可以自由连接,所有发现服务集群之间不存在主从关系,每一个发现服务集群都可能称为阶段性的中心,但都不具备强制性的中心控制功能。实现去中心化,Region-A的服务需要去跨区发现Region-B服务时,不需要向全球发现服务集群发起请求。
可选的,在接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求之前,若本区内服务没有注册到本区发现服务集群上,根据跨区服务标识,将本区内服务注册到本区发现服务集群上。
在本实施例中,本区区内服务必须要注册到本区发现服务上,才能被其他服务发现和调用,所以在进行跨区服务请求之前,若本区内服务没有注册到本区发现服务集群上,需要根据跨区服务标识,将区内服务注册到发现服务集群,如图4所示服务注册流程,Conagent边车服务负责代理业务注册到发现服务查询请求本区发现服务,注册本地服务(本区内服务)到本区发现服务,如需要注册具有跨区能力的服务,需携带跨区服务标识。本区发现服务,根据注册服务的跨区服务标识进行不同处理,如携带跨区服务标识,则通知监听此服务的跨区长轮询,否则默认以本区服务处理。在服务请求正确,发现服务正常的情况,服务均会注册成功。
实施本发明实施例,添加跨区服务标识,将本地服务注册到本区的发现服务,不需要将发现服务注册到全球发现服务集群,去中心化,避免单点故障。
步骤102:若有缓存,则下发第二区对应的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务。
在本实施例中,Region-A的服务需要去跨区发现Region-B服务时,若有B服务缓存,则会立即响应跨区服务列表,根据跨区服务列表和跨区服务请求,下发Region-B服务的跨区服务信息,实现Region-A的服务跨区调用Region-B服务。若存在跨区服务查询Region-B的发现服务集群故障,导致与Region-A之间网络不可达的情况时,Region-A本地有缓存Region-A的跨区服务副本(B服务缓存),能够正常发现Region-A的跨区服务,避免单点故障。
步骤103:若没有缓存,则订阅跨区服务请求,向第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发第二发现服务集群反馈的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务;其中,反馈的第二跨区服务信息是第二发现服务集群根据长轮询而生成。
可选的,订阅跨区服务请求,具体为:将跨区服务会话加入会话管理中,开启超时处理,检测订阅管理状态,开启订阅跨区服务的线程。
可选的,向第二区的第二发现服务集群发起跨区服务请求的长轮询,具体为:向第二区的第二发现服务集群发起跨区服务请求的长轮询,使第二发现服务集群根据长轮询携带的第一服务版本,检查服务版本变动情况,并根据服务版本变动情况反馈第二跨区服务信息。
实施本发明实施例,检查服务版本变动情况,实时监控跨区服务变化,及时反馈跨区服务信息,实时性强。
可选的,第二发现服务集群根据长轮询携带的第一服务版本,检查服务版本变动情况,并根据服务版本变动情况反馈第二跨区服务信息,具体为:第二发现服务集群检查第一服务版本与第二服务的服务版本是否发生变动;
若服务版本发生变动,第二发现服务集群反馈第二跨区服务信息;
若服务版本没有发生变动,则第二发现服务集群等待预设时间,在预设时间内,服务版本有变动,第二发现服务集群反馈第二跨区服务信息,若在预设时间内服务版本仍没有变动,第二发现服务集群反馈超时信息。
在本实施例中,Region-A去Region-B发现服务跨区长轮询查询时,Region-B发现服务集群会查询服务版本包括但不限于服务名称和区域归属条件,携带长轮询的服务版本,若之前发生过长轮询查询,则携带上次长轮询的同步的服务版本,由于不知道Region-B的服务是否会有变更,所以会记录每次轮询同步过来的服务版本,以服务版本的变动作为判断服务是否变更的依据,发现服务会根据携带服务版本比较本地服务版本,若服务版本发生变动,则会立即响应跨区服务列表,根据跨区服务列表和跨区服务请求,反馈B服务信息。而如果服务版本没有发生变动,则会等待预设时间(包括但不限于60s)反馈超时信息,或者这期间会有服务变动响应跨区服务列表,根据跨区服务列表和跨区服务请求反馈B服务信息。
实施本发明实施例,根据携带服务版本与本地服务版本比较,监控跨区服务的变化,服务有变动,则立即反馈跨区服务信息,并开启超时管理,避免长时间无响应等待。
可选的,下发第二发现服务集群反馈的第二跨区服务信息,具体为:将反馈的第二跨区服务信息更新到缓存,并将通知事件依次加入事件队列,定时从事件队列中查询通知事件,批量拉取通知事件,按服务维度去合并所有通知事件,推送订阅跨区服务请求,下发变更的跨区服务列表,根据变更的跨区服务列表,查询出订阅跨区服务的会话,根据订阅跨区服务的会话,下发第二发现服务集群的反馈第二跨区服务信息。
实施本发明实施例,实现实时同步另一区的跨区服务信息,形成副本缓存到本地,根据变更的跨区服务列表,查询出此次订阅跨区服务的会话,并反馈跨区服务信息,便于二次调用时直接使用缓存数据,节省调用查询时间,实现各个区域的发现服务集群之间低耦合,支持故障隔离,不影响其他区的跨区服务发现。
在本实施例中,Region-A的服务需要去跨区发现Region-B服务时,如图5所示的跨区服务流程管理,包括长轮询管理、订阅管理、事件调度和会话管理。长轮询管理,长轮询请求到达,将会话加入会话管理中,开启超时处理以及检测订阅管理状态。如果整个轮询期间,都没有通知事件发生,回复超时;订阅管理,在轮询期间,与其他Region的长轮询,有收到正常数据响应,就更新本地数据且将通知事件依次加入事件队列;事件调度,定时从事件队列中查询通知事件,有通知事件,批量拉取出来,按服务维度去合并所有通知事件;会话管理,根据变动的跨区服务列表,查询出此次订阅跨区服务的会话,并推送跨区服务的全量数据。
实施本发明实施例,实现全球跨区调用服务时,即第一区的区内服务请求调用第二区内的第二服务的跨区服务请求,首先查询本区的发现服务中是否存在缓存,已有跨区服务的缓存则可以马上返回响应所需的跨区服务信息,当不存在缓存时,订阅跨区服务,发起跨区服务请求的长轮询,请求过程中查询到跨区服务信息,反馈跨区服务信息,完成跨区调用服务,各个逻辑区的发现服务集群之间通过长轮询方式形成网状结构关联,解决全球跨区服务调用的单点故障问题,原有传统的全球跨区服务调用需要全球发现服务集群,故呈现中心化架构,本方法中不存在全球发现服务集群,逻辑区域间的跨区调用的过程不需要再向全球发现服务集群发起请求,各个区的发现服务集群处于相互平等的并列关系,各发现服务集群之间不存在主从关系,实现去中心化,采用网状的分布式架构,避免单点故障,保证跨区服务的高可用。
实施例二
相应地,参见图6,图6是本发明提供的一种全球跨区服务调用系统的实施例二的连接关系示意图。全球跨区服务调用系统包括若干个逻辑区,每个逻辑区包括发现服务集群、区内服务集群和负载均衡模块,其中,发现服务集群执行全球跨区服务调用方法;
其中,若干个逻辑区通过跨区服务列表同步联系,若干个发现服务集群之间自由连接,形成网状交互;
区内服务集群通过注册服务到达发现服务集群,发现服务集群通过发现服务到达区内服务集群,负载均衡模块通过源IP均衡到发现服务集群实例上。
在本实施例中,逻辑区Region根据数据中心以及服务集群划分的一个逻辑区域概念,跨区服务指暴露给其他Region调用的服务,本区服务指当前Region的区内服务。各个逻辑区(包括但不限于Region-A、Region-B和Region-C)发现服务集群之间通过长轮询方式形成网状结构关联,各个发现服务集群(包括但不限于发现服务集群-1、发现服务集群-2和发现服务集群-3)之间相互同步,各个发现服务集群属于节点相互平等,属于并列关系,不存在主从关系,两两发现服务集群之间自由连接,订阅所需的跨区服务,并在本地存储,区内服务集群(Region内服务集群)通过注册服务到达各自对应的发现服务集群。负载均衡模块(SLB)可以设置在各个逻辑区内,靠服务自身实现负载均衡,也可以独立存在,由第三方组件实现,包括但不限于服务器负载均衡,负载均衡模块主要实现功能是面对负载外部多个请求,可以按照源IP均衡到发现服务集群各个实例上。可选的,每个逻辑区包括发现服务集群、区内服务集群和负载均衡模块,其中,发现服务集群用于查询跨区服务;区内服务集群用于提供本区的区内服务;负载均衡模块用于负载均衡服务。
可选的,发现服务集群包括缓存判断单元和执行查询单元;
其中,缓存判断单元用于接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息;其中,第一区的第一发现服务集群和第二区的第二发现服务集群相互平等;
执行查询单元用于若有缓存,则下发第二区对应的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务;
若没有缓存,则向第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发第二发现服务集群反馈的第二跨区服务信息,以使第一服务根据第二跨区服务信息,跨区调用第二服务;其中,反馈的第二跨区服务信息是第二发现服务集群根据长轮询而生成。
实现全球跨区调用服务时,即第一区的区内服务请求调用第二区内的第二服务的跨区服务请求,首先查询本区的发现服务中是否存在缓存,已有跨区服务的缓存则可以马上返回响应所需的跨区服务信息,当不存在缓存时,订阅跨区服务,发起跨区服务请求的长轮询,请求过程中查询到跨区服务信息,反馈跨区服务信息,完成跨区调用服务,各个逻辑区的发现服务集群之间通过长轮询方式形成网状结构关联,解决全球跨区服务调用的单点故障问题,采用网状的分布式架构,各发现服务集群之间相互平等,自由连接,实现去中心化,避免单点故障,保证跨区服务的高可用,具有高可用、实时性以及故障隔离等特性。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围。特别指出,对于本领域技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种全球跨区服务调用方法,其特征在于,包括:
接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据所述跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息;其中,第一区的第一发现服务集群和第二区的第二发现服务集群相互平等;
若没有缓存,则订阅所述跨区服务请求,向所述第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发所述第二发现服务集群反馈的第二跨区服务信息,以使所述第一服务根据所述第二跨区服务信息,跨区调用所述第二服务;其中,所述反馈的第二跨区服务信息是所述第二发现服务集群根据所述长轮询而生成;
所述向所述第二区的第二发现服务集群发起跨区服务请求的长轮询,具体为:
向所述第二区的第二发现服务集群发起跨区服务请求的长轮询,使所述第二发现服务集群根据所述长轮询携带的第一服务版本,检查服务版本变动情况,并根据服务版本变动情况反馈所述第二跨区服务信息;
若有缓存,则下发所述第二区对应的第二跨区服务信息,以使所述第一服务根据所述第二跨区服务信息,跨区调用所述第二服务。
2.如权利要求1所述的一种全球跨区服务调用方法,其特征在于,所述第二发现服务集群根据所述长轮询携带的第一服务版本,检查服务版本变动情况,并根据服务版本变动情况反馈所述第二跨区服务信息,具体为:所述第二发现服务集群检查所述第一服务版本与所述第二服务的服务版本是否发生变动;
若服务版本发生变动,所述第二发现服务集群反馈第二跨区服务信息;
若所述服务版本没有发生变动,则所述第二发现服务集群等待预设时间,在预设时间内,所述服务版本有变动,所述第二发现服务集群反馈第二跨区服务信息,若在预设时间内所述服务版本仍没有变动,所述第二发现服务集群反馈超时信息。
3.如权利要求1所述的一种全球跨区服务调用方法,其特征在于,所述下发所述第二发现服务集群反馈的第二跨区服务信息,具体为:将所述反馈的第二跨区服务信息更新到缓存,并将通知事件依次加入事件队列,定时从所述事件队列中查询所述通知事件,批量拉取所述通知事件,按服务维度去合并所有通知事件,推送订阅跨区服务请求,下发变更的跨区服务列表,根据所述变更的跨区服务列表,查询出订阅跨区服务的会话,根据订阅跨区服务的会话,下发所述第二发现服务集群的反馈第二跨区服务信息。
4.如权利要求1所述的一种全球跨区服务调用方法,其特征在于,所述订阅所述跨区服务请求,具体为:将跨区服务会话加入会话管理中,开启超时处理,检测订阅管理状态,开启订阅跨区服务的线程。
5.如权利要求1所述的一种全球跨区服务调用方法,其特征在于,在所述接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求之前,若本区内服务没有注册到本区发现服务集群上,根据跨区服务标识,将所述本区内服务注册到所述本区发现服务集群上。
6.一种全球跨区服务调用系统,其特征在于,包括若干个逻辑区,每个所述逻辑区包括发现服务集群、区内服务集群和负载均衡模块,其中,所述发现服务集群执行如权利要求1至5任意一项所述的全球跨区服务调用方法;
其中,所述若干个逻辑区通过跨区服务列表同步联系,若干个发现服务集群之间自由连接,形成网状交互;
所述区内服务集群通过注册服务到达所述发现服务集群,所述发现服务集群通过发现服务到达所述区内服务集群,所述负载均衡模块通过源IP均衡到发现服务集群实例上。
7.如权利要求6所述的一种全球跨区服务调用系统,其特征在于,所述每个所述逻辑区包括发现服务集群、区内服务集群和负载均衡模块;
其中,所述发现服务集群用于查询跨区服务;
所述区内服务集群用于提供本区的区内服务;
所述负载均衡模块用于负载均衡服务。
8.如权利要求7所述的一种全球跨区服务调用系统,其特征在于,所述发现服务集群包括缓存判断单元和执行查询单元;
其中,所述缓存判断单元用于接收第一区内的第一服务调用第二区内的第二服务的跨区服务请求,并根据所述跨区服务请求,判断是否缓存有跨区服务对应的跨区服务信息;其中,第一区的第一发现服务集群和第二区的第二发现服务集群相互平等;
所述执行查询单元用于若有缓存,则下发所述第二区对应的第二跨区服务信息,以使所述第一服务根据所述第二跨区服务信息,跨区调用所述第二服务;
若没有缓存,则向所述第二区的第二发现服务集群发起跨区服务请求的长轮询,并下发所述第二发现服务集群反馈的第二跨区服务信息,以使所述第一服务根据所述第二跨区服务信息,跨区调用所述第二服务;其中,所述反馈的第二跨区服务信息是所述第二发现服务集群根据所述长轮询而生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210886596.4A CN115314557B (zh) | 2022-07-26 | 2022-07-26 | 一种全球跨区服务调用方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210886596.4A CN115314557B (zh) | 2022-07-26 | 2022-07-26 | 一种全球跨区服务调用方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115314557A CN115314557A (zh) | 2022-11-08 |
CN115314557B true CN115314557B (zh) | 2023-11-07 |
Family
ID=83858249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210886596.4A Active CN115314557B (zh) | 2022-07-26 | 2022-07-26 | 一种全球跨区服务调用方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115314557B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774329B1 (en) * | 2006-12-22 | 2010-08-10 | Amazon Technologies, Inc. | Cross-region data access in partitioned framework |
CN102427480A (zh) * | 2011-12-31 | 2012-04-25 | 北京新媒传信科技有限公司 | 一种多应用服务平台系统中的应用访问方法 |
CN109286530A (zh) * | 2018-11-09 | 2019-01-29 | 浙江大学 | 一种跨界服务网络运行与支撑架构 |
US10277569B1 (en) * | 2015-12-03 | 2019-04-30 | Amazon Technologies, Inc. | Cross-region cache of regional sessions |
CN110365750A (zh) * | 2019-06-25 | 2019-10-22 | 苏宁云计算有限公司 | 服务注册系统及方法 |
CN110830461A (zh) * | 2019-10-28 | 2020-02-21 | 杭州涂鸦信息技术有限公司 | 基于tls长连接的跨区的rpc服务调用方法及系统 |
CN110888719A (zh) * | 2019-09-18 | 2020-03-17 | 广州市巨硅信息科技有限公司 | 一种基于web服务的分布式任务调度系统及方法 |
CN110971863A (zh) * | 2019-11-21 | 2020-04-07 | 厦门亿联网络技术股份有限公司 | 一种多点控制单元跨区会议运行方法、装置、设备及系统 |
CN111125170A (zh) * | 2019-12-22 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种微服务的跨服务数据获取方法、装置及微服务设备 |
CN111865900A (zh) * | 2020-06-03 | 2020-10-30 | 中邮消费金融有限公司 | 基于rpc协议的跨网络区域代理访问方法及系统 |
CN112711635A (zh) * | 2020-12-29 | 2021-04-27 | 深圳杰睿联科技有限公司 | 一种分布式物联设备跨区域数据一致性的方法和服务集群 |
CN112887415A (zh) * | 2021-02-03 | 2021-06-01 | 北京云上曲率科技有限公司 | 一种全球化分布式程序协调服务系统 |
CN113157441A (zh) * | 2021-03-24 | 2021-07-23 | 北京云上曲率科技有限公司 | 一种分布式去中心化的负载均衡方法及系统 |
CN114048046A (zh) * | 2021-11-08 | 2022-02-15 | 马上消费金融股份有限公司 | 一种服务的调用方法、装置及负载均衡设备 |
CN114461424A (zh) * | 2022-02-11 | 2022-05-10 | 中国工商银行股份有限公司 | 单元化部署架构下的单元间服务发现方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10805406B2 (en) * | 2018-06-21 | 2020-10-13 | Microsoft Technology Licensing, Llc | Zone redundant computing services using multiple local services in distributed computing systems |
US11321324B2 (en) * | 2019-12-31 | 2022-05-03 | Huawei Technologies Co., Ltd. | Systems and methods for cross-region data management in an active-active architecture |
-
2022
- 2022-07-26 CN CN202210886596.4A patent/CN115314557B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7774329B1 (en) * | 2006-12-22 | 2010-08-10 | Amazon Technologies, Inc. | Cross-region data access in partitioned framework |
CN102427480A (zh) * | 2011-12-31 | 2012-04-25 | 北京新媒传信科技有限公司 | 一种多应用服务平台系统中的应用访问方法 |
US10277569B1 (en) * | 2015-12-03 | 2019-04-30 | Amazon Technologies, Inc. | Cross-region cache of regional sessions |
CN109286530A (zh) * | 2018-11-09 | 2019-01-29 | 浙江大学 | 一种跨界服务网络运行与支撑架构 |
CN110365750A (zh) * | 2019-06-25 | 2019-10-22 | 苏宁云计算有限公司 | 服务注册系统及方法 |
CN110888719A (zh) * | 2019-09-18 | 2020-03-17 | 广州市巨硅信息科技有限公司 | 一种基于web服务的分布式任务调度系统及方法 |
CN110830461A (zh) * | 2019-10-28 | 2020-02-21 | 杭州涂鸦信息技术有限公司 | 基于tls长连接的跨区的rpc服务调用方法及系统 |
CN110971863A (zh) * | 2019-11-21 | 2020-04-07 | 厦门亿联网络技术股份有限公司 | 一种多点控制单元跨区会议运行方法、装置、设备及系统 |
CN111125170A (zh) * | 2019-12-22 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 一种微服务的跨服务数据获取方法、装置及微服务设备 |
CN111865900A (zh) * | 2020-06-03 | 2020-10-30 | 中邮消费金融有限公司 | 基于rpc协议的跨网络区域代理访问方法及系统 |
CN112711635A (zh) * | 2020-12-29 | 2021-04-27 | 深圳杰睿联科技有限公司 | 一种分布式物联设备跨区域数据一致性的方法和服务集群 |
CN112887415A (zh) * | 2021-02-03 | 2021-06-01 | 北京云上曲率科技有限公司 | 一种全球化分布式程序协调服务系统 |
CN113157441A (zh) * | 2021-03-24 | 2021-07-23 | 北京云上曲率科技有限公司 | 一种分布式去中心化的负载均衡方法及系统 |
CN114048046A (zh) * | 2021-11-08 | 2022-02-15 | 马上消费金融股份有限公司 | 一种服务的调用方法、装置及负载均衡设备 |
CN114461424A (zh) * | 2022-02-11 | 2022-05-10 | 中国工商银行股份有限公司 | 单元化部署架构下的单元间服务发现方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
一种服务网格动态信息聚合模型及其应用;王桂玲, 李玉顺, 姜进磊, 苗春雨, 许骏, 史美林;计算机学报(04);全文 * |
基于微服务架构的基础设施设计;蒋勇;;软件(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115314557A (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100549960C (zh) | 群集计算系统中改变的快速应用程序通知的方法和系统 | |
CN111615066B (zh) | 一种基于广播的分布式微服务注册及调用方法 | |
CA2533737C (en) | Fast application notification in a clustered computing system | |
US20030126196A1 (en) | System for optimizing the invocation of computer-based services deployed in a distributed computing environment | |
WO2016184175A1 (zh) | 数据库处理方法及装置 | |
US20080183991A1 (en) | System and Method for Protecting Against Failure Through Geo-Redundancy in a SIP Server | |
WO2021254331A1 (zh) | 资源管理方法、系统、代理服务器及存储介质 | |
CN112448987B (zh) | 一种熔断降级的触发方法、系统和存储介质 | |
JPH10187467A (ja) | リモートプロシジャコール処理方法 | |
EP1454456B1 (en) | Event notification over a communications network | |
CN114448686B (zh) | 一种基于微服务的跨网络通信装置与方法 | |
CN111309501A (zh) | 高可用分布式队列 | |
CN114629883B (zh) | 服务请求的处理方法、装置、电子设备及存储介质 | |
CN116708266A (zh) | 一种云服务拓扑图实时更新方法、装置、设备及介质 | |
CN111309691A (zh) | 基于总线架构的数据共享交换系统和交换方法 | |
US7624144B1 (en) | System and method for reducing data traffic associated with a messaging service in a clustered server environment | |
CN115314557B (zh) | 一种全球跨区服务调用方法及系统 | |
CN112256447A (zh) | 消息通知方法以及系统 | |
WO2012155648A1 (zh) | 一种北向通知管理接口装置及其管理方法 | |
Wang et al. | A toolkit for building dependable and extensible home networking applications | |
JP2002366381A (ja) | オブジェクトの動的入替え処理方法 | |
JP2000047890A (ja) | 分散オブジェクト管理システムとそのオブジェクト選択方法およびその処理プログラムを記録した記録媒体 | |
CN108616597B (zh) | 一种实现服务永不中断的分布式运行方法 | |
WO2000062158A2 (en) | Method and apparatus for managing communications between multiple processes | |
CN114844951B (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 |