CN117834699A - 服务调用方法、装置、设备及计算机可读存储介质 - Google Patents
服务调用方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117834699A CN117834699A CN202211191249.6A CN202211191249A CN117834699A CN 117834699 A CN117834699 A CN 117834699A CN 202211191249 A CN202211191249 A CN 202211191249A CN 117834699 A CN117834699 A CN 117834699A
- Authority
- CN
- China
- Prior art keywords
- service
- area
- information
- call request
- request
- 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 105
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000006243 chemical reaction Methods 0.000 claims abstract description 17
- 230000015654 memory Effects 0.000 claims description 63
- 238000004891 communication Methods 0.000 claims description 40
- 238000011084 recovery Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000007726 management method Methods 0.000 description 85
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 8
- 238000005129 volume perturbation calorimetry Methods 0.000 description 8
- 230000036541 health Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 7
- 230000003862 health status Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了服务调用方法、装置、设备及计算机可读存储介质,属于计算机领域。方法包括:调度设备接收第一服务调用请求后,确定能提供第一服务调用请求中所请求的目标服务的第二设备;如果第二设备与第一设备配置在不同区域,调度设备将第一服务调用请求转换成与第二设备匹配的第二服务调用请求,之后,调度设备向第二设备发送第二服务调用请求,以通过第二服务调用请求调用第二设备提供目标服务。通过调度设备完成对第一服务调用请求的转换与第二服务调用请求的转发,实现了目标服务的正常调用,调用过程简单易用,效率高,且无需人工参与,节省了人工成本。
Description
技术领域
本申请涉及计算机技术领域,特别涉及服务调用方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,数据库会在同城与异地进行数据容灾,且无论是在同城还是在异地,均采用包括地区(region)的层级结构,以提高数据可靠性。其中,同城的region区的网络与异地的region区的网络无法直接通信,导致同城与异地的region区的服务无法跨区域调用。因此,需要一种服务调用方法,实现region区的服务之间的跨区域调用。
相关技术中,每个region区的服务提供应用程序编程接口(applicationprogramming interface,API),在进行服务调用时,用户按照每个服务的API的用途与调用的流程,人工串联调用API完成服务的跨区域调用。
然而,上述服务调用方法,需要用户理解每个API的用途与每个API调用的流程,才能实现服务的跨区域调用,服务调用门槛高,人工成本高,且调用效率低。
发明内容
本申请提供了一种服务调用方法、装置、设备及计算机可读存储介质,以解决相关技术提供的问题,技术方案如下:
第一方面,提供了一种服务调用方法,该方法包括:调度设备接收第一设备发送的第一服务调用请求后,确定能够提供第一服务调用请求中所请求的目标服务的第二设备,如果第二设备与第一设备配置在不同区域,将第一服务调用请求转换为与第二设备匹配的第二服务调用请求,之后,调度设备向第二设备发送第二服务调用请求,以通过第二服务调用请求调用第二设备提供目标服务。其中,第一服务调用请求用于请求调用目标服务。
需要跨区域调用服务的第一设备仅需确定需要调用的目标服务,对于服务调用涉及到的其他操作可由调度设备执行。调度设备确定提供该目标服务的第二设备,并对第一服务调用请求进行转换,转发转换得到的第二服务调用请求,以实现目标服务的正常调用,调用过程简单便捷,效率高,无需人工参与,节省了人工成本。
在一种可能的实现方式中,第一服务调用请求中携带目标服务的区域信息,调度设备确定提供目标服务的第二设备,包括:调度设备从第一服务调用请求中提取目标服务的区域信息;根据目标服务的区域信息,在包括多个服务列表的注册中心中查找目标服务的服务列表,其中,目标服务的服务列表包括提供目标服务的至少一个设备的设备信息;之后,调度设备基于目标服务的服务列表,从至少一个设备中选择一个设备作为第二设备。通过在注册中心进行查找,即可确定提供目标服务的第二设备,该第二设备的确定过程简单,操作难度低,易实现。
在一种可能的实现方式中,从至少一个设备中选择一个设备作为第二设备,包括:基于第一服务调用请求指示目标服务配置在第一区域,根据负载均衡原则从至少一个设备中选择一个配置在第一区域的设备作为第二设备。通过负载均衡原则选择第二设备,实现服务调用的合理分配,提高了服务调用的效率。
在一种可能的实现方式中,第一服务调用请求中携带第一鉴权信息,确定提供目标服务的第二设备之前,还包括:调度设备先根据第一鉴权信息对第一设备进行调用鉴权;基于第一设备鉴权通过,再执行确定提供目标服务的第二设备的操作。先确定第一设备是否有通过调度设备进行跨区域服务调用的权限,再执行服务调用的操作,保证跨区域服务调用的合法性。
在一种可能的实现方式中,对将第一服务调用请求转换为与第二设备匹配的第二服务调用请求,包括:调度设备获取第二设备的设备信息与第二鉴权信息,其中,第二设备的设备信息用于指示第二设备提供的目标服务的服务地址,第二鉴权信息用于第二设备对第一设备进行调用鉴权;之后,调度设备向第一服务调用请求添加第二鉴权信息与第二设备的设备信息,得到第二服务调用请求。第二服务调用请求携带能用于指示目标服务的服务地址的设备信息,基于设备信息可以将第二服务调用请求发往第二设备,保证了第二服务调用请求的传输可靠性。同时,将与第二设备匹配的第二鉴权信息添加至第二服务调用请求中,以辅助第二设备的鉴权。
在一种可能的实现方式中,第一服务调用请求中携带用于标识目标服务的标识信息,获取第二设备的设备信息与第二鉴权信息,包括:根据第一服务调用请求中携带的区域信息从注册中心中获取第二设备的设备信息,根据标识信息获取第二鉴权信息。
在一种可能的实现方式中,向第一服务调用请求添加第二鉴权信息,包括:基于第一服务调用请求携带第一鉴权信息,将第一服务调用请求中携带的第一鉴权信息转换为第二鉴权信息。将用于调度设备鉴权的第一鉴权信息替换为用于第二设备鉴权的第二鉴权信息,替换后的第二服务调用请求中不用携带第一鉴权信息,有效控制了第二服务调用请求携带的信息量。
在一种可能的实现方式中,向第二设备发送第二服务调用请求之后,还包括:向第一设备发送基于第二服务调用请求调用目标服务的调用结果。
在一种可能的实现方式中,调度设备配置在第二区域的一级管理平台,第一设备配置在第二区域的二级管理平台,第二设备配置在第一区域的二级管理平台,第一区域的一级管理平台与第二区域的一级管理平台之间建立通信连接,第一区域的二级管理平台与第二区域的二级管理平台之间未建立通信连接。由于第一设备与第二设备所在的二级管理平台之间未建立通信连接,因此第一设备与第二设备之间未直接进行通信,也未直接进行跨区域的服务调用。又由于调度设备所在的一级管理平台与第一区域的一级管理平台之间建立有通信连接,调度设备可以辅助第一设备进行跨区域的服务调用,提高了服务调用的成功率。
在一种可能的实现方式中,第一区域的一级管理平台配置有调度设备对应的备份设备,备份设备用于对调度设备在服务调用过程中进行设备容灾。通过备份设备实现设备容灾,当调度设备出现异常时,可以及时启用备份设备,恢复服务调用,服务调用的可靠性高。
第二方面,提供了一种服务调用装置,该装置应用于调度设备,该装置包括:接收模块,用于接收第一设备发送的第一服务调用请求,第一服务调用请求用于请求调用目标服务;确定模块,用于确定提供目标服务的第二设备;转换模块,用于基于第二设备与第一设备配置在不同区域,将第一服务调用请求转换成与第二设备匹配的第二服务调用请求,向第二设备发送第二服务调用请求,第二服务调用请求用于调用第二设备提供目标服务。
在一种可能的实现方式中,第一服务调用请求中携带目标服务的区域信息,确定模块,用于从第一服务调用请求中提取目标服务的区域信息;根据目标服务的区域信息,在包括多个服务列表的注册中心中查找目标服务的服务列表,目标服务的服务列表包括提供目标服务的至少一个设备的设备信息;基于目标服务的服务列表,从至少一个设备中选择一个设备作为第二设备。
在一种可能的实现方式中,确定模块,用于基于第一服务调用请求指示目标服务配置在第一区域,根据负载均衡原则从至少一个设备中选择一个配置在第一区域的设备作为第二设备。
在一种可能的实现方式中,第一服务调用请求中携带第一鉴权信息,装置还包括:鉴权模块,用于根据第一鉴权信息对第一设备进行调用鉴权;基于第一设备鉴权通过,执行确定提供目标服务的第二设备的操作。
在一种可能的实现方式中,转换模块,用于获取第二设备的设备信息与第二鉴权信息,第二设备的设备信息用于指示第二设备提供的目标服务的服务地址,第二鉴权信息用于第二设备对第一设备进行调用鉴权;向第一服务调用请求添加第二鉴权信息与第二设备的设备信息,得到第二服务调用请求。
在一种可能的实现方式中,第一服务调用请求中携带用于标识目标服务的标识信息,转换模块,用于根据第一服务调用请求中携带的区域信息从注册中心中获取第二设备的设备信息,根据标识信息获取第二鉴权信息。
在一种可能的实现方式中,转换模块,用于基于第一服务调用请求携带第一鉴权信息,将第一服务调用请求中携带的第一鉴权信息转换为第二鉴权信息。
在一种可能的实现方式中,装置还包括:发送模块,用于向第一设备发送基于第二服务调用请求调用目标服务的调用结果。
在一种可能的实现方式中,调度设备配置在第二区域的一级管理平台,第一设备配置在第二区域的二级管理平台,第二设备配置在第一区域的二级管理平台,第一区域的一级管理平台与第二区域的一级管理平台之间建立通信连接,第一区域的二级管理平台与第二区域的二级管理平台之间未建立通信连接。
在一种可能的实现方式中,第一区域的一级管理平台配置有调度设备对应的备份设备,备份设备用于对调度设备在服务调用过程中进行设备容灾。
第三方面,提供了一种计算设备集群,所述计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行上述第一方面中任一种的服务调用方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行上述第一方面中任一种的服务调用方法。
第五方面,提供了一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得所述计算设备集群执行上述第一方面任一种的服务调用方法。
第六方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实施方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型以及存储器与处理器的设置方式不做限定。
第七方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
第八方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。
应当理解的是,本申请实施例的第二方面至第八方面的技术方案及对应的可能的实现方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实现方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种实施环境的示意图;
图2为本申请实施例提供的另一种实施环境的示意图;
图3为本申请实施例提供的一种服务调用方法的流程图;
图4为本申请实施例提供的一种服务调用的过程示意图;
图5为本申请实施例提供的一种DBS管理服务与调度设备的交互示意图;
图6为本申请实施例提供的一种服务调用装置的结构示意图;
图7为本申请实施例提供的一种计算设备的结构示意图;
图8为本申请实施例提供的一种计算设备的连接示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
随着计算机技术的发展,数据库会在同城与异地进行数据容灾,以提高数据可靠性。并且,无论是在同城还是在异地,均采用包括region的层级结构。其中,同城的region区的网络与异地的region区的网络之间未建立通信连接,无法直接通信,导致同城与异地的region区的服务无法直接跨区域调度。本申请实施例提供了一种服务调用方法,用于实现跨区域调度region区的服务。
请参考图1,其示出了一种在同城与异地进行数据容灾的调度架构,为两地三中心的数据容灾的调度架构。其中,两地是指图1中作为同城的第一区域与作为异地的第二区域,第一区域与第二区域属于不同的城市,第二区域属于第一区域的异地副本,通过在第二区域对第一区域的数据进行数据复制,当第一区域出现自然灾害等原因而导致业务发生故障时,第二区域可以代替第一区域继续业务的提供。需要注意的是,图1以及下文出现的第一区域与第二区域旨在区分第一设备所在的区域与第二设备所在的区域,而非用于限定第一设备所在的区域与第二设备所在的区域。在一些情况下,第一区域可以称为第二区域,第二区域也可以称为第一区域,或者以其他区域名称进行代指,本申请实施例对此不进行限定。
调度架构中涉及的三中心是指图1中的数据中心(data center,DC)1、DC2和DC3。DC1与DC2设置在同城,可以独立承担关键系统运行,具备等同的业务处理能力并且实时同步数据,能够同时分担业务及管理系统的运行。参见图1,无论是配置在同城还是配置在异地的中心都分为三种层级结构,分别为一级管理平台、二级管理平台和三级管理平台。
一级管理平台例如用于统一管理多region的全局(global)区,第一区域与第二区域的一级管理平台之间建立了通信连接,从而实现第一区域与第二区域之间的数据复制。二级管理平台例如提供云服务管理面进行流量管理的region区,由于二级管理平台中的云服务管理面需要管理与存储的流量较大,对网络带宽要求高。因此,第一区域的二级管理平台与第二区域的二级管理平台之间未建立通信连接。三级管理平台例如是配置有数据库集群的业务区。示例性地,第一区域的数据库集群与第二区域的数据库集群之间通过一种增强型云专线(L3GW)建立通信连接,第一区域的三级管理平台与第二区域的三级管理平台之间的通信连接也可用于第一区域与第二区域之间的数据复制。
示例性地,用于执行本申请实施例提供的服务调用方法的设备可以为配置在第一区域的DC1的一级管理平台的调度设备1或者配置在DC2的一级管理平台的调度设备2。以调度设备1为例,调度设备1接收来自第一区域的二级管理平台的云服务管理面的第一设备发送的第一服务调用请求,将第一服务调用请求转换成与第二设备匹配的第二服务调用请求。之后,调度设备1向第二区域的二级管理平台的云服务管理面中的第二设备发送第二服务调用请求,从而调用第二设备提供的目标服务。当请求调用服务的设备位于第二区域时,第二区域内的调度设备3与调度设备4也可以执行上述服务调用方法,也即本申请实施例不限定请求服务的区域与提供服务的区域的关系,图1仅为一种示例。
图2为本申请实施例提供的另一种实施环境的示意图,图2示出了用于执行本申请实施例提供的服务调用方法的调度设备的结构。由于调度设备的设计是为了服务两地三中心的管理协同调度,因此,调度设备同样需要构建两地三中心的容灾副本。也即在第一区域支持同城两中心部署,在第二区域对第一区域的数据结构进行备份。也就是说,第二区域的一级管理平台配置有调度设备对应的备份设备,备份设备用于对调度设备在服务调用过程中进行设备容灾。这样,在调度设备出现故障后,需要进行服务调用的第一设备可以依赖备份设备继续进行服务调用。如图2所示,第一区域的中心DC2上配置有调度设备2,是作为第一区域的中心DC1上配置的调度设备1的备份。第二区域的中心DC3上配置有调度设备3与调度设备4,是作为第一区域内的两个调度设备的备份,也即是调度设备的备份设备。通过备份设备进行设备容灾,提高了服务调用的可靠性。
可选地,调度设备为世界树(yggdrasil)组件,当然,调度设备还可以是其他能够提供服务调用的组件。调度设备可以部署在物理机、虚拟机、容器、边缘设备和服务器等网络设备。而服务器例如中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。服务器可以是物理服务器,还可以是提供云计算服务器的云服务器。在一些实施例中,调度设备也可以是台式机、笔记本电脑或者智能手机等终端设备。此外,无论是第一区域上的调度设备,还是第二区域上的调度设备,均支持跨区域部署模式,可以执行本申请实施例提供的服务调用方法,且上述多个调度设备统一对外提供服务,会注册域名系统(domain namesystem,DNS),对外提供统一域名。示例性地,在从多个调度设备中选择一个调度设备执行服务调用的过程中,遵循负载均衡策略,也就是说,在接收到来自二级管理平台上配置的第一设备发送的第一服务调用请求后,可以基于负载均衡原则,从配置在一级管理平台上的多个调度设备中选择用于调用第二设备提供的目标服务的调度设备。其中,图2示出的注册中心用于辅助调度设备确定第二设备。上述服务调用过程中涉及到的第一设备与第二设备的类型与调度设备的类型类似,也可以为服务器或终端。而负载均衡原则例如是,随机服务策略和第一区域优先服务策略。
本申请实施例提供一种服务调用方法,该服务调用方法可由调度设备执行,该调度设备可以为上述图1和图2所示的任一调度设备,该方法的流程图如图3所示,包括S301-S303。
S301,调度设备接收第一设备发送的第一服务调用请求,第一服务调用请求用于请求调用目标服务。
在一种可能的实现方式中,在涉及到跨区域服务调用时,第一设备会向调度设备发送第一服务调度请求,该第一服务调用请求指示了第一设备需要调用的目标服务。如图4所示,调度对象需要在第一区域与第二区域之间创建跨region容灾集群,调度对象通过第一区域的二级管理平台上的数据库服务(database server,DBS)API向DBS管理服务下发跨region容灾集群的创建请求,DBS管理服务接收到创建请求后,提交两地三中心集群的关于跨region容灾集群的工作流编排。由于编排得到的工作流中的任务涉及到对第二区域的DBS管理服务的协调操作,第一区域中的DBS管理服务包括的第一设备向调度设备发起第一服务调用请求,以使调度设备基于第一服务调用请求调用第二区域提供的目标服务。其中,调度对象是指在两地三中心创建跨区域的服务调用的对象,调度对象除了通过包括DBSAPI在内的调用API进行涉及到跨区域服务调用的请求的创建,向DBS管理服务下发创建请求,还可以通过控制台向DBS管理服务下发创建请求,从而执行后续操作。
可选地,图5为本申请实施例提供的一种DBS管理服务与调度设备的交互示意图,其示出了当第一设备属于DBS管理服务的情况时,通过DBS管理服务实现第一设备与调度设备之间的交互过程。参见图5,DBS管理服务中配置的DBS实例管理模块向客户端(client)发送需要用于指示调用目标服务的请求,client在请求中添加调用目标服务涉及到的信息。例如,标识目标服务的标识信息,以及用于验证第一设备是否具有通过调度设备进行服务调用的第一鉴权信息等。通过在接收到的请求中添加上述信息得到第一服务调用请求,client将第一服务调用请求发往调度设备中的服务端(server)。调度设备基于此获取来自第一设备的第一服务调用请求。通过client与server之间的交互,各个DBS实例管理在跨区域调用服务过程中仅需感知client提供的方法,无需感知client与server之间的交互细节,调用更便捷。此外,针对调度设备为yggdrasil组件的情况,上述client为yggdrasilclient,server为yggdrasil server。
本申请实施例不限定第一服务调用请求的类型,调度设备接收到的第一服务调用请求可以属于超文本传输协议(hyper text transfer protocol,HTTP)请求,为从客户端到服务端的请求消息。当然,第一服务调用请求的类型还可以是其他支持服务调用的请求。
S302,调度设备确定提供目标服务的第二设备。
在一种可能的实现方式中,调度设备在接收到第一服务调用请求,基于第一服务调用请求确定提供目标服务的第二设备之前,还需要确定第一设备是否具有通过调度设备进行服务调用的权限,以保证服务调用的合法性。例如,S301中示出的第一服务调用请求中携带第一鉴权信息的情况,调度设备会根据第一服务调用请求中携带的第一鉴权信息对第一设备进行调用鉴权;基于第一设备鉴权通过,执行确定提供目标服务的第二设备的操作。示例性地,当第一服务调用请求为HTTP请求时,第一服务调用请求中携带的信息如表1所示。
表1
头域名称 | 必选 | 描述 |
X认证令牌(X-Auth-Token) | 是 | 当前region令牌(token) |
X目标区域(X-Target-Region) | 是 | 目标region |
X云服务(X-Cloud-Service) | 是 | 调用方云服务信息 |
X源项目(X-Source-Projectld) | 是 | 当前region projectld信息 |
X目标项目(X-Target-Projectld) | 是 | 目标region projectld信息 |
其中,第一鉴权信息为表1中的X-Auth-Token字段中封装的内容。调度设备在接收到第一服务调用请求后,解析第一服务调用请求的头部信息,通过X-Auth-Token和X-Source-Projectld对第一设备进行鉴权。当X-Source-Projectld字段中封装的信息与X-Auth-Token字段中封装的信息对应成功后,确定第一设备鉴权通过。关于表1中示出的第一服务调用请求的头域中封装的其他信息的作用,可参见下述实施例,在此暂不进行赘述。
可选地,X-Source-Projectld字段中封装的信息与X-Auth-Token字段中封装的信息对应是指X-Auth-Token中封装的token为基于X-Source-Projectld字段中封装的当前region项目(projectld)信息生成的token。当前region projectld信息例如是第一设备的projectld身份标识号(identity document,ID)。在一种可能的情况下,调度设备向配置在一级管理平台的鉴权模块发送第一设备的projectld信息,鉴权模块基于第一设备的projectld信息对第一设备进行身份验证;当验证结果指示第一设备具有服务调用的权限后,鉴权模块生成一个token,将生成的token返回给client。client存储该token,在每一次向调度设备请求进行跨区域服务调用时,都会在第一服务调用请求中携带token。通过token标识第一设备的身份,调度设备仅需确定token与X-Source-Projectld字段中封装的信息的对应关系,即可实现对第一设备的鉴权,无需多次对第一设备的身份有效性进行验证,鉴权过程更便捷。
此外,本申请实施例不限定token的生成时机,可以是第一设备在基于X-Source-Projectld字段中封装的信息第一次请求登录时,生成对应的token,也可以基于其他操作触发。并且,第一服务调用请求中携带的token还可以具有时效性。此种情况下,调度设备在对第一设备进行鉴权时,除了验证X-Source-Projectld字段中封装的信息与token是否对应,还会验证该token是否在有效时间内,当上述两个信息为对应,且第一服务调用请求中携带的token在有效时间内的情况下,确定第一设备鉴权通过。其中,有效时间可基于经验设置,例如设置一个token的有效时间为10分钟。
当然,调度设备除了通过token进行第一设备的鉴权,还可以通过其他方式。继续以调度设备与client之间进行交互实现第一服务调用请求的收发为例,在client中保存会话身份标识号(session identity document,session ID),每次client发送第一服务调用请求的时候都带上session ID。由于调度设备也保存了一个session ID,调度设备基于保存的session ID与接收到的第一服务调用请求中携带的session ID进行鉴权,当保存的session ID与接收到的session ID相同时,确定第一设备鉴权通过。当然,调度设备除了可以通过token或者基于session ID进行鉴权,也可以将token和session ID结合起来进行鉴权,也即执行上述两种鉴权操作。此种情况下,第一鉴权信息包括token和session ID。
无论调度设备基于何种方式进行第一设备的鉴权,在第一设备鉴权通过,确定第一设备具有通过调度设备进行跨区域服务调用的权限后,调度设备均会基于第一服务调用请求确定提供目标服务的第二设备。可选地,第一服务调用请求中携带有目标服务的区域信息,基于第一服务调用请求确定提供目标服务的第二设备的过程包括:从第一服务调用请求中提取目标服务的区域信息;根据目标服务的区域信息,在包括多个服务列表的注册中心中查找目标服务的服务列表,目标服务的服务列表包括提供目标服务的至少一个设备的设备信息;基于目标服务的服务列表,从至少一个设备中选择一个设备作为第二设备。
其中,目标服务的区域信息用于标识目标服务,该区域信息例如是目标服务的服务名称或服务功能等。继续以表1示出的第一服务调用请求携带的信息为例,表1示出的X-Target-Region字段中封装的信息为目标服务的区域信息。调度设备解析第一服务调用请求,获取目标服务的区域信息。在这之后,调度设备可以根据目标服务的区域信息在注册中心中进行查找,确定能提供该目标服务的至少一个设备。
在一种可能的实现方式中,无论是配置在第一区域内的能够提供服务的设备,还是配置在第二区域内的设备,又或是配置在其他区域的设备,在部署阶段均会向调度设备的注册中心注册设备信息,例如图3所示通过DBS API向注册中心注册各DBS管理服务的设备信息。设备信息包括但不限于设备提供的至少一个服务中的各个服务的服务地址,例如将设备提供该服务的端口ID作为设备信息。注册中心在获取多个设备信息后,会将相同的服务对应的设备信息划分为同一个服务列表。也就是说,注册中心中包括的任一服务的服务列表用于指示该任一服务的至少一个服务地址。通过向注册中心注册设备信息,实现服务的发现与管理,在后续基于目标服务确定提供目标服务的第二设备的过程中,调度设备仅需在注册中心进行查找即可。而当存在新增region区的服务时,例如部署阶段结束后,增加了新的服务。该服务的增加仅需在注册中心注册该服务对应的设备信息即可实现,不需要对调度设备和其他提供服务的设备进行侵入式配置,操作简单,易实现。
示例性地,各设备除了向注册中心注册设备信息,还会定时反馈提供的服务功能是否正常,也即调度设备还会感知注册中心中已注册的服务的健康状态。本申请实施例不限定感知服务的健康状态的方法,可以是自注册模式,由各设备提供的服务自身进行健康维护。各设备提供的服务在启动后,在调度设备的注册中心进行注册登记,该服务终止后,各设备提供的服务到注册中心移除注册的设备信息,实现设备信息的管理。并且,各服务还会周期性地发送心跳信息,通过心跳信息的发送来通知注册中心,该服务为正常运行的健康状态。而注册中心在第一时间内没有收到任一设备提供的任一服务的心跳消息,会确定该任一服务的健康状态为异常,并将该任一服务对应的设备信息从注册中心中移除,或者将该任一服务对应的设备信息设置为不可用状态。可选地,第一时间可以基于经验与实施环境设置,实施环境例如是服务向注册中心发送心跳信息的周期。
又或者,通过三方注册模式感知服务的健康状态。通过除提供服务的设备与调度设备之外的第三方设备对服务的健康状态进行验证,从外部来确定服务的健康状态。三方注册模式有效避免了服务自身出现故障,却仍然可以发送心跳信息,导致注册中心未及时感知该服务的健康状态为异常的情况。例如,某些接口异常无法调用,但服务出现的故障并不影响服务向注册中心发送心跳信息,导致调度设备将已出现故障的服务的健康状态确定为正常。
通过感知各个服务的健康状态,保证注册中心中的可调用的服务是健康状态,调度设备从而确定用于提供健康的目标服务的至少一个设备。可选地,调度设备在注册中心中查找与区域信息匹配的服务列表,与区域信息匹配是指该服务列表对应的服务名称与区域信息指示的服务相同。由于一个服务列表中可能会包括多个设备,此种情况下,调度设备还需要从多个设备中选择一个设备作为提供目标服务的第二设备。
在一种可能的实现方式中,基于第一服务调用请求指示目标服务配置在第二区域,根据负载均衡原则从至少一个设备中选择一个配置在第二区域的设备作为第二设备。继续以上述表1示出的第一服务调用请求中携带的信息为例。其中,X-Target-Region字段中封装的内容用于指示提供目标服务的区域为第二区域。在对服务列表中包括的至少一个设备进行筛选,得到至少一个配置在第二区域的能提供目标服务的设备后,调度设备基于负载均衡原则从筛选过后的设备中选择一个设备作为第二设备。也即是调度设备基于负载均衡算法,实现根据各个设备的负载情况选择第二设备。其中,负载均衡算法包括但不限于轮询分发、基于比率分发、基于优先权分发、基于最少连接数分发和基于最快响应时间分发等策略。
当然,还存在第一服务调用请求未指示目标服务配置的区域,或者第一服务调用请求指示的提供目标服务的区域为多个区域,此种情况下,调度设备从至少一个设备中选择第二设备的过程与上述实施例中选择第二设备的过程类似,均可以基于负载均衡算法选择第二设备,区别在于参考的区域数量不同。
S303,基于第二设备与第一设备配置在不同区域,调度设备将第一服务调用请求转换成与第二设备匹配的第二服务调用请求,向第二设备发送第二服务调用请求,第二服务调用请求用于调用第二设备提供目标服务。
示例性地,针对S302中第一服务调用请求在指示目标服务配置的区域时存在不同情况,第二设备与第一设备所在的区域也存在不同情况。情况一是第二设备与第一设备配置在同一个区域,例如,第一服务调用请求中未限定目标服务需要由哪个区域提供,调度设备在按照负载均衡算法选择时,选中的第二设备与第一设备配置在同一个区域。由于第一设备与第二设备在同一个区域,第一设备与第二设备可以建立通信连接,第一设备可直接向第二设备调用目标服务。这种情况下,如果调度设备接收到第一服务调用请求,可以不对第一服务调用请求进行转换,而将第一服务调用请求发送给第二设备,由第二设备提供目标服务。
情况二是第二设备与第一设备配置在不同的区域,例如用于提供目标服务的第二设备配置在第二区域的二级管理平台,而第一设备配置在第一区域的二级管理平台,由于第一区域的二级管理平台与第二区域的二级管理平台之间未建立通信连接。因此,第一设备无法直接向第二设备发送调用目标服务的请求,而是需要通过其他设备进行请求的转发。
此种情况下,如果调度设备与第一设备配置在不同级别的管理平台上,例如,调度设备配置在第一区域的一级管理平台,由于第一区域的一级管理平台与第二区域的一级管理平台之间建立通信连接,且同一个区域内的不同级别的管理平台之间也可以互相通信,因此,调度设备与第二设备之间建立了通信连接,调度设备可以基于通信连接向第二设备发送目标服务调用的请求。
然而,第一设备向调度设备发送的第一服务调用请求仅指示了需要调用的目标服务,未指示需要调用哪个设备提供的目标服务,并且第一设备中携带的第一鉴权信息是用于确定第一设备能否通过调度设备进行服务调用。因此,调度设备直接将接收到的第一服务调用请求转发至第二设备,会出现由于第一服务调用请求与第二设备不匹配而导致服务调用失败的情况。基于此,调度设备需要先对第一服务调用请求进行转换,也就是说,针对情况二,调度设备会执行S303中涉及的操作。将第一服务调用请求中携带的内容修改为用于调用第二设备提供的目标服务的内容,也即转换过后的第二服务调用请求为与第二设备匹配的请求。其中,与第二设备匹配的请求是指第二设备能够识别或解析的请求。
可选地,转换过程包括:获取第二设备的设备信息与第二鉴权信息,第二设备的设备信息用于指示第二设备提供的目标服务的服务地址,第二鉴权信息用于第二设备对第一设备进行调用鉴权;向第一服务调用请求添加第二鉴权信息与第二设备的设备信息,得到第二服务调用请求。
在一种可能的实现方式中,设备信息是各设备在部署阶段向注册中心注册的信息,调度设备可根据第一服务调用请求中携带的区域信息从注册中心中获取第二设备的设备信息。例如,调度设备在基于区域信息从注册中心中查找目标服务的服务列表的过程中,除了基于服务列表包括的至少一个设备中确定第二设备,还会在确定第二设备之后,获取服务列表中包括的第二设备的设备信息。而获取第二鉴权信息的过程,针对第一服务调用请求中携带用于标识目标服务的标识信息,根据标识信息获取第二鉴权信息。
其中,基于标识信息获取第二鉴权信息的过程与S302中基于X-Source-Projectld字段中封装的信息生成token的过程类似。调度设备将标识信息发送给鉴权模块,鉴权模块基于标识信息对第一设备进行身份验证,确定第一设备是否具有调用目标服务的权限。当第一设备具有调用目标服务的权限后,鉴权模块生成一个token,也即第二鉴权信息。鉴权模块将生成的第二鉴权信息发往调度设备,调度设备基于此获取第二鉴权信息。继续以上述表1示出第一服务调用请求中携带的信息为例,标识信息也即是X-Target-Projectld字段中封装的信息。
可选地,在将第二设备的设备信息与第二鉴权信息添加至第一服务调用请求的过程中,调度设备可以将第二设备的设备信息与第二鉴权信息添加至第一服务调用请求中的空白字段,例如第一服务调用请求中的扩展字段。也可以选择将第一服务调用请求中原有的不再需要的信息进行替换。以添加第二鉴权信息为例,基于第一服务调用请求携带第一鉴权信息,将第一服务调用请求中携带的第一鉴权信息转换为第二鉴权信息。由于调度设备已经根据第一鉴权信息对第一设备执行了鉴权,且第一鉴权信息是针对调度设备的鉴权信息,而非针对第二设备的鉴权信息,属于在调用第二设备的目标服务的过程中不再需要使用的信息。通过将第二鉴权信息替换不再需要使用的第一鉴权信息,有效控制了转换后的第二服务调用请求中携带的信息量,也可进一步提高后续传输该第二服务调用请求的效率,以及节省传输该第二服务调用请求所占用的资源。
示例性地,第二服务调用请求由于携带设备信息,该设备信息指示了目标服务的地址,例如第二设备提供目标服务的端口ID。调度设备以及转发途中的途径节点可以通过设备信息将第二服务调用请求成功发往第二设备。而第二服务调用请求中携带的第二鉴权信息,第二设备可以基于接收到的第二服务调用请求,解析并获取第二服务调用请求中携带的第二鉴权信息,再验证第二鉴权信息与标识信息的对应关系,实现对第一设备的鉴权。
可选地,第二设备在第二鉴权信息与标识信息的对应关系指示鉴权通过后,调用目标服务。参见图4,调度设备通过注册中心获取设备信息,调度设备基于设备信息将第一服务调用请求转换为第二服务调用请求,通过设备信息将第二服务调用请求发往第二区域对应的DBS API,DBS API根据第二服务调用请求调用DBS管理服务中第二设备提供的目标服务。此外,第二服务调用请求除了如上述实施例所示支持设备的调用,第二服务调用请求也可以支持服务的调用,也即第二服务调用请求不仅能够调用第二设备,且能够调用第二设备提供的目标服务,或者说第二服务调用请求用于调用第二设备提供目标服务。
在一种可能的实现方式中,调度设备在向第二设备发送第二服务调用请求后,还会向第一设备发送基于第二服务调用请求调用目标服务的调用结果。以使第一设备基于调用结果执行后续操作。例如,当调用的目标服务为一组数据时,返回的调用结果也即是调用的数据,第一设备可基于接收到的数据继续运行。又或者调用结果指示目标服务调用失败,第一设备基于此再次向调度设备发送第一服务调用请求,调度设备可以选择重新向第二设备调用目标服务,也可以向其他能提供目标服务的设备调用目标服务。由于调度设备在进行跨区域调度过程中,遵循调用幂原则,调用一次与调用多次的结果一致,可以在网络抖动等网络环境异常导致的调用失败时,支持第一设备的服务调用重试,保证了服务间的调用可靠性与一致性。
需要说明的是,上述调度设备、第一设备与第二设备之间的位置关系,旨在说明配置在不同级别的管理平台之间的设备的交互操作,而非限定调度设备、第一设备与第二设备之间的位置关系。三个设备的位置关系可以如上述所示为调度设备配置在第一区域的一级管理平台,第一设备配置在第一区域的二级管理平台,第二设备配置在第二区域的二级管理平台。三个设备的位置关系也可以为其他情况,例如调度设备与第二设备配置在同一个区域,而与第一设备所在的区域不同。
此外,本申请实施例提供的服务调用方法不局限于调用一个设备的服务,还可以用于调用多个设备的服务,例如第一设备在通过调度设备在调用第二设备的目标服务的基础上,同时进行其他设备的服务的调用。调用多个设备的服务的过程与调用第二设备的目标服务的过程类似,在此暂不进行赘述。而调用的多个设备可以位于同一个区域,也可以位于不同的区域,本申请对此不进行限定。
综上所述,本申请实施例提供的服务调用方法,需要跨区域调用服务的第一设备仅需确定需要调用的目标服务,对于服务调用涉及到的其他操作可由调度设备执行。由调度设备确定提供该目标服务的第二设备,并对第一服务调用请求进行转换,得到与第二设备匹配的第二服务调用请求,转发第二服务调用请求保证目标服务的正常调用,通过调度设备即可实现服务调用,服务的调用过程简单易用,效率高。并且,上述服务调用过程,无需人工参与,节省了人工成本。此外,调度设备进行的服务调用过程中调用一次与调用多次的结果一致,在因为网络异常而导致的服务调用失败的情况下,在重新进行服务调用时,能保证跨区域的服务调用结果的一致性,服务调用的可靠性高。
以上介绍了本申请实施例的服务调用方法,与上述方法对应,本申请实施例还提供了服务调用装置。图6是本申请实施例提供的一种服务调用装置的结构示意图。基于图6所示的如下多个模块,该图6所示的服务调用装置能够执行上述图3所示的全部或部分操作。应理解到,该装置可以包括比所示模块更多的附加模块或者省略其中所示的一部分模块,本申请实施例对此并不进行限制。如图6所示,该装置应用于调度设备,装置包括:
接收模块601,用于接收第一设备发送的第一服务调用请求,第一服务调用请求用于请求调用目标服务;
确定模块602,用于确定提供目标服务的第二设备;
转换模块603,用于基于第二设备与第一设备配置在不同区域,将第一服务调用请求转换成与第二设备匹配的第二服务调用请求,向第二设备发送第二服务调用请求,第二服务调用请求用于调用第二设备提供目标服务。
在一种可能的实现方式中,第一服务调用请求中携带目标服务的区域信息,确定模块602,用于从第一服务调用请求中提取目标服务的区域信息;根据目标服务的区域信息,在包括多个服务列表的注册中心中查找目标服务的服务列表,目标服务的服务列表包括提供目标服务的至少一个设备的设备信息;基于目标服务的服务列表,从至少一个设备中选择一个设备作为第二设备。
在一种可能的实现方式中,确定模块602,用于基于第一服务调用请求指示目标服务配置在第一区域,根据负载均衡原则从至少一个设备中选择一个配置在第一区域的设备作为第二设备。
在一种可能的实现方式中,第一服务调用请求中携带第一鉴权信息,装置还包括:鉴权模块,用于根据第一鉴权信息对第一设备进行调用鉴权;基于第一设备鉴权通过,执行确定提供目标服务的第二设备的操作。
在一种可能的实现方式中,转换模块603,用于获取第二设备的设备信息与第二鉴权信息,第二设备的设备信息用于指示第二设备提供的目标服务的服务地址,第二鉴权信息用于第二设备对第一设备进行调用鉴权;向第一服务调用请求添加第二鉴权信息与第二设备的设备信息,得到第二服务调用请求。
在一种可能的实现方式中,第一服务调用请求中携带用于标识目标服务的标识信息,转换模块603,用于根据第一服务调用请求中携带的区域信息从注册中心中获取第二设备的设备信息,根据标识信息获取第二鉴权信息。
在一种可能的实现方式中,转换模块603,用于基于第一服务调用请求携带第一鉴权信息,将第一服务调用请求中携带的第一鉴权信息转换为第二鉴权信息。
在一种可能的实现方式中,装置还包括:发送模块,用于向第一设备发送基于第二服务调用请求调用目标服务的调用结果。
在一种可能的实现方式中,调度设备配置在第二区域的一级管理平台,第一设备配置在第二区域的二级管理平台,第二设备配置在第一区域的二级管理平台,第一区域的一级管理平台与第二区域的一级管理平台之间建立通信连接,第一区域的二级管理平台与第二区域的二级管理平台之间未建立通信连接。
在一种可能的实现方式中,第一区域的一级管理平台配置有调度设备对应的备份设备,备份设备用于对调度设备在服务调用过程中进行设备容灾。
上述装置在执行服务调用的过程中,需要跨区域调用服务的第一设备仅需确定需要调用的目标服务,对于服务调用涉及到的其他操作可由调度设备执行。调度设备确定提供该目标服务的第二设备,并对第一服务调用请求进行转换,转发转换得到的第二服务调用请求,以实现目标服务的正常调用,调用过程简单便捷,效率高,无需人工参与,节省了人工成本。
其中,接收模块601、确定模块602和转换模块603均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以接收模块601为例,介绍接收模块601的实现方式。类似的,确定模块602和转换模块603的实现方式可以参考接收模块601的实现方式。
模块作为软件功能单元的一种举例,接收模块601可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,接收模块601可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,接收模块601可以包括至少一个计算设备,如服务器等。或者,接收模块601也可以是利用专用集成电路(application-specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmable logic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合实现。
接收模块601包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。接收模块601包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,接收模块601包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,在其他实施例中,接收模块601可以用于执行服务调用方法中的任意步骤,确定模块602可以用于执行服务调用方法中的任意步骤,转换模块603可以用于执行服务调用方法中的任意步骤,接收模块601、确定模块602、以及转换模块603负责实现的步骤可根据需要指定,通过接收模块601、确定模块602、以及转换模块603分别实现服务调用方法中不同的步骤来实现服务调用装置的全部功能。
本申请还提供一种计算设备700。如图7所示,计算设备700包括:总线702、处理器704、存储器706和通信接口708。处理器704、存储器706和通信接口708之间通过总线702通信。计算设备700可以是服务器或终端设备。应理解,本申请不限定计算设备700中的处理器、存储器的个数。
总线702可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线702可包括在计算设备700各个部件(例如,存储器706、处理器704、通信接口708)之间传送信息的通路。
处理器704可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器706可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器704还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器706中存储有可执行的程序代码,处理器704执行该可执行的程序代码以分别实现前述接收模块、确定模块和转换模块的功能,从而实现服务调用方法。也即,存储器706上存有用于执行服务调用方法的指令。
通信接口708使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备700与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
可选地,计算设备集群包括的至少一个计算设备的结构可参见图7示出的计算设备700。计算设备集群中的一个或多个计算设备700中的存储器706中可以存有相同的用于执行服务调用方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备700的存储器706中也可以分别存有用于执行服务调用方法的部分指令。换言之,一个或多个计算设备700的组合可以共同执行用于执行服务调用方法的指令。
需要说明的是,计算设备集群中的不同的计算设备700中的存储器706可以存储不同的指令,分别用于执行服务调用装置的部分功能。也即,不同的计算设备700中的存储器706存储的指令可以实现接收模块、确定模块和转换模块中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图8示出了一种可能的实现方式。如图8所示,两个计算设备800A和800B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备800A和800B包括总线802、处理器804、存储器806和通信接口808。计算设备800A中的存储器806中存有执行接收模块的功能的指令。同时,计算设备800B中的存储器806中存有执行确定模块和转换模块的功能的指令。
图8所示的计算设备集群之间的连接方式可以是考虑到本申请提供的服务调用方法需要确定提供目标服务的第二设备和向第二设备发送第二服务调用请求,因此考虑将确定模块和转换模块实现的功能交由计算设备800B执行。
应理解,图8中示出的计算设备800A的功能也可以由多个计算设备800完成。同样,计算设备800B的功能也可以由多个计算设备800完成。
本申请实施例还提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行服务调用方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行服务调用方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行服务调用方法。
本申请实施例还提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行如上任一所述的服务调用方法。
本申请实施例还提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行如上任一所述的服务调用方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
用于实现本申请实施例的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的规则查找装置的处理器,使得程序代码在被计算机或其他可编程的规则查找装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本申请实施例的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质等等。信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、设备和模块的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、设备或模块的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以是两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一链路可以被称为第二链路,并且类似地,第二链路可以被称为第一链路。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,根据上下文,短语“若确定...”或“若检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的第一服务调用请求等都是在充分授权的情况下获取的。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的保护范围。
Claims (22)
1.一种服务调用方法,其特征在于,所述方法包括:
调度设备接收第一设备发送的第一服务调用请求,所述第一服务调用请求用于请求调用目标服务;
所述调度设备确定提供所述目标服务的第二设备;
基于所述第二设备与所述第一设备配置在不同区域,所述调度设备将所述第一服务调用请求转换成与所述第二设备匹配的第二服务调用请求,向所述第二设备发送所述第二服务调用请求,所述第二服务调用请求用于调用所述第二设备提供所述目标服务。
2.根据权利要求1所述的方法,其特征在于,所述第一服务调用请求中携带所述目标服务的区域信息,所述调度设备确定提供所述目标服务的第二设备,包括:
从所述第一服务调用请求中提取所述目标服务的区域信息;
根据所述目标服务的区域信息,在包括多个服务列表的注册中心中查找所述目标服务的服务列表,所述目标服务的服务列表包括提供所述目标服务的至少一个设备的设备信息;
基于所述目标服务的服务列表,从所述至少一个设备中选择一个设备作为所述第二设备。
3.根据权利要求2所述的方法,其特征在于,所述从所述至少一个设备中选择一个设备作为所述第二设备,包括:
基于所述第一服务调用请求指示所述目标服务配置在第一区域,根据负载均衡原则从所述至少一个设备中选择一个配置在所述第一区域的设备作为所述第二设备。
4.根据权利要求1-3任一所述的方法,其特征在于,所述第一服务调用请求中携带第一鉴权信息,所述确定提供所述目标服务的第二设备之前,还包括:
根据所述第一鉴权信息对所述第一设备进行调用鉴权;
基于所述第一设备鉴权通过,执行确定提供所述目标服务的第二设备的操作。
5.根据权利要求1-4任一所述的方法,其特征在于,所述将所述第一服务调用请求转换成与所述第二设备匹配的第二服务调用请求,包括:
获取所述第二设备的设备信息与第二鉴权信息,所述第二设备的设备信息用于指示所述第二设备提供的所述目标服务的服务地址,所述第二鉴权信息用于所述第二设备对所述第一设备进行调用鉴权;
向所述第一服务调用请求添加所述第二鉴权信息与所述第二设备的设备信息,得到所述第二服务调用请求。
6.根据权利要求5所述的方法,其特征在于,所述第一服务调用请求中携带用于标识所述目标服务的标识信息,所述获取所述第二设备的设备信息与第二鉴权信息,包括:
根据所述第一服务调用请求中携带的区域信息从注册中心中获取所述第二设备的设备信息,根据所述标识信息获取所述第二鉴权信息。
7.根据权利要求5或6所述的方法,其特征在于,所述向所述第一服务调用请求添加所述第二鉴权信息,包括:
基于所述第一服务调用请求携带第一鉴权信息,将所述第一服务调用请求中携带的所述第一鉴权信息转换为所述第二鉴权信息。
8.根据权利要求1-7任一所述的方法,其特征在于,所述向所述第二设备发送所述第二服务调用请求之后,还包括:
向所述第一设备发送基于所述第二服务调用请求调用所述目标服务的调用结果。
9.根据权利要求1-8任一所述的方法,其特征在于,所述调度设备配置在第二区域的一级管理平台,所述第一设备配置在所述第二区域的二级管理平台,所述第二设备配置在第一区域的二级管理平台,所述第一区域的一级管理平台与所述第二区域的一级管理平台之间建立通信连接,所述第一区域的二级管理平台与所述第二区域的二级管理平台之间未建立通信连接。
10.根据权利要求9所述的方法,其特征在于,所述第一区域的一级管理平台配置有所述调度设备对应的备份设备,所述备份设备用于对所述调度设备在服务调用过程中进行设备容灾。
11.一种服务调用装置,其特征在于,所述装置应用于调度设备,所述装置包括:
接收模块,用于接收第一设备发送的第一服务调用请求,所述第一服务调用请求用于请求调用目标服务;
确定模块,用于确定提供所述目标服务的第二设备;
转换模块,用于基于所述第二设备与所述第一设备配置在不同区域,将所述第一服务调用请求转换成与所述第二设备匹配的第二服务调用请求,向所述第二设备发送所述第二服务调用请求,所述第二服务调用请求用于调用所述第二设备提供所述目标服务。
12.根据权利要求11所述的装置,其特征在于,所述第一服务调用请求中携带所述目标服务的区域信息,所述确定模块,用于从所述第一服务调用请求中提取所述目标服务的区域信息;根据所述目标服务的区域信息,在包括多个服务列表的注册中心中查找所述目标服务的服务列表,所述目标服务的服务列表包括提供所述目标服务的至少一个设备的设备信息;基于所述目标服务的服务列表,从所述至少一个设备中选择一个设备作为所述第二设备。
13.根据权利要求12所述的装置,其特征在于,所述确定模块,用于基于所述第一服务调用请求指示所述目标服务配置在第一区域,根据负载均衡原则从所述至少一个设备中选择一个配置在所述第一区域的设备作为所述第二设备。
14.根据权利要求11-13任一所述的装置,其特征在于,所述第一服务调用请求中携带第一鉴权信息,所述装置还包括:鉴权模块,用于根据所述第一鉴权信息对所述第一设备进行调用鉴权;基于所述第一设备鉴权通过,执行确定提供所述目标服务的第二设备的操作。
15.根据权利要求11-14任一所述的装置,其特征在于,所述转换模块,用于获取所述第二设备的设备信息与第二鉴权信息,所述第二设备的设备信息用于指示所述第二设备提供的所述目标服务的服务地址,所述第二鉴权信息用于所述第二设备对所述第一设备进行调用鉴权;向所述第一服务调用请求添加所述第二鉴权信息与所述第二设备的设备信息,得到所述第二服务调用请求。
16.根据权利要求15所述的装置,其特征在于,所述第一服务调用请求中携带用于标识所述目标服务的标识信息,所述转换模块,用于根据所述第一服务调用请求中携带的区域信息从注册中心中获取所述第二设备的设备信息,根据所述标识信息获取所述第二鉴权信息。
17.根据权利要求15或16所述的装置,其特征在于,所述转换模块,用于基于所述第一服务调用请求携带第一鉴权信息,将所述第一服务调用请求中携带的所述第一鉴权信息转换为所述第二鉴权信息。
18.根据权利要求11-17任一所述的装置,其特征在于,所述装置还包括:发送模块,用于向所述第一设备发送基于所述第二服务调用请求调用所述目标服务的调用结果。
19.根据权利要求11-18任一所述的装置,其特征在于,所述调度设备配置在第二区域的一级管理平台,所述第一设备配置在所述第二区域的二级管理平台,所述第二设备配置在第一区域的二级管理平台,所述第一区域的一级管理平台与所述第二区域的一级管理平台之间建立通信连接,所述第一区域的二级管理平台与所述第二区域的二级管理平台之间未建立通信连接。
20.根据权利要求19所述的装置,其特征在于,所述第一区域的一级管理平台配置有所述调度设备对应的备份设备,所述备份设备用于对所述调度设备在服务调用过程中进行设备容灾。
21.一种计算设备集群,其特征在于,所述计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器;所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1-10中任一所述的服务调用方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行权利要求1-10中任一所述的服务调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211191249.6A CN117834699A (zh) | 2022-09-28 | 2022-09-28 | 服务调用方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211191249.6A CN117834699A (zh) | 2022-09-28 | 2022-09-28 | 服务调用方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117834699A true CN117834699A (zh) | 2024-04-05 |
Family
ID=90508302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211191249.6A Pending CN117834699A (zh) | 2022-09-28 | 2022-09-28 | 服务调用方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834699A (zh) |
-
2022
- 2022-09-28 CN CN202211191249.6A patent/CN117834699A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088903B2 (en) | Hybrid cloud network configuration management | |
AU2019302940B2 (en) | Implementing a blockchain-based web service | |
US20220084031A1 (en) | Backend architecture method and system for aggregate payment, computer device, and storage medium | |
CN112150141A (zh) | 一种区块链共识方法、装置和系统 | |
US11953997B2 (en) | Systems and methods for cross-regional back up of distributed databases on a cloud service | |
CN106911648B (zh) | 一种环境隔离方法及设备 | |
US20140059174A1 (en) | Method and System for Automatic Distribution and Installation of A Client Certificate in A Secure Manner | |
US8682954B2 (en) | Replication in a network environment | |
CN109040263B (zh) | 基于分布式系统的业务处理方法及装置 | |
CN111158949A (zh) | 容灾架构的配置方法、切换方法及装置、设备和存储介质 | |
CN113837760A (zh) | 数据处理方法、装置、计算机设备以及存储介质 | |
CN110012111B (zh) | 一种数据服务集群系统及数据处理方法 | |
WO2023056713A1 (zh) | 物联网卡的云平台绑定方法、系统、设备及介质 | |
CN111866993B (zh) | 无线局域网连接管理方法、装置、软件程序及存储介质 | |
US11595471B1 (en) | Method and system for electing a master in a cloud based distributed system using a serverless framework | |
CN117834699A (zh) | 服务调用方法、装置、设备及计算机可读存储介质 | |
CN106936643B (zh) | 一种设备联动方法以及终端设备 | |
CN117061538A (zh) | 一种基于区块链网络的共识处理方法及相关装置 | |
CN110502218B (zh) | 智能合约开发方法、装置、计算机设备及存储介质 | |
CN111866171A (zh) | 报文处理方法、装置、电子设备和介质 | |
US20150058974A1 (en) | Bus connection program and apparatus | |
US20030149870A1 (en) | Remote services wide area network connection anti-spoofing control | |
US11122081B2 (en) | Preventing unauthorized access to information resources by deploying and utilizing multi-path data relay systems and sectional transmission techniques | |
CN116804949B (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
US20230419067A1 (en) | ENHANCED QUICK RESPONSE (qr) CODE SCAN SECURITY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |