CN110602169A - 服务调用方法、装置、计算机设备和存储介质 - Google Patents
服务调用方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110602169A CN110602169A CN201910745756.1A CN201910745756A CN110602169A CN 110602169 A CN110602169 A CN 110602169A CN 201910745756 A CN201910745756 A CN 201910745756A CN 110602169 A CN110602169 A CN 110602169A
- Authority
- CN
- China
- Prior art keywords
- service
- service calling
- registration
- monitoring
- target server
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及计算机领域,提供了一种服务调用方法、装置、计算机设备和存储介质。所述方法包括:基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测;通过多个所述监测脚本将监测结果发送至服务调用设备,使所述服务调用设备根据所述监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至所述目标服务器;基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识,使所述服务调用设备根据所述提供方标识访问所请求的服务订阅。采用本方法能够提高服务调用的速率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及服务调用方法、装置、计算机设备和存储介质。
背景技术
随着云技术的发展,服务调用技术已经得到了越来越广泛的应用。尤其是基于注册中心的服务调用技术。在服务调用的过程中,服务调用方向注册中心发送服务请求,通过注册中心获取到服务提供方的服务地址并返回至服务调用方,以此实现服务的远程调用。
大部分服务调用技术通过主从模式的注册中心实现服务的远程调用。注册中心内设有多个服务器组成的服务器集群,服务器集群采用主从机制进行数据传输。若主服务器出现故障,注册中心会根据各个服务器的票选结果推选出新的主服务器,但是需要保证至少一半以上的服务器同意才能推选出新的主服务器。该注册中心需至少一半以上的服务器正常运行时,才能保证数据的一致性,由此导致注册中心的可用性降低。
发明内容
基于此,有必要针对上述技术问题,提供一种服务调用方法、装置、计算机设备和存储介质。
一种服务调用方法,所述方法包括:
基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测;
通过多个所述监测脚本将监测结果发送至服务调用设备,使所述服务调用设备根据所述监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至所述目标服务器;
基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识,使所述服务调用设备根据所述提供方标识访问所请求的服务订阅。
在其中一个实施例中,所述监测结果包括注册服务器对应的注册方标识、所属数据中心以及运行负载;所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的同一数据中心内所述运行负载最小的注册服务器。
在其中一个实施例中,所述方法还包括:
当所述属于相同的数据中心的注册服务器的运行负载超过阈值时,所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的属于相邻的数据中心,且所述运行负载最小的注册服务器。
在其中一个实施例中,所述服务调用请求包括服务订阅名称和调用方数据中心标识;所述基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识包括:
所述目标服务器根据所述服务调用请求获取所述服务提供设备的注册信息集合,所述注册信息集合中的注册信息包括提供方服务名称、提供方标识以及提供方数据中心标识;
所述目标服务器从所述注册信息集合中,筛选得到所述提供方服务名称与所述服务订阅名称一致、以及提供方数据中心标识与调用方数据中心标识一致的注册信息;
所述目标服务器将筛选得到的所述注册信息所对应的提供方标识返回所述服务调用设备。
在其中一个实施例中,所述基于所述目标服务器获取所述服务提供设备的注册信息集合包括:
将监测到的所述服务提供设备的提供方注册信息存储至第一数据库;
基于所述监测脚本将所述第一数据库的内容同步至第二数据库;
基于所述目标服务器从所述第二数据库中获取由所述服务提供设备的提供方注册信息形成的注册信息集合。
在其中一个实施例中,所述方法还包括:
当再次接收到所述服务调用设备发送的服务调用请求时,获取所述服务调用请求携带的调用方注册信息;
查询所述第二数据库是否存储有与服务调用设备对应的调用方注册信息;
若否,将接收到的所述服务调用设备的调用方注册信息存储至第一数据库。
一种服务调用装置,所述装置包括:
监测模块,用于基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测;
发送模块,用于通过多个所述监测脚本将监测结果发送至服务调用设备,使所述服务调用设备根据所述监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至所述目标服务器;
地址获取模块,用于基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识,使所述服务调用设备根据所述提供方标识访问所请求的服务订阅。
在其中一个实施例中,所述监测结果包括注册服务器对应的注册方标识、所属数据中心以及运行负载;所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的同一数据中心内所述运行负载最小的注册服务器。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述服务调用方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述服务调用方法的步骤。
上述服务调用方法、装置、计算机设备和存储介质,通过与注册服务器对应设置的监测脚本来监测注册服务器的运行状态,并使得服务调用设备根据监测结果筛选出最适合接收响应服务调用请求的目标设备,有效的解决了服务调用设备可以从多个注册服务器中任意选取目标服务器来响应服务调用请求,只要有一个注册服务器处于运行状态就可以成功的响应服务调用设备发送的服务调用请求,提高了注册服务器的可用性,由此提高服务调用的速率。
附图说明
图1为一个实施例中服务调用方法的应用场景图;
图2为一个实施例中服务调用步骤的流程示意图;
图3为一个实施例中服务调用装置的结构框图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的服务调用方法,可以应用于如图1所示的应用环境中。该服务调用方法应用于服务调用系统。该服务调用系统包括服务调用设备102、注册服务器104、服务提供设备106和监测脚本108。注册中心可以包括多个注册服务器104,每个注册服务器104都部署有相应的监测脚本108。监测脚本108可以是包括多个静态文件的函数库;监测脚本108用于监测对应注册服务器的运行状态并将监测结果发送至服务调用设备102。服务调用设备102根据监测结果从多个注册服务器104中筛选出目标服务器110,并将服务调用设备发送的服务调用请求发送给目标服务器110,目标服务器110用于响应该服务调用请求。其中,服务调用设备102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备;服务提供设备106或服务注册中心104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种服务调用方法,以该方法应用于图1中的监测脚本为例进行说明,包括以下步骤:
步骤202,基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测。
其中,注册服务器用于连接服务调用设备和服务提供设备,根据服务调用设备的服务调用请求获取相应的服务提供设备的提供方标识。
监测脚本可以是包括多个静态文件的函数库;监测脚本用于监测注册服务器的运行状态并将监测结果发送至服务调用设备,还用于接收注册服务器、服务调用设备和服务提供设备的注册信息。
具体地,在每个注册服务器上部署有对应的监测脚本,当注册服务器启动时,注册服务器调用监测脚本对注册服务器的运行状态进行监测,获得多个注册服务器的运行状态的监测结果。其中监测方式可以是实时对运行状态进行监测,也可以定时对注册服务器的运行状态进行监测。
步骤204,通过多个监测脚本将监测结果发送至服务调用设备,使服务调用设备根据监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至目标服务器。
其中,目标服务器是基于注册服务器的运行状态的监测结果,从注册服务器中筛选出的可用于响应服务调用请求的注册服务器。
服务调用请求是服务调用设备发起的对指定服务进行调用的请求。指定服务是指服务调用设备指定要进行调用的服务;比如,淘宝商品搜索服务或手机费充值服务等服务。指定服务运行在服务提供设备上,通过从注册中心获得的指定服务的提供方标识,服务调用设备根据提供方标识实现指定服务的访问和调用。
服务调用请求可以包括服务订阅名称、调用方标识以及调用方数据中心标识。调用方标识是用于区分不同设备的标识,可以采用数字、字母或字符串中的一种或多种组合进行标识;调用方标识可以是服务地址,例如IP地址(Internet Protocol Address,互联网协议)、端口号中。IP地址是:IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配的一个逻辑地址。端口号是标识端口的一种标识,端口是设备间进行数据传递的接口,每个端口的功能和作用不一样,一个IP地址对应有多个端口。
服务订阅名称是指服务调用设备需请求服务调用的服务标识,例如,水电缴费服务。调用方数据中心标识是用于区分不同设备所处的互联网数据中心,可以采用数据中心IDC进行标识;例如,IDC1表示设备位于数据中心1。
具体地,基于多个监测脚本所监测到的各自对应服务器的运行状态的监测结果,监测脚本将监测结果通过网络传输至服务调用设备。监测结果发送的触发时机可以是在服务调用设备启动时触发,也可以在服务调用设备发起服务调用请求时触发。网络传输方式可以包括有线网络传输和无线网络传输。服务调用设备接收由监测脚本传输的多个注册服务器的监测结果,根据监测结果从多个注册服务器中筛选出可以响应服务调用请求的目标服务器。
服务调用设备也可以通过调用目标脚本,对接收到的监测结果进行分析处理,以筛选出目标服务器;并从监测结果中查找得到目标服务器对应的注册方标识。进一步,服务调用设备通过加载目标脚本来拦截服务调用请求,根据获得的注册方标识将所拦截的服务调用请求发送至目标服务器。目标脚本是与监测脚本相对应的静态文件,可以是包括多个静态文件的函数库;目标脚本是部署在服务调用设备上,用于根据监测结果来筛选目标服务器;目标脚本还用于拦截服务调用设备发送的服务调用请求并将拦截后的服务器调用请求传输至目标服务器。
监测结果包括注册服务器对应的注册方标识、所属数据中心以及运行负载。当注册服务器的运行负载超过阈值时,则需要选取其他注册服务器来响应服务调用请求。例如,注册服务器A的注册方服务器地址为183.15.176.74,所属数据中心用IDC1表示;当注册服务器A的运行负载没有超过阈值时,此时监测脚本获得的注册服务器A的监测结果为{183.15.176.74,IDC1,正常运行}。
在其中一个实施例中,目标服务器是所述服务调用设备根据所述监测结果筛选得到的同一数据中心内所述运行负载最小的注册服务器。
具体地,基于得到的多个注册服务器的监测结果,服务调用设备根据监测结果携带的所属数据中心对应的注册数据中心标识查找与调用方数据中心标识一致的监测信息,将其作为待选的监测信息;进一步,从待选的监测信息中,筛选运行负载最小的监测信息所对应的注册服务器作为目标服务器,并从筛选的监测信息中获取目标服务器的注册方标识。
在其中一个实施例中,当所述属于相同的数据中心的注册服务器的运行负载超过阈值时,所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的属于相邻的数据中心,且所述运行负载最小的注册服务器。
在其中一个实施例中,若待选的监测信息的运行负载都超过阈值,则服务调用设备从监测结果中选取与调用方数据中心标识相邻的注册方数据中心标识所在的监测信息,将其作为待选的监测信息;进一步,从待选的监测信息中,筛选运行负载最小的监测信息所对应的注册服务器作为目标服务器,并从筛选的监测信息中获取目标服务器的注册方标识。
通过选取与服务调用设备处于同一数据中心的注册服务器作为目标服务器,也就是说将距离较近的注册服务器作为目标服务响应服务调用请求,提高了响应速度;再者,将距离较近的两个服务器进行网络连接,使得网络连接更稳定。
在其中一个实施例中,通过多个监测脚本将监测结果发送至服务调用设备还可以包括:监测脚本将各自监测到的注册服务器的运行状态发送至第一数据库中,将监测到的运行状态与对应的注册方注册信息关联存储,形成对应注册服务器的监测结果;监测脚本从第一数据库中获取注册服务器的监测结果集合,并将获取到的监测结果集合传输至服务调用设备。当监测到该注册服务器的运行状态发生变化时,监测脚本生成状态更新指令,将监测到的最新运行状态更新至第一数据库中。其中,运行状态包括运行负载、运行正常以及运行故障。
在其中一个实施例中,可以在目标服务器上建立一个标准数据传输端口,该端口是基于TCP(Transmission Control Protocol,传输控制协议)与Json(JavaScript ObjectNotation,JS对象简谱)格式的数据传输端口,可以支持多种服务调用设备的服务调用,方便扩展以及二次开发工作。
步骤206,基于目标服务器响应服务调用请求,根据服务调用请求携带的服务订阅名称向服务调用设备返回相应服务提供设备的提供方标识,使服务调用设备根据提供方标识访问所请求的服务订阅。
具体地,目标服务器接收从目标脚本传输的服务调用请求,并响应服务调用请求;根据响应操作,目标服务器从数据库中获取服务提供设备的注册信息集合,注册信息集合中包含与服务提供设备对应的注册信息,每个注册信息包括提供方服务名称、提供方标识以及提供方数据中心标识。目标服务器根据服务调用请求携带的服务订阅名称,从注册信息集合中查询得到与服务订阅名称一致的注册信息;将查询得到的注册信息所对应的提供方标识,按照调用方标识返回给服务调用设备。服务调用设备接收返回的提供方标识,依据提供方标识访问所请求的服务订阅信息。
在其中一个实施例中,在目标服务器响应服务调用请求之前,还包括以下步骤:目标服务器接收服务调用设备发送的设备健康参数,判断设备健康参数是否符合服务调用设备的正常运行参数,根据判断结果响应服务调用请求。具体地,服务调用设备加载目标脚本,定期或实时对服务调用设备进行测试,得到服务调用设备的设备健康参数并将获取的设备健康参数传输给目标服务器。其中,设备健康参数用于判断设备是否处于正常运行状态,可以包括数据加载是否成功参数、应用程序启动是否成功参数等参数。目标服务器根据接收到的设备参数判断服务调用设备是否处于正常运行状态;若是,则接收并响应服务调用请求。在服务调用设备启动后,向注册服务器发送注册信息后,进一步判断服务调用设备的设备健康参数是否处于正常运行状态,提高了服务调用的安全性。
在其中一个实施例中,当服务提供设备具有访问权限时,目标服务器需要对服务调用设备进行访问权限验证,根据验证结果将服务提供设备的提供方标识返回至服务调用设备。比如金融系统中有些转账业务,只能让指定的设备进行调用,此时,需要对服务调用设备进行访问权限验证。通过注册服务器对服务调用设备进行权限验证来确定是否分发提供方地址,如果非授权访问的服务调用设备则无法获得提供方地址,提高了服务访问的安全性。
在其中一个实施例中,服务调用设备定期向目标服务器发送心跳数据,即以一定的频率向目标服务器发送服务调用请求。其中,心跳数据表示服务调用设备与服务提供设备建立的服务调用通道保持正常连接,如果服务调用设备未接收到从目标服务器返回的提供方标识,则表明服务调用请求失败。若目标服务器在预设时间内没有接收到心跳数据,则目标服务器会自动断开与服务调用设备的连接,同时生成删除服务调用设备的指令发送至第一数据库,指示第一数据库删除服务调用设备的调用方注册信息。此时,若服务调用设备再次发起服务调用请求,需重新建立与注册服务器的连接,同时还需将服务调用设备的注册信息存储至第一数据库中,以此提高了服务调用的安全性。
在上述实施例中,通过与注册服务器对应设置的监测脚本来监测注册服务器的运行状态,并使得服务调用设备根据监测结果筛选出最适合接收响应服务调用请求的目标设备,有效的解决了服务调用设备可以从多个注册服务器中任意选取目标服务器来响应服务调用请求,也就是说注册中心只要有一个注册服务器正常运行就可以成功的响应服务调用设备发送的服务调用请求,提高了注册服务器的可用性,由此提高服务调用的速率。
在一个实施例中,所述服务调用请求包括服务订阅名称和调用方数据中心标识;所述基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识包括:所述目标服务器根据所述服务调用请求获取所述服务提供设备的注册信息集合,所述注册信息集合中的注册信息包括提供方服务名称、提供方标识以及提供方数据中心标识;所述目标服务器从所述注册信息集合中,筛选得到所述提供方服务名称与所述服务订阅名称一致、以及提供方数据中心标识与调用方数据中心标识一致的注册信息;所述目标服务器将筛选得到的所述注册信息所对应的提供方标识返回所述服务调用设备。
具体地,目标服务器接收从服务调用设备发送的服务调用请求,并响应该服务调用请求;其中服务调用请求携带有服务订阅名称和调用方数据中心标识。进一步,目标服务器从数据库中获取多个服务提供设备各自对应的注册信息的注册信息集合,其中注册信息包括提供方服务名称、提供方标识以及提供方数据中心标识;基于获取的服务提供设备的注册信息集合,目标服务器从注册信息集合中,选取提供方服务器名称与服务调用请求所携带的服务订阅名称一致的注册信息,作为待选注册信息;从待选注册信息中,选取提供方数据中心标识与调用方数据中心标识一致的待选注册信息作为目标注册信息。这里是先根据服务订阅名称筛选出待选注册信息,再依据调用方数据中心获得处于同一数据中心的服务提供设备的注册信息。也可以直接筛选出同时满足提供方服务名称与服务订阅名称一致、且提供方数据中心标识与调用方数据中心标识一致的注册信息作为目标注册信息。进一步,服务器提取目标注册信息所携带的提供方标识作为目标服务地址,并将获得的目标服务地址返回到服务调用设备。
在其中一个实施例中,若从待选注册信息中,没有查询到提供方数据中心标识与调用方数据中心标识一致的待选注册信息,则选取与调用方数据中心标识相邻的提供方数据中心标识所对应的待选注册信息,将其作为目标注册信息。可以根据调用方数据中心标识对应的数据中心的位置坐标,选取距离最近的提供方数据标识对应的数据中心作为相邻数据中心。
在其中一个实施例中,所述基于所述目标服务器根据所述服务调用请求获取所述服务提供设备的注册信息集合包括:将监测到的所述服务提供设备的提供方注册信息存储至第一数据库;基于所述监测脚本将所述第一数据库的内容同步至第二数据库;基于所述目标服务器从所述第二数据库中获取由所述服务提供设备的提供方注册信息形成的注册信息集合。
其中,第一数据库是预先建立的用于存储注册信息的数据库,第一数据库存储的数据包括服务调用方的注册信息、服务提供方的注册信息以及注册服务器的注册信息。第一数据库主要用于服务调用设备、服务提供设备以及注册服务器写入数据。
第二数据库存储的内容与第一数据库的内容一致,用于服务调用设备从第二数据库中读取数据;比如在服务调用过程中,服务调用设备为了获取服务提供设备的服务地址,从第二数据库中获取服务提供设备的服务地址。第一数据库或第二数据库可以采用MySQL数据库。
调用方注册信息包括:调用方服务名称、调用方标识以及调用方数据中心标识;提供方注册信息包括:提供方服务名称、提供方标识以及提供方数据中心标识;注册方注册信息包括:注册方标识以及注册方数据中心标识。
具体地,在服务调用设备开启时,接收由多个监测脚本发送的监测结果;根据监测结果在多个注册服务器中筛选出目标服务器,建立服务调用设备与目标服务器之间的网络连接;通过建立的网络连接,将服务调用设备的调用方注册信息上报至部署在目标服务器的监测脚本。同理,对于服务提供设备的提供方注册信息的获取方式与调用方注册信息的获取方式一样。同时,注册服务器在启动时,也将注册方注册信息上报至对应的监测脚本中。监测脚本将获取到的注册方注册信息、调用方注册信息以及提供方注册信息存储至第一数据库中,同时生成数据更新指令。根据数据更新指令,监测脚本将第一数据库的内容更新至第二数据库;进而,目标服务器从更新后的第二数据库中提取由服务提供设备的提供方注册信息。
通过第一数据库对服务调用设备、服务提供设备以及注册服务器的注册信息进行存储,也就说第一数据库只用于写入数据;第二数据库只用于服务调用设备读取数据,第二数据库中存储的数据与第一数据库中的数据一致,当第一数据库中数据发生变化时,将第一数据库的内容同步至第二数据库,以此保证两数据库的内容一致。采用两个数据库分别执行写入数据和读取数据,提高了服务调用的处理速率,并且在设备发生故障时可以更快速的恢复数据。
在其中一个实施例中,第一数据库还与操作界面进行网络连接,通过该操作界面可以对第一数据库中存储的内容进行改写,以此实现服务调用设备向指定注册服务器中获取指定服务提供设备的提供方地址,方便控制服务调用过程。
在其中一个实施例中,方法还包括:当再次接收到所述服务调用设备发送的服务调用请求时,获取所述服务调用请求携带的调用方注册信息;查询所述第二数据库是否存储有与服务调用设备对应的调用方注册信息;若否,将接收到的所述服务调用设备的调用方注册信息存储至第一数据库。
具体地,当再次接收到所述服务调用设备发送的服务调用请求时,通过监测脚本接收服务调用请求携带的调用方注册信息,根据调用方注册信息的调用方标识,从第二数据库中查询是否存储有与调用方标识一致的调用方注册信息,根据查询结果判断是否将获取的调用方注册信息存储至第一数据库。若查询有,则对接收到的调用方注册信息不做存储处理;若查询没有,则将接收到的服务调用设备的调用方注册信息存储至第一数据库中。在存储设备的注册信息之前,先判断数据库中是否存储有对应设备的注册信息,若没有存储,则需要将对应设备的注册信息存储至数据库,以此提高了数据库的利用率。
在其中一个实施例中,每个注册中心服务器具有对应的缓存,相应的,目标服务器也有对应的缓存。此时,目标服务器不需要从第二数据库中获取由服务提供设备的提供方注册信息形成的注册信息集合,可以直接从目标服务器对应的缓存中获取提供方的注册信息集合。当大量服务调用设备同时发起服务调用请求时,此时第二数据库的访问量将大大增加,导致访问速度变慢甚至崩溃,对于这种情况,显然只从第二数据库中读取数据是远远不够的。在每个注册服务器内设置有对应的缓存,这种多级缓存机制可以提升容灾和吞吐量,在大量服务调用请求发起时,提高服务调用的速率;同时当数据库不可用、或者数据同步备份出现问题的时候,依然可以从缓存中获得所需访问的提供方地址。
在本实施例中,对于服务调用设备存在多个数据中心时,支持服务调用设备就近连接策略,即优先连接与服务调用设备处于同一数据中心的服务提供设备;并且在同一数据中心的服务提供设备都发生故障时,可以支持服务调用设备的跨区访问连接,这种多种连接的容灾方式,便于服务调用时不同数据中心的分区管理,又可提供有效的故障应对策略。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供了一种服务调用装置300,包括:监测模块302、发送模块304和地址获取模块306,其中:
监测模块302,用于基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测。
发送模块304,用于通过多个监测脚本将监测结果发送至服务调用设备,使服务调用设备根据监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至目标服务器。
地址获取模块306,用于基于目标服务器响应服务调用请求,根据服务调用请求携带的服务订阅名称向服务调用设备返回相应服务提供设备的提供方标识,使服务调用设备根据提供方标识访问所请求的服务订阅。
在其中一个实施例中,所述监测结果包括注册服务器对应的注册方标识、所属数据中心以及运行负载;所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的同一数据中心内所述运行负载最小的注册服务器。
在其中一个实施例中,当所述属于相同的数据中心的注册服务器的运行负载超过阈值时,所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的属于相邻的数据中心,且所述运行负载最小的注册服务器。
在其中一个实施例中,上述地址获取模块还用于基于所述目标服务器根据所述服务调用请求获取所述服务提供设备的注册信息集合,所述注册信息集合中的注册信息包括提供方服务名称、提供方标识以及提供方数据中心标识;所述目标服务器从所述注册信息集合中,筛选得到所述提供方服务名称与所述服务订阅名称一致、以及提供方数据中心标识与调用方数据中心标识一致的注册信息;所述目标服务器将筛选得到的所述注册信息所对应的提供方标识返回所述服务调用设备。
在其中一个实施例中,上述地址获取模块还用于将监测到的所述服务提供设备的提供方注册信息存储至第一数据库;基于所述监测脚本将所述第一数据库的内容同步至第二数据库;基于所述目标服务器从所述第二数据库中获取由所述服务提供设备的提供方注册信息形成的注册信息集合。
在其中一个实施例中,上述地址获取模块还用于当再次接收到所述服务调用设备发送的服务调用请求时,获取所述服务调用请求携带的调用方注册信息;查询所述第二数据库是否存储有与服务调用设备对应的调用方注册信息;若否,将接收到的所述服务调用设备的调用方注册信息存储至第一数据库。
在本实施例中,通过与注册服务器对应设置的监测脚本来监测注册服务器的运行状态,并使得服务调用设备根据监测结果筛选出最适合接收响应服务调用请求的目标设备,有效的解决了服务调用设备可以从多个注册服务器中任意选取目标服务器来响应服务调用请求,只要有一个注册服务器处于运行状态就可以成功的响应服务调用设备发送的服务调用请求,提高了注册服务器的可用性,由此提高服务调用的速率。
关于服务调用装置的具体限定可以参见上文中对于服务调用方法的限定,在此不再赘述。上述服务调用装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务提供设备的注册信息集合。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务调用方法。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请任意一个实施例中提供的服务调用方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请任意一个实施例中提供的服务调用方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种服务调用方法,所述方法包括:
基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测;
通过多个所述监测脚本将监测结果发送至服务调用设备,使所述服务调用设备根据所述监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至所述目标服务器;
基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识,使所述服务调用设备根据所述提供方标识访问所请求的服务订阅。
2.根据权利要求1所述的方法,其特征在于,所述监测结果包括注册服务器对应的注册方标识、所属数据中心以及运行负载;所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的同一数据中心内所述运行负载最小的注册服务器。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述属于相同的数据中心的注册服务器的运行负载超过阈值时,所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的属于相邻的数据中心,且所述运行负载最小的注册服务器。
4.根据权利要求1所述的方法,其特征在于,所述服务调用请求包括服务订阅名称和调用方数据中心标识;所述基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识包括:
基于所述目标服务器根据所述服务调用请求获取所述服务提供设备的注册信息集合,所述注册信息集合中的注册信息包括提供方服务名称、提供方标识以及提供方数据中心标识;
所述目标服务器从所述注册信息集合中,筛选得到所述提供方服务名称与所述服务订阅名称一致、以及提供方数据中心标识与调用方数据中心标识一致的注册信息;
所述目标服务器将筛选得到的所述注册信息所对应的提供方标识返回所述服务调用设备。
5.根据权利要求4所述的方法,其特征在于,所述基于所述目标服务器根据所述服务调用请求获取所述服务提供设备的注册信息集合包括:
将监测到的所述服务提供设备的提供方注册信息存储至第一数据库;
基于所述监测脚本将所述第一数据库的内容同步至第二数据库;
基于所述目标服务器从所述第二数据库中获取由所述服务提供设备的提供方注册信息形成的注册信息集合。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当再次接收到所述服务调用设备发送的服务调用请求时,获取所述服务调用请求携带的调用方注册信息;
查询所述第二数据库是否存储有与服务调用设备对应的调用方注册信息;
若否,将接收到的所述服务调用设备的调用方注册信息存储至第一数据库。
7.一种服务调用装置,其特征在于,所述装置包括:
监测模块,用于基于部署在多个注册服务器上的监测脚本分别对相应注册服务器的运行状态进行监测;
发送模块,用于通过多个所述监测脚本将监测结果发送至服务调用设备,使所述服务调用设备根据所述监测结果在多个注册服务器中筛选出目标服务器,并将拦截得到的服务调用请求发送至所述目标服务器;
地址获取模块,用于基于所述目标服务器响应所述服务调用请求,根据所述服务调用请求携带的服务订阅名称向所述服务调用设备返回相应服务提供设备的提供方标识,使所述服务调用设备根据所述提供方标识访问所请求的服务订阅。
8.根据权利要求7所述的装置,其特征在于,所述监测结果包括注册服务器对应的注册方标识、所属数据中心以及运行负载;所述目标服务器是所述服务调用设备根据所述监测结果筛选得到的同一数据中心内所述运行负载最小的注册服务器。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910745756.1A CN110602169B (zh) | 2019-08-13 | 2019-08-13 | 服务调用方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910745756.1A CN110602169B (zh) | 2019-08-13 | 2019-08-13 | 服务调用方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110602169A true CN110602169A (zh) | 2019-12-20 |
CN110602169B CN110602169B (zh) | 2022-11-29 |
Family
ID=68853964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910745756.1A Active CN110602169B (zh) | 2019-08-13 | 2019-08-13 | 服务调用方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110602169B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110913025A (zh) * | 2019-12-31 | 2020-03-24 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
CN111147588A (zh) * | 2019-12-27 | 2020-05-12 | 上海浦东发展银行股份有限公司 | 企业级微服务平台中实现跨域跨中心通信的方法及系统 |
CN111147567A (zh) * | 2019-12-23 | 2020-05-12 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
CN112612625A (zh) * | 2020-12-26 | 2021-04-06 | 中国农业银行股份有限公司 | 一种服务调用的方法及装置 |
CN113448594A (zh) * | 2021-06-29 | 2021-09-28 | 京东科技控股股份有限公司 | 服务的处理方法、装置、计算机设备及存储介质 |
CN114760357A (zh) * | 2022-03-23 | 2022-07-15 | 北京字节跳动网络技术有限公司 | 一种请求处理方法、装置、计算机设备和存储介质 |
CN114756306A (zh) * | 2022-03-30 | 2022-07-15 | Oppo广东移动通信有限公司 | 服务调用方法、装置、设备及存储介质 |
CN115665246A (zh) * | 2022-09-01 | 2023-01-31 | 浪潮通信信息系统有限公司 | 注册请求处理方法、装置、设备及存储介质 |
WO2023202182A1 (zh) * | 2022-04-20 | 2023-10-26 | 京东科技信息技术有限公司 | 后端服务器管理方法、装置、可读介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685237A (zh) * | 2012-05-16 | 2012-09-19 | 东南大学 | 一种集群环境下请求会话保持与调度的方法 |
CN105141541A (zh) * | 2015-09-23 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于任务的动态负载均衡调度方法及装置 |
CN105227602A (zh) * | 2014-06-20 | 2016-01-06 | 北京新媒传信科技有限公司 | 一种负载均衡的方法、客户端、注册服务器和系统 |
CN105450757A (zh) * | 2015-12-02 | 2016-03-30 | 联动优势电子商务有限公司 | 一种服务管理方法及系统 |
CN108366132A (zh) * | 2018-03-13 | 2018-08-03 | 平安普惠企业管理有限公司 | 服务器间的服务管理方法、装置、计算机设备和存储介质 |
CN108762949A (zh) * | 2018-05-21 | 2018-11-06 | 招银云创(深圳)信息技术有限公司 | 集中调度方法、系统、计算机设备和存储介质 |
CN109257440A (zh) * | 2018-10-29 | 2019-01-22 | 南京南瑞信息通信科技有限公司 | 一种基于服务注册中心的服务发现和客户端负载均衡方法 |
-
2019
- 2019-08-13 CN CN201910745756.1A patent/CN110602169B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685237A (zh) * | 2012-05-16 | 2012-09-19 | 东南大学 | 一种集群环境下请求会话保持与调度的方法 |
CN105227602A (zh) * | 2014-06-20 | 2016-01-06 | 北京新媒传信科技有限公司 | 一种负载均衡的方法、客户端、注册服务器和系统 |
CN105141541A (zh) * | 2015-09-23 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 一种基于任务的动态负载均衡调度方法及装置 |
CN105450757A (zh) * | 2015-12-02 | 2016-03-30 | 联动优势电子商务有限公司 | 一种服务管理方法及系统 |
CN108366132A (zh) * | 2018-03-13 | 2018-08-03 | 平安普惠企业管理有限公司 | 服务器间的服务管理方法、装置、计算机设备和存储介质 |
CN108762949A (zh) * | 2018-05-21 | 2018-11-06 | 招银云创(深圳)信息技术有限公司 | 集中调度方法、系统、计算机设备和存储介质 |
CN109257440A (zh) * | 2018-10-29 | 2019-01-22 | 南京南瑞信息通信科技有限公司 | 一种基于服务注册中心的服务发现和客户端负载均衡方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147567A (zh) * | 2019-12-23 | 2020-05-12 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
CN111147588A (zh) * | 2019-12-27 | 2020-05-12 | 上海浦东发展银行股份有限公司 | 企业级微服务平台中实现跨域跨中心通信的方法及系统 |
CN110913025A (zh) * | 2019-12-31 | 2020-03-24 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
CN110913025B (zh) * | 2019-12-31 | 2022-06-24 | 中国银联股份有限公司 | 服务调用方法、装置、设备及介质 |
US11677815B2 (en) | 2019-12-31 | 2023-06-13 | China Unionpay Co., Ltd. | Service invoking method, device, apparatus and medium |
CN112612625A (zh) * | 2020-12-26 | 2021-04-06 | 中国农业银行股份有限公司 | 一种服务调用的方法及装置 |
CN113448594A (zh) * | 2021-06-29 | 2021-09-28 | 京东科技控股股份有限公司 | 服务的处理方法、装置、计算机设备及存储介质 |
CN114760357A (zh) * | 2022-03-23 | 2022-07-15 | 北京字节跳动网络技术有限公司 | 一种请求处理方法、装置、计算机设备和存储介质 |
CN114756306A (zh) * | 2022-03-30 | 2022-07-15 | Oppo广东移动通信有限公司 | 服务调用方法、装置、设备及存储介质 |
WO2023202182A1 (zh) * | 2022-04-20 | 2023-10-26 | 京东科技信息技术有限公司 | 后端服务器管理方法、装置、可读介质及电子设备 |
CN115665246A (zh) * | 2022-09-01 | 2023-01-31 | 浪潮通信信息系统有限公司 | 注册请求处理方法、装置、设备及存储介质 |
CN115665246B (zh) * | 2022-09-01 | 2024-03-08 | 浪潮通信信息系统有限公司 | 注册请求处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110602169B (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110602169B (zh) | 服务调用方法、装置、计算机设备和存储介质 | |
CN110008118B (zh) | 页面数据测试方法、装置、计算机设备和存储介质 | |
CN108093094B (zh) | 数据库实例访问方法、装置、系统、存储介质和设备 | |
CN110727499A (zh) | 资源数据获取的方法、装置、计算机设备和存储介质 | |
CN108959385B (zh) | 数据库部署方法、装置、计算机设备和存储介质 | |
CN110290112B (zh) | 权限控制方法、装置、计算机设备及存储介质 | |
CN108365958B (zh) | 账号登录的验证方法、装置、计算机设备和存储介质 | |
CN110555041A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2019127890A1 (zh) | 漏洞扫描方法、装置、计算机设备和存储介质 | |
CN111193716A (zh) | 业务数据调用方法、装置、计算机设备和存储介质 | |
CN108959384B (zh) | 网页数据获取方法、装置、计算机设备和存储介质 | |
CN110708247B (zh) | 消息路由方法、装置、计算机设备和存储介质 | |
CN110213392B (zh) | 数据分发方法、装置、计算机设备和存储介质 | |
CN112153170B (zh) | 访问服务器的方法、装置、设备及存储介质 | |
CN111866850A (zh) | 配置文件切换方法、装置、计算机设备和存储介质 | |
CN112612618B (zh) | 接口限流方法、装置、计算机设备和存储介质 | |
CN108595280B (zh) | 接口适配方法、装置、计算机设备和存储介质 | |
CN112100537A (zh) | 基于本地缓存和分布式缓存的数据获取方法、应用服务器 | |
CN109299147A (zh) | 数据库访问处理方法、装置、计算机设备和存储介质 | |
CN112612595A (zh) | 微服务调用关系建立方法、装置、计算机设备和存储介质 | |
CN111158959A (zh) | 虚拟机备份方法和装置以及虚拟机恢复方法和装置 | |
CN110795171A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN113342767A (zh) | 一种日志生成方法、装置、设备及存储介质 | |
CN114064780A (zh) | 会话信息的处理方法、系统、装置、存储介质及电子设备 | |
CN112104569A (zh) | 报文数据处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200211 Address after: 200120 floor 15, 1333 Lujiazui Ring Road, free trade Experimental Zone, Pudong New Area, Shanghai Applicant after: Weikun (Shanghai) Technology Service Co.,Ltd. Address before: 13th Floor, 1333 Lujiazui Ring Road, Shanghai Free Trade Pilot Area, 200120 Applicant before: SHANGHAI LUJIAZUI INTERNATIONAL FINANCIAL ASSETS TRANSACTION MARKET CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |