CN114629953A - 基于代理的服务跨域调用方法和系统 - Google Patents
基于代理的服务跨域调用方法和系统 Download PDFInfo
- Publication number
- CN114629953A CN114629953A CN202011462922.6A CN202011462922A CN114629953A CN 114629953 A CN114629953 A CN 114629953A CN 202011462922 A CN202011462922 A CN 202011462922A CN 114629953 A CN114629953 A CN 114629953A
- Authority
- CN
- China
- Prior art keywords
- domain
- cross
- service
- proxy
- service instance
- 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 46
- 230000005540 biological transmission Effects 0.000 claims abstract description 57
- 238000007906 compression Methods 0.000 claims description 19
- 230000006835 compression Effects 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 53
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于代理的服务跨域调用方法和系统。所述系统包括两个以上的域,每个域具有注册中心和跨域代理;跨域代理用于为本域的客户端调用不同域的服务实例,为调用提供域间报文转发,并为注册中心转发多域间的服务实例同步信息;注册中心通过跨域代理在多域环境中提供域间服务实例同步;跨域代理包括代理模块和报文转发自适应模块;代理模块将来自本域注册中心的服务实例同步信息转发至该跨域服务调用信息系统中其他域的代理模块;代理模块还接收本域客户端的跨域调用请求,并转发至其他域的代理模块,以将跨域调用请求转发至该其他域的服务端。报文转发自适应模块用于在跨域的代理模块之间提供多种数据传输协议对应的多种报文转发方式。
Description
技术领域
本发明属于信息系统领域,尤其涉及一种基于代理的服务跨域调用方法和系统。
背景技术
随着信息系统的发展,应用规模日趋庞大,不同应用间的交互不断增多,传统信息系统存在大量重复的共性业务逻辑,大大降低了系统的可靠性、可维护性与可定制性。目前,采取将核心业务抽取出来成为服务,划分原有复杂的应用,以模块形式独立部署,能够实现服务的共享与重用。
然而随着有些成功企业业务的爆炸式增长,单域内的信息系统已经无法覆盖多地、全国设置全球的业务。并且考虑到现代信息系统中,数据对于企业的重要性,多地同时提供一套信息服务系统,不仅能够为各域内的用户提供个性化的服务,同时能够对数据进行异地备份,保证了数据的安全性。但由于每个域内都有自己独立的防护系统,彼此之间网络并不能互通,域之间的服务发现和调用变得十分困难。
于是,跨域代理成为跨域服务访问的一种常见解决方案。在各个域的网络出口处,部署跨域代理,将本域的服务实例信息和请求应答信息转到其他域的注册中心。在本域中存在服务实例的请求下,优先访问本域的服务实例;如果本域没有服务实例,也可以访问其他域的服务实例。这样既可以提高访问效率,又能够实现服务实例的异地主备。当某域的信息系统遭受意外而无法提供服务时,仍然能够通过跨域代理访问其他域的服务实例。
然而,针对目前的大型信息系统,跨域服务调用过程中存在不同域的网络相互隔离、服务实例无法跨域发现的问题,也即,在针对不同的域采用不同网络传输时,无法通过跨域服务实现服务实例的跨域发现,从而无法通过跨域代理访问其他域的服务实例。这是一个亟待解决的问题。
发明内容
鉴于现有技术中存在的问题,本发明提供了一种基于代理的服务跨域调用方法和系统,从而能够通过跨域代理访问其他域的服务实例。
本发明的一个方面,提供了一种基于代理的服务跨域调用系统,该系统包括:
包括两个以上的域,每个域内具有注册中心和跨域代理;
所述跨域代理用于在本域的客户端调用其他域的服务实例时为调用提供域间报文转发,并跨域在注册中心之间转发服务实例同步信息;
所述注册中心用于为本域的服务端提供服务发布,为本域客户端提供服务查询和订阅,并通过所述跨域代理在多域环境中提供域间服务实例同步;
其中,所述跨域代理包括代理模块和报文转发自适应模块;
所述代理模块用于将来自本域注册中心的服务实例同步信息转发至所述系统中其他域的代理模块,以经由所述其他域的代理模块转发给所述其他域的注册中心;所述代理模块还用于接收本域客户端的跨域调用请求,以基于所述跨域调用请求中携带的地址信息将跨域调用请求转发至所述系统中目标域的代理模块,以经由所述目标域的代理模块将所述跨域调用请求转发至所述目标域的服务端;
所述报文转发自适应模块用于确定要在不同域的跨域代理之间转发的报文所采用的数据传输协议,以自适应地从支持的多种数据传输协议中选择对应的数据传输协议用于报文转发。
在本发明一实施例中,所述每个域还具有:至少一个客户端和至少一个服务端;所述客户端用于向本域注册中心查询和订阅指定服务的服务实例信息,并在需要向其他域服务端请求调用服务实例时经由本域和目标域的跨域代理转发跨域调用请求至所述其他域服务端;所述服务端用于接收所述跨域代理转发的来自客户端的跨域调用请求,基于所述跨域调用请求来产生服务应答,并经由代理模块转发所述服务应答至发出跨域调用请求的客户端。
在本发明一实施例中,所述代理模块包括正向跨域代理和反向跨域代理,所述正向跨域代理用于接收本域内注册中心的服务实例同步信息,并跨域向目标域的反向跨域代理转发同步信息;所述正向跨域代理还用于接收来自本域客户端的跨域调用请求,将跨域调用请求转发至目标域的反向跨域代理,以由目标域的反向跨域代理将跨域调用请求转发至目标域的服务端;所述反向跨域代理用于将来自其他域的正向跨域代理的信息转发至本域的注册中心或服务端。
在本发明一实施例中,所述跨域调用请求中包括目标域中跨域代理地址。
在本发明一实施例中,所述多种数据传输协议包括:传输控制协议TCP、用户数据报协议UDP和超文本传输协议HTTP。
本发明的另一方面,还提供一种基于跨域代理的跨域服务调用信息系统实现的跨域服务调用方法,所述系统包括两个以上的域,每个域内具有注册中心和跨域代理,所述跨域代理包括代理模块和报文转发自适应模块;所述方法包括以下步骤:
通过本域的代理模块接收本域客户端的跨域调用请求,将跨域调用请求转发至目标域的代理模块,以经由所述目标域的代理模块将所述跨域调用请求转发至所述目标域内的服务端;
通过所述代理模块将来自本域注册中心的服务实例同步信息转发至所述中其他域的代理模块,以经由所述其他域的代理模块转发给所述其他域的注册中心,所述跨域调用请求中携带服务实例的服务名、跨域服务实例的地址和传输协议;
在不同域的跨域代理之间进行信息转发时,由所述报文转发自适应模块确定要在不同域的跨域代理之间转发的报文所采用的数据传输协议,以自适应地从支持的多种数据传输协议中选择对应的数据传输协议作为报文转发方式。
本发明一实施例中,所述报文转发自适应模块确定要在不同域的跨域代理之间转发的报文所采用的数据传输协议,以自适应地从支持的多种数据传输协议中选择对应的数据传输协议作为报文转发方式,包括:由所述报文转发自适应模块解析要转发的消息中的传输协议,基于解析出的传输协议从支持的多种数据传输协议中选择与解析出的数据传输协议作为报文转发方式。
本发明一实施例中,所述方法还包括:所述跨域代理确定网络状态,基于网络状态确定报文压缩等级,基于确定的报文压缩等级对要转发的信息进行压缩。
本发明一实施例中,所述客户端包括服务发现模块,所述方法还包括:由注册中心向本域客户端的服务发现模块推送服务实例的上下线信息,以使得服务发现模块在确定当前客户端服务实例下线时断开链接并在缓存中选择一个在线的服务实例进行服务调用。
本发明一实施例中,所述方法还包括:由注册中心接收服务端发送的服务实例注册信息,基于所述服务实例注册信息进行服务实例注册,并基于来自服务端的心跳信息维持在线状态,所述服务实例注册信息包括:服务实例的服务名、访问地址和传输协议信息。
本发明的基于代理的服务跨域调用方法和系统,能够解决跨域服务调用过程中的发布、订阅问题。
更进一步地,本发明的基于代理的服务跨域调用方法和系统,还能够在跨域访问过程中自动调节压缩等级。
本发明的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本发明的实践而获知。本发明的目的和其它优点可以通过在书面说明及其权利要求书以及附图中具体指出的结构实现到并获得。
本领域技术人员将会理解的是,能够用本发明实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本发明能够实现的上述和其他目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1为单域内服务发布与调用流程示意图。
图2为本发明一实施例中跨域的服务调用系统调用流程示意图。
图3为本发明一实施例中服务跨域调用方法的流程示意图。
图4为本发明一实施例中跨域服务实例上线流示意程。
图5为本发明一实施例中跨域服务实例下线流示意程。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在此,还需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
图1所示为单域(如域A)内的服务发布与调用流程示意图。如图1所示,该流程中的服务发布与调用系统包括:注册中心、服务端和客户端。
注册中心用于为服务端提供服务发布并为客户端提供服务查询和订阅,实现服务发现功能,并在多域环境中负责域间服务实例的同步。客户端包括服务发现模块,该服务发现模块用于向注册中心查询和订阅指定服务的服务实例信息,并在服务实例发生变化时,接收变更信息,客户端可根据自己的策略选择一个服务实例进行服务调用。服务端用于提供服务访问能力,并向本域的注册中心注册服务实例名称和访问地址等信息。
注册中心为服务端提供的服务发布功能体现在:服务端在启动服务实例时,服务实例会自动向注册中心发送注册信息(图1中的步骤1),注册信息包括服务实例访问地址和服务名称、服务实例名称等,注册中心接收注册信息并进行持久化,同时通知客户端,即向客户端发送服务实例更新信息(如图1中的步骤2)。
注册中心为客户端提供的服务查询和订阅功能体现在:客户端向注册中心发出查询请求(如图1中的步骤3),请求查询当前在线的服务实例并放入缓存,当服务实例的信息发生变化后,注册中心将变化信息推送给客户端。
服务端能够提供服务访问能力,服务端接收到客户端的跨域调用请求(如图1中的步骤4)后进行处理,服务端应用处理完请求后,将服务应答信息返回给客户端(如图1中的步骤5)。
基于图1所示的服务发布与调用流程是在域A内进行的。若仅基于图1所示的结构,不同域之间并不能彼此互通。为此,本发明实施例提出了图2所示意的基于跨域代理的跨域服务调用信息系统及调用流程。
图2示出了不同的域:域A和域B。图2中示出的基于跨域代理的跨域服务调用信息系统中,包括两个以上的域(图中仅示出了两个),各域内均包括:注册中心、服务端和客户端,此外还包括跨域代理,图2所示的系统属于SOA(Service Oriented Architecture,面向服务的架构)。由于本发明实施例意在强调基于跨域代理的跨域服务调用,因此在图2的所示的域A中未示出服务端,在域B中未示出服务端,仅仅是为了便于描述跨域调用而省略了对它们的显示。
在图2所示的域A和域B中,各注册中心用于为服务端提供服务发布、为客户端提供服务查询和订阅,并在多域环境中提供域间服务实例的同步功能,每个域的注册中心将自己域的服务实例信息主动发送到其他域的注册中心,为实现客户端能够发现其他域的服务实例提供支持。更具体地,注册中心为服务端提供服务发布包括:服务端启动服务实例时,服务端的服务实例自动向注册中心发送注册信息,注册信息包括服务实例访问地址、服务实例名称等信息,此时注册中心接收注册信息并进行持久化,同时通知客户端。注册中心为客户端提供服务查询和订阅包括:客户端向注册中心查询当前在线的服务实例并放入缓存,当服务实例的信息发生变化后,注册中心将变化信息推送给客户端;注册中心在多域环境中提供域间服务实例同步包括:每个域的注册中心通过跨域代理将自己域的服务实例信息主动发送到其他域的注册中心,为实现客户端能够发现其他域的服务实例提供支持。
域A和域B中的客户端均包括服务发现模块,客户端的服务发现模块提供服务订阅能力,用于向注册中心查询和订阅指定服务的服务实例信息,服务发现模块订阅服务之后,注册中心中服务实例的上下线信息会及时推送给服务发现模块。在服务实例发生变化时,服务发现模块从注册中心接收变更信息,由此更新客户端的服务实例缓存,客户端可根据自己的策略选择一个服务实例进行服务调用。例如,如果当前客户端链接的服务实例下线,服务发现模块自动断开已有的链接,并在缓存中选择一个在线的服务实例进行服务调用。
域A和域B中的服务端用于提供服务访问,并向本域的注册中心注册服务实例名称和访问地址等信息。更具体地,服务端提供向本域注册中心注册的功能,向本域的注册中心注册包括服务实例的服务名、访问地址和传输协议等信息。在服务实例注册成功后,服务端定时向本域注册中心发送心跳信息,以维持在线状态;此外,服务端提供服务访问能力,服务端接收客户端的请求,并且在服务端处理完请求后,将应答信息返回给客户端。
在本发明实施例中,跨域代理用于为客户端调用不同域的服务实例,为调用提供报文转发,并为注册中心转发多域间的服务实例同步信息。跨域代理提供域间注册中心的服务实例的转发,每个域内部署一个注册中心,注册中心之间的在线实例信息通过跨域代理转发。
更具体地,本发明实施例中,各域内的跨域代理包括:代理模块和报文转发自适应模块。代理模块用于将来自本域注册中心的服务实例同步信息转发至该跨域服务调用信息系统中另一域的代理模块,以经由所述另一域的代理模块转发给所述另一域的注册中心;所述代理模块还用于接收本域客户端的跨域调用请求,将跨域调用请求转发至该跨域服务调用信息系统中另一域的代理模块,以经由所述另一代理模块将跨域调用请求转发至其本域的服务端。所述报文转发自适应模块用于在跨域的代理模块之间提供多种数据传输协议对应的多种报文转发方式,作为示例,该多种报文转发方式包括但不限于采用传输控制协议(TCP)、采用用户数据报协议(UDP)和采用超文本传输协议(HTTP)等的传输方式,从而可以支持在军网环境中使用满足安全要求的传输协议。通常,TCP是满足军网安全要求的传输协议,UDP更多是支持民用网络传输。本发明实施例中,通过将报文转发自适应模块设计为支持多种传输协议,从而可以使得即便不同的域采用不同网络传输,也可以通过跨域服务实现服务实例的跨域发现,从而通过跨域代理访问其他域的服务实例。
总的来说,在本发明实施例中,基于跨域代理的跨域服务调用信息系统实现的跨域服务调用方法包括以下步骤,如图3所示:
步骤S31,通过代理模块将来自本域注册中心的服务实例信息转发至该跨域服务调用信息系统中其他域的代理模块,以经由其他域的代理模块转发给其他域的注册中心。
本步骤S31为服务实例在域间同步的步骤。
针对图2的系统,对于域A中的代理模块来说,本域即为域A,其他域即为域B;对于域B中的代理模块来说,本域即为域B,其他域即为域A。域A的代理模块能够将域A的注册中心的服务实例信息转发至域B的代理模块,以由域B的代理模块转发给域B的注册中心。反之亦然,即域B的服务实例信息也可以分别经由域B和域A的代理模块转发至域A。由此可实现服务实例信息在域间的同步。
步骤S32,通过代理模块接收本域客户端的跨域调用请求,将跨域调用请求转发至目标域的代理模块,以经由目标域的代理模块将跨域调用请求转发至目标域内的服务端。
该步骤S32为服务实例的跨域调用步骤。
当客户端想要调用服务时,会首先向本域的注册中心查询服务的所有在线服务实例,并同时订阅服务,该查询和订阅服务通过现有的流程就可以实现,在此不再赘述。由于步骤S31能够实现服务实例在注册中心间的同步,注册中心可将系统内所有当前在线的服务实例返回给客户端,当服务实例的在线状态发生变化时,本域内的注册中心也会将服务实例的状态及时推送到客户端。客户端根据路由策略,会优先选择本域内的服务实例。当本域内的服务实例不存在时,客户端会将跨域服务实例的地址放到跨域调用请求报文头中,其地址就是其他域(如域B)的跨域代理地址,客户端将请求报文经由本域的跨域代理转发至其他域的跨域代理;其他域的跨域代理收到客户端的请求报文后,解析请求中的服务名,通过本域(域B)内的服务注册中心查询服务实例地址并调用,并接收服务实例的应答结果,并将应答报文直接返回给其他域的跨域代理;由其他域的跨域代理经由发出请求的客户端所在域的跨域代理直接转发给客户端;至此客户端收到并解析应答报文,将请求结果传给用户。
在步骤S31和S32的报文跨域传输过程中,报文中可以携带所支持的传输协议,由本跨域代理中的报文转发自适应模块从支持的多种网络传输方式中选择与报文中的数据传输协议对应的报文转发方式进行报文的转发。报文转发自适应模块提供的多种传输方式,包括但不限于TCP、UDP、HTTP等,由此可支持在军网环境中使用满足安全要求的传输协议。
在本发明一实施例中,报文转发自适应模块还提供报文压缩能力,其可以根据当前的网络性能,自动设置网络报文的压缩等级。也即,在复杂的网络环境下,报文转发自适应模块还可以基于网络状态自动选择合适报文压缩等级,从而兼顾报文的压缩大小和网络传输速度。例如,事先设置网络状态等级和网络报文的压缩等级的对应关系,基于网络性能等级来选择网络报文的压缩等级,对网络报文进行压缩后转发。作为示例,如果当前网络性能比较差,可以将网络报文的压缩等级设置得高一些,使得压缩后的网络报文大小比较小,这样虽然压缩过程花的时间相对较长,但可以在消耗较小的网络资源的情况下进行报文的转发;而如果网络性能比较好,则可以将网络报文的压缩等级设置得低一些,这样可以快速压缩,并且能够利用当前的网络条件顺畅地进行报文转发。
在本发明一些实施例中,代理模块包括正向跨域代理和反向跨域代理。其中,正向跨域代理用于接收所在域(本域)内注册中心的服务实例同步信息,并跨域向另一域(或称域外)的反向跨域代理转发同步信息,以由所述域外的反向跨域代理将服务实例同步信息同步到所述另一域的注册中心。此外,正向跨域代理还用于接收来自客户端的跨域调用请求,并将跨域调用请求转发至域外的反向跨域代理,以由域外的反向跨域代理将跨域调用请求转发至其本域的服务端。报文转发自适应模块用于在跨域的正向跨域代理和反向跨域代理之间提供多种数据传输协议对应的多种报文转发方式。
在本发明一些实施例中,跨域代理可以在服务网关中实现。服务网关中可设置分别按照多种传输协议进行数据传输的模块。
在图2所示的图中示出了服务实例同步流程和服务实例跨域调用流程。其中,服务实例同步流程包括步骤11-14,其中:
步骤11,域A的服务端提供向本域(域A)的注册中心注册的功能,向本域的注册中心提供包括服务名A'、服务实例名、访问地址和传输协议等注册信息,同时,服务端定时向注册中心发送心跳信息。
步骤12,域A的注册中心将服务A'的状态信息通知给本域A的跨域代理。
例如,在域A如果某个服务至少有一个服务实例在线,则域A的注册中心将该服务的在线状态通知到域A内的跨域代理。
注册中心在一定时间内如果没有收到服务实例的心跳信息(或者说服务实例心跳超时),则注册中心认为服务实例已经退出,将服务实例的下线状态信息通知到域A内的跨域代理。
步骤13,域A的跨域代理例如通过广播等方式将报文转发至其他域(域B)的跨域代理。
例如,域A内的跨域代理将域A的域标识和服务标识广播到其他域(域B)的跨域代理。
步骤14,域B的跨域代理收到广播消息后,将广播消息通知本域(域B)内的注册中心。
域B内的注册中心B收到跨域代理的消息后,在注册中心上为服务A'增加一条服务实例的地址,其地址信息为域A的跨域代理地址,并被标记为跨域的服务实例。
同样,如果域A内服务A'的所有服务实例下线后,通过前面4个步骤11-14的过程,通知到域B内的注册中心,域B内注册中心上对应服务A'的实例下线。
对于域B,通过同样的方式可以将其域内服务的状态信息通知给域A的注册中心。
以上服务实例同步流程包括跨域服务实例上线流程与跨域服务实例下线流程。图4为具体跨域服务实例上线流程的示例,图5为具体跨域服务实例下线流程的示例。如图4所示,服务实例进程启动后,会自动向本域的注册中心发送注册信息,注册自己的服务实例地址、支持的请求协议等信息,并定时向注册中心发送心跳信息(步骤11-11至步骤11-13,对应于图2中的步骤11)。注册中心收到服务实例的注册消息后,可以在注册中心的界面展示服务实例信息,统计所有在线服务实例信息,并监控服务实例的健康状态。同时注册中心会向本域的跨域代理发送本域内在线的服务实例信息(步骤12-1,对应于图2中的步骤12),跨域代理转发在线服务实例信息到其他跨域代理(步骤13-1,对应于图2中的步骤13)。对于每一跨域代理,当其收到其他域同步过来的实例信息后,将在线服务实例信息推送到该跨域代理所在域的注册中心(步骤13-1,对应于图2中的步骤13)。这样所有域的注册中心就可以展示所有在线的服务实例信息(步骤15-1)。
如图5所示,服务实例进程退出后,服务实例进程的心跳会停止。注册中心在一定时间内如果没有收到服务实例的心跳信息,则认为服务实例已经退出,在注册中心的界面显示服务实例下线(步骤11-21至步骤11-23,对应于图2中的步骤11)。注册中心收到服务实例状态信息的变更后,向本域的跨域代理发送本域内已经下线的服务实例信息(步骤12-2,对应于图2中的步骤12),跨域代理转发下线服务实例信息到其他跨域代理(步骤13-2,对应于图2中的步骤13)。对于每一跨域代理,当收到其他域同步过来的实例信息后,将下线服务实例信息推送到跨域代理所在域的注册中心(步骤14-2,对应于图2中的步骤14)。这样所有域的注册中心就都能感受到服务实例下线(步骤15-2)。
再参照图2,其示出的服务实例跨域调用流程包括:
步骤21,当一个域(如域B)内的客户端想要调用服务A'时,首先向本域内的注册中心查询服务A'的服务实例,并同时订阅服务A'。
注册中心(如域B的注册中心)将服务A'所有当前在线的服务实例返回给本域内的客户端。
当服务实例的在线状态发生变化时,本域内的注册中心会将服务实例的状态及时推送到客户端。
步骤22,客户端(如域B内的客户端)根据路由策略,会优先选择本域内的服务实例。当本域内的服务实例不存在时,客户端会将跨域服务实例的地址放到跨域调用请求(或称跨域服务请求)报文头中,其地址就是其他域(如域A)的反向跨域代理地址,客户端将请求报文发往本域内的正向跨域代理。
步骤23,正向跨域代理(如域B内的正向跨域代理)收到客户端的跨域调用请求时,解析请求头中反向跨域代理的地址,将请求报文发送到他域(如域A)的反向跨域代理。
步骤24,反向跨域代理(域A的反向跨域代理)收到客户端的请求报文后,解析请求中的服务名,通过本域内的服务注册中心查询服务实例地址并调用。
步骤25,反向跨域代理(域A的反向跨域代理)接收服务实例的应答结果,并将应答报文直接返回给正向跨域代理(域B的正向跨域代理)。
步骤26,正向跨域代理(域B的正向跨域代理)接收反向跨域代理返回的应答报文,并直接转发给客户端(域B的客户端)。
步骤27,至此客户端收到并解析应答报文,将请求结果传给用户。
在跨域传输过程中,跨域代理可以从多种网络传输方式中进行选择。并且在复杂的网络环境下,可自动选择合适报文压缩等级,兼顾报文的压缩大小和网络传输速度。
本发明实施例提供的基于跨域代理的跨域服务调用信息方法和系统,不仅可以解决跨域服务调用过程中的发布、订阅问题,还可以在跨域访问过程中自动调节压缩等级。本发明实施例支持服务的实例跨域同步、跨域代理的报文压缩与跨域访问。通过跨域代理对服务实例的跨域同步和服务请求应答的转发,本发明能够在用户无感知的情况下,高效的完成服务实例状态的跨域同步,完成跨域请求报文和应答报文的压缩传输,使得客户端能够调用任意一个域内的在线服务实例,提高服务实例的可用性,从而整体跨域服务调用的可靠性与便利性,实现高效的服务跨域调用。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
本发明中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于跨域代理的跨域服务调用信息系统,其特征在于,所述系统包括两个以上的域,每个域内具有注册中心和跨域代理;
所述跨域代理用于在本域的客户端调用其他域的服务实例时为调用提供域间报文转发,并跨域在注册中心之间转发服务实例同步信息;
所述注册中心用于为本域的服务端提供服务发布,为本域客户端提供服务查询和订阅,并通过所述跨域代理在多域环境中提供域间服务实例同步;
其中,所述跨域代理包括代理模块和报文转发自适应模块;
所述代理模块用于将来自本域注册中心的服务实例同步信息转发至所述系统中其他域的代理模块,以经由所述其他域的代理模块转发给所述其他域的注册中心;所述代理模块还用于接收本域客户端的跨域调用请求,以基于所述跨域调用请求中携带的地址信息将跨域调用请求转发至所述系统中目标域的代理模块,以经由所述目标域的代理模块将所述跨域调用请求转发至所述目标域的服务端;
所述报文转发自适应模块用于确定要在不同域的跨域代理之间转发的报文所采用的数据传输协议,以自适应地从支持的多种数据传输协议中选择对应的数据传输协议用于报文转发。
2.根据权利要求1所述的系统,其特征在于,所述每个域还具有:至少一个客户端和至少一个服务端;
所述客户端用于向本域注册中心查询和订阅指定服务的服务实例信息,并在需要向其他域服务端请求调用服务实例时经由本域和目标域的跨域代理转发跨域调用请求至所述其他域服务端;
所述服务端用于接收所述跨域代理转发的来自客户端的跨域调用请求,基于所述跨域调用请求来产生服务应答,并经由代理模块转发所述服务应答至发出跨域调用请求的客户端。
3.根据权利要求1或2所述的系统,其特征在于,
所述代理模块包括正向跨域代理和反向跨域代理,所述正向跨域代理用于接收本域内注册中心的服务实例同步信息,并跨域向目标域的反向跨域代理转发同步信息;所述正向跨域代理还用于接收来自本域客户端的跨域调用请求,将跨域调用请求转发至目标域的反向跨域代理,以由目标域的反向跨域代理将跨域调用请求转发至目标域的服务端;
所述反向跨域代理用于将来自其他域的正向跨域代理的信息转发至本域的注册中心或服务端。
4.根据权利要求2所述的系统,其特征在于,所述跨域调用请求中包括目标域中跨域代理地址。
5.根据权利要求1所述的系统,其特征在于,所述多种数据传输协议包括:传输控制协议TCP、用户数据报协议UDP和超文本传输协议HTTP。
6.一种基于跨域代理的跨域服务调用信息系统实现的跨域服务调用方法,其特征在于,所述系统包括两个以上的域,每个域内具有注册中心和跨域代理,所述跨域代理包括代理模块和报文转发自适应模块;所述方法包括以下步骤:
通过本域的代理模块接收本域客户端的跨域调用请求,将跨域调用请求转发至目标域的代理模块,以经由所述目标域的代理模块将所述跨域调用请求转发至所述目标域内的服务端;
通过所述代理模块将来自本域注册中心的服务实例同步信息转发至所述中其他域的代理模块,以经由所述其他域的代理模块转发给所述其他域的注册中心,所述跨域调用请求中携带服务实例的服务名、跨域服务实例的地址和传输协议;
在不同域的跨域代理之间进行信息转发时,由所述报文转发自适应模块确定要在不同域的跨域代理之间转发的报文所采用的数据传输协议,以自适应地从支持的多种数据传输协议中选择对应的数据传输协议作为报文转发方式。
7.根据权利要求6所述的方法,其特征在于,所述报文转发自适应模块确定要在不同域的跨域代理之间转发的报文所采用的数据传输协议,以自适应地从支持的多种数据传输协议中选择对应的数据传输协议作为报文转发方式,包括:
由所述报文转发自适应模块解析要转发的消息中的传输协议,基于解析出的传输协议从支持的多种数据传输协议中选择与解析出的数据传输协议作为报文转发方式。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述跨域代理确定网络状态,基于网络状态确定报文压缩等级,基于确定的报文压缩等级对要转发的信息进行压缩。
9.根据权利要求6所述的方法,其特征在于,所述客户端包括服务发现模块,所述方法还包括:
由注册中心向本域客户端的服务发现模块推送服务实例的上下线信息,以使得服务发现模块在确定当前客户端服务实例下线时断开链接并在缓存中选择一个在线的服务实例进行服务调用。
10.根据权利要求6所述的方法,其特征在于,所述方法还包括:
由注册中心接收服务端发送的服务实例注册信息,基于所述服务实例注册信息进行服务实例注册,并基于来自服务端的心跳信息维持在线状态,所述服务实例注册信息包括:服务实例的服务名、访问地址和传输协议信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011462922.6A CN114629953A (zh) | 2020-12-14 | 2020-12-14 | 基于代理的服务跨域调用方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011462922.6A CN114629953A (zh) | 2020-12-14 | 2020-12-14 | 基于代理的服务跨域调用方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114629953A true CN114629953A (zh) | 2022-06-14 |
Family
ID=81895715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011462922.6A Pending CN114629953A (zh) | 2020-12-14 | 2020-12-14 | 基于代理的服务跨域调用方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629953A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484274A (zh) * | 2022-09-07 | 2022-12-16 | 上海浪潮云计算服务有限公司 | 数据的同步系统和方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696649A (zh) * | 2017-04-06 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 图像处理方法、装置、设备及计算机可读存储介质 |
CN109618005A (zh) * | 2019-01-18 | 2019-04-12 | 华为终端有限公司 | 调用服务器的方法和代理服务器 |
CN110213240A (zh) * | 2019-05-09 | 2019-09-06 | 国电南瑞科技股份有限公司 | 一种路由自适应的电力调度系统及其跨区服务调用方法 |
CN110213241A (zh) * | 2019-05-09 | 2019-09-06 | 阿里巴巴集团控股有限公司 | 一种数据传输方法、设备、介质以及装置 |
CN110247944A (zh) * | 2018-03-09 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 跨区域的服务调用方法、装置、系统及电子设备 |
CN111212119A (zh) * | 2019-12-24 | 2020-05-29 | 国电南瑞科技股份有限公司 | 一种dubbo服务调用方法及系统 |
-
2020
- 2020-12-14 CN CN202011462922.6A patent/CN114629953A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108696649A (zh) * | 2017-04-06 | 2018-10-23 | 百度在线网络技术(北京)有限公司 | 图像处理方法、装置、设备及计算机可读存储介质 |
CN110247944A (zh) * | 2018-03-09 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 跨区域的服务调用方法、装置、系统及电子设备 |
CN109618005A (zh) * | 2019-01-18 | 2019-04-12 | 华为终端有限公司 | 调用服务器的方法和代理服务器 |
CN110213240A (zh) * | 2019-05-09 | 2019-09-06 | 国电南瑞科技股份有限公司 | 一种路由自适应的电力调度系统及其跨区服务调用方法 |
CN110213241A (zh) * | 2019-05-09 | 2019-09-06 | 阿里巴巴集团控股有限公司 | 一种数据传输方法、设备、介质以及装置 |
CN111212119A (zh) * | 2019-12-24 | 2020-05-29 | 国电南瑞科技股份有限公司 | 一种dubbo服务调用方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115484274A (zh) * | 2022-09-07 | 2022-12-16 | 上海浪潮云计算服务有限公司 | 数据的同步系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6226684B1 (en) | Method and apparatus for reestablishing network connections in a multi-router network | |
EP1542409B1 (en) | Protocol for multi-hop ad-hoc networks | |
US7337237B2 (en) | Mechanism to provide callback capabilities for unreachable network clients | |
CA2571413C (en) | Method, system and computer program to enable querying of resources in a certain context by definition of sip event package | |
US20120102205A1 (en) | Relay device and communication system | |
CN101677319A (zh) | 一种基于xmpp协议访问业务的方法、装置及系统 | |
WO2009082041A1 (en) | Group communication system using media server having distributed structure and method thereof | |
CN107528891B (zh) | 一种基于WebSocket的自动集群方法及其系统 | |
CN112711635B (zh) | 一种分布式物联设备跨区域数据一致性的方法和服务集群 | |
EP4085598B1 (en) | System and method for supporting permanent http connections | |
US20230300106A1 (en) | Data processing method, network element device and readable storage medium | |
US20110078489A1 (en) | Method, apparatus, and system for maintaining status of bootstrap peer | |
US7610386B1 (en) | Stateful messaging gateway | |
CA2604902A1 (en) | System and method for enabling group subscription for asynchronous push-based applications on a wireless device | |
CN114629953A (zh) | 基于代理的服务跨域调用方法和系统 | |
CN117157954A (zh) | 用于改进服务器发现处置程序的方法及设备 | |
US20230385161A1 (en) | Network nodes and methods therein for providing backup network function | |
Yoneki | Mobile applications with a middleware system in publish-subscribe paradigm | |
US7774773B2 (en) | Active node, and contents transfer system and method using the active node | |
CN114760348B (zh) | 一种业务处理方法、装置、存储介质及电子装置 | |
KR100853320B1 (ko) | 통신시스템에서 특히 개인별 맞춤 통신서비스를 제공하기위한 방법 및 네트워크 장치 | |
EP1236328B1 (en) | Procedure and system for determining the accessibility of a data file in a distributed system | |
CN115834655A (zh) | 访问私网中的服务端的方法和装置 | |
CN116192517A (zh) | 实现业务访问的方法、客户端、服务端网关及系统 | |
CN112351109A (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 |