CN114610509A - 调用参数处理方法、系统、设备、存储介质及产品 - Google Patents
调用参数处理方法、系统、设备、存储介质及产品 Download PDFInfo
- Publication number
- CN114610509A CN114610509A CN202210257784.0A CN202210257784A CN114610509A CN 114610509 A CN114610509 A CN 114610509A CN 202210257784 A CN202210257784 A CN 202210257784A CN 114610509 A CN114610509 A CN 114610509A
- Authority
- CN
- China
- Prior art keywords
- target
- configuration
- service
- parameter
- application service
- 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
Images
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
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了调用参数处理方法、系统、设备、存储介质及产品。该方法包括:目标应用服务在配置中心服务中订阅目标应用服务的目标调用参数配置,参数管理服务根据用户的参数更新操作对目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入配置中心服务,配置中心服务向目标应用服务推送目标数据集,或者,目标应用服务周期性请求配置中心服务获取目标数据集,目标应用服务基于目标数据集进行远程调用。通过采用上述技术方案,业务人员在需要对应用服务的调用参数进行修改时,可通过参数管理服务进行修改,应用服务可以及时获取到更新后的数据集,且无需暂停和重启,实现调用参数的热加载,保证可靠性以及远程调用效率。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及调用参数处理方法、系统、设备、存储介质及产品。
背景技术
在基于微服务架构的服务集群下,不同应用服务之间的相互访问十分频繁,一个服务实例需要通过远程过程调用(Remote Procedure Call,RPC)来调用另一个服务实例提供的方法并获取相应的数据。
应用服务往往在发起RPC访问前,需要配置一些调用参数,如连接超时时间等,对于跨地区业务来说,通常需要做到异地的服务多活,同一个应用服务需要部署在不同地区甚至不同机房中,应用服务之间的RPC调用往往还需要设置一些关于大区或机房的调用参数,如指定机房等。RPC调用参数的设置和修改往往是由应用服务的开发人员在业务层代码上完成的,一旦出现异常情况,例如被调方的处理能力下降导致主调方访问超时等,需要主调方应用服务开发人员修改相应的代码块,以修改调用参数,如增加RPC调用的超时时间等,修改完成后,需要重新上线服务才能解决问题,整个异常处理过程耗时长,可靠性低。因此,微服务架构下的服务集群亟需一种在不暂停不重启应用服务的情况下,实现对RPC调用参数进行动态修改的处理方案。
发明内容
本申请实施例提供了调用参数处理方法、系统、设备、存储介质及产品,可以优化现有的调用参数处理方案,在调用参数修改后,无需重新上线应用服务,提高调用参数处理效率。
第一方面,本申请实施例提供了一种调用参数处理方法,应用于调用参数处理系统,所述调用参数处理系统中包括参数管理服务、配置中心服务和至少一个应用服务,所述方法包括:
目标应用服务在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置;
所述参数管理服务根据用户的参数更新操作对所述目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入所述配置中心服务;
所述配置中心服务向所述目标应用服务推送所述目标数据集,或者,所述目标应用服务周期性请求所述配置中心服务获取所述目标数据集;
所述目标应用服务基于所述目标数据集进行远程调用。
第二方面,本申请实施例提供了一种调用参数处理系统,用于执行本申请实施例提供的调用参数处理方法,所述调用参数处理系统中包括参数管理服务、配置中心服务和至少一个应用服务,其中,所述至少一个应用服务中的目标应用服务中包括配置订阅模块和远程调用模块,所述参数管理服务中包括数据更新模块,所述配置中心服务中包括数据分发模块;
所述配置订阅模块,用于在所述配置中心服务中订阅所属的目标应用服务的目标调用参数配置;
所述数据更新模块,用于根据用户的参数更新操作对所述目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入所述配置中心服务;
所述数据分发模块,用于向所述目标应用服务推送所述目标数据集;或者,用于响应于所述目标应用服务的周期性请求,向所述目标应用服务发送所述目标数据集;
所述远程调用模块,用于基于所述目标数据集进行远程调用。
第三方面,本申请实施例提供了一种调用参数处理设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述调用参数处理设备被配置为本申请实施例提供的调用参数处理方法中的参数管理服务、配置中心服务或应用服务,所述处理器执行所述计算机程序时实现本申请实施例提供的调用参数处理方法中的相应步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例提供的调用参数处理方法中的相应步骤。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现如本申请实施例提供的调用参数处理方法中的相应步骤。
本申请实施例中提供的调用参数处理方案,应用于调用参数处理系统,调用参数处理系统中包括参数管理服务、配置中心服务和至少一个应用服务,目标应用服务在配置中心服务中订阅目标应用服务的目标调用参数配置,参数管理服务根据用户的参数更新操作对目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入配置中心服务,配置中心服务向目标应用服务推送目标数据集,或者,目标应用服务周期性请求配置中心服务获取目标数据集,目标应用服务基于目标数据集进行远程调用。通过采用上述技术方案,业务人员在需要对应用服务的调用参数进行修改时,可通过参数管理服务进行修改,并由参数管理服务将修改后的数据集存入配置中心服务中,由于应用服务预先订阅了对应的调用参数配置,因此,配置中心服务可以及时地将更新后的数据集推送给应用服务,或者,响应于目标应用服务的周期性请求向目标应用服务发送更新后的数据集,使得应用服务可基于更新后的参数数据进行远程调用,在上述过程中,应用服务无需暂停和重启,实现调用参数的热加载,保证可靠性以及远程调用效率,并且,利用配置中心服务解耦应用服务和参数管理服务,可以将配置的修改过程和配置的推送过程进行分离,避免高度耦合带来的干扰以及缓解访问压力,保证系统的可用性。
附图说明
图1为本申请实施例提供的一种调用参数处理系统的结构示意图;
图2为本申请实施例提供的一种调用参数处理方法的流程示意图;
图3为本申请实施例提供的另一种调用参数处理方法的流程示意图;
图4为本申请实施例提供的一种调用参数处理方法的原理示意图;
图5为本申请实施例提供的一种调用参数处理系统的结构框图;
图6为本申请实施例提供的一种调用参数处理设备的结构框图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。此外,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
图1为本申请实施例提供的一种调用参数处理系统的示意图。具体的,参考图1,该系统中包括参数管理服务101、配置中心服务102和至少一个应用服务103(图中仅示出1个作为示意性说明,具体数量不做限定),各服务可以集成于如服务器等设备中。其中,应用服务的开发人员(用户)可以通过参数管理服务对应用服务的调用参数配置进行设置或修改等处理,调用参数具体可以是RPC调用参数,包括但不限于连接超时时间、最大重传次数、访问超时时间和路由容灾策略等,对于跨地区业务来说,还可包括但不限于指定机房、屏蔽机房列表和指定大区等。调用参数配置的数据集存储于配置中心服务中,应用服务从配置中心服务中获取自身的调用参数配置的数据集。
图2为本申请实施例提供的一种调用参数处理方法的流程示意图,该方法可以由调用参数处理系统执行,其中该系统可由软件和/或硬件实现。如图2所示,该方法包括:
步骤201、目标应用服务在配置中心服务中订阅目标应用服务的目标调用参数配置。
示例性的,目标应用服务可以是调用参数处理系统中的任意一个应用服务,当目标应用服务存在多个实例时,这里的目标应用服务也可理解为目标应用服务中的任意一个实例。目标应用服务可以在检测到预设订阅事件被触发时,在配置中心服务中订阅目标应用服务的目标调用参数配置,预设订阅事件的触发条件例如可以是目标应用服务启动、定时触发、或接收到配置中心服务发送的触发指令等。
示例性的,配置中心服务中可以存储各应用服务对应的调用参数配置的标识(如名称或编号等),调用参数配置的标识可以与应用服务相关联,例如以应用服务的标识进行命名,或者存储有调用参数配置的标识和应用服务的标识的映射关系,使得目标应用程序在进行调用参数配置订阅时,能够快速查找到对应的目标调用参数配置。示例性的,在订阅成功后,配置中心服务可以记录目标应用服务对应的地址信息,以便后续进行目标调用参数配置的数据集的分发。
步骤202、参数管理服务根据用户的参数更新操作对目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入配置中心服务。
示例性的,参数管理服务可以提供人机交互界面,具体形式可以是网页(Web)页面等,应用服务的开发人员可以基于该人机交互界面来对各应用服务的调用参数进行修改。其中,应用服务的调用参数配置的初始数据集可以在业务层代码中完成,也可以通过参数管理服务进行设置,例如,开发人员可以通过上述人机交互界面生成调用参数配置的初始数据集(可以以配置文件形式存在)并保存于配置中心服务中。
相关技术中,RPC调用参数的设置和修改均是由应用服务的开发人员在业务层代码上完成的,在需要修改调用参数时,应用服务需要重新上线。而本申请实施例中,调用参数的修改通过参数管理服务来完成,应用服务在上线后,无需因调用参数的修改而修改业务代码,因此不需要重新上线。
本申请实施例中,参数更新操作可包括参数增加操作、参数删除操作和参数修改操作等。示例性的,用户可以基于参数管理服务的人机交互界面输入参数修改操作,例如将当前数据集中的连接超时时间参数的取值从300毫秒修改为400毫秒等,得到目标数据集,并将目标数据集存入配置中心服务。其中,在将更新后得到的目标数据集存入配置中心服务时,可以将发生变化的数据发送至配置中心服务,以节省数据传输量,也可将目标数据集发送至配置中心服务,以保证准确性。
步骤203、配置中心服务向目标应用服务推送目标数据集,或者,目标应用服务周期性请求配置中心服务获取目标数据集。
示例性的,配置中心服务在接收到目标数据集后,确定目标调用参数配置发生了变化,因此,可以自动向订阅了目标调用参数配置的目标应用服务推送目标数据集,使得目标应用服务可以及时获取到最新的配置数据。
示例性的,目标应用服务也可采用预设频率从配置中心服务中获取目标调用参数配置的最新数据集,也即目标应用服务周期性请求配置中心服务获取目标数据集,配置中心服务响应于该周期性请求,向目标应用服务发送最新的目标数据集。这样设置的好处在于,减少配置中心服务压力,还可以避免因数据集推送异常而导致目标应用服务未及时收到最新的数据集,保证目标应用服务侧的配置数据的准确性。
步骤204、目标应用服务基于目标数据集进行远程调用。
示例性的,目标应用服务在接收到配置中心服务推送的目标数据集后,可以将本地存储的目标调用参数配置的数据集替换为目标数据集,等待需要进行远程调用时,基于目标数据集进行远程调用。
本申请实施例中提供的调用参数处理方法,应用于调用参数处理系统,调用参数处理系统中包括参数管理服务、配置中心服务和至少一个应用服务,目标应用服务在配置中心服务中订阅目标应用服务的目标调用参数配置,参数管理服务根据用户的参数更新操作对目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入配置中心服务,配置中心服务向目标应用服务推送目标数据集,或者,目标应用服务周期性请求配置中心服务获取目标数据集,目标应用服务基于目标数据集进行远程调用。通过采用上述技术方案,业务人员在需要对应用服务的调用参数进行修改时,可通过参数管理服务进行修改,并由参数管理服务将修改后的数据集存入配置中心服务中,由于应用服务预先订阅了对应的调用参数配置,因此,配置中心服务可以及时地将更新后的数据集推送给应用服务,或者,响应于目标应用服务的周期性请求向目标应用服务发送更新后的数据集,使得应用服务可基于更新后的参数数据进行远程调用,在上述过程中,应用服务无需暂停和重启,实现调用参数的热加载,保证可靠性以及远程调用效率,并且,利用配置中心服务解耦应用服务和参数管理服务,可以将配置的修改过程、配置的存储和配置的分发过程进行分离,参数管理服务无需与应用服务进行频繁交互,也即参数管理服务不需要负责应用服务注册、配置保存、配置通知以及配置下发等众多逻辑,减少出现如注册失败、通知失败、通知成功但应用服务未拉取更新后的配置数据等异常情况,避免高度耦合带来的干扰以及缓解访问压力,保证系统的可用性。
在基于微服务架构的服务集群下,不同应用服务之间的相互访问是十分频繁的,而应用服务往往是基于RPC框架或者其他网络框架编写的,因此一个应用服务的代码主要分为上层业务层与下层框架层,在业务层上通过RPC接口与框架层交互数据。业务层负责处理数据与执行业务逻辑,不同的应用服务的业务层代码由相应的开发人员进行编写;框架层主要负责进行RPC的路由、容灾、数据编解码与网络传输等,统一由框架开发人员进行编写,提供给不同的业务开发人员使用。相关技术中,为了解决上面提到的RPC调用参数热加载问题,有些应用服务开发人员会选择在业务层代码里读取配置文件上的参数并设置后,再对被调方发起调用。如果读取的是静态配置,需要通过先修改配置再重启服务的方式才能更新RPC调用参数;如果读取的是远程配置,随着框架层代码的更新优化与调用参数的增减,从业务层代码完成调用参数的加载处理往往会出现漏配错配等情况,并且不同应用服务各自维护自己的一套调用参数的加载方式,会增加开发成本与运维难度。
本申请实施例中,调用参数处理方法中由目标应用服务执行的步骤可以在框架层实现,也即参数的动态调整依照就近原则在框架中最靠近应用处进行调整,而不是放在业务层,以避免在业务层获取调用参数数据但发送漏配或错配的情况。示例性的,所述目标应用服务在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置,包括:目标应用服务通过框架层在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置,所述方法还包括:所述目标应用服务通过所述框架层接收所述配置中心服务推送的所述目标数据集,或者,所述目标应用服务通过所述框架层周期性请求所述配置中心服务获取所述目标数据集。
目前,很多业务存在跨区域部署的需求,本申请实施例也可适用于跨区域的业务场景。示例性的,所述调用参数处理系统中的应用服务部署于多个区域,每个区域部署至少一个应用服务机房,每个应用服务机房中配置有各应用服务的至少一个实例。其中,区域的划分方式不做限定,例如可以是大洲、国家或地区等等。在每个区域,可以设置至少一个应用服务机房,例如可以是互联网数据中心(Internet Data Center,IDC),具体可以理解为提供应用服务的服务器托管机房。为了保证应用服务的快速响应以及高可用,每个应用服务机房中配置有各应用服务的至少一个实例,也即对于目标应用服务来说,包含多个实例,将其中任意一个实例记为目标实例,并以目标实例为例进行后续说明。由于同一应用服务的不同实例被部署在不同的机房中,因此,可能存在需要设置不同的调用参数数据的情况,而相关技术中,需要在业务层代码实现,针对有特殊需求的实例需要额外增加判断实例所在机房的逻辑代码,并额外设置所需采用的调用参数数据,业务代码开发量大且无法实现热加载。
本申请实施例中,可以新增元数据配置的概念,将调用参数配置划分为三个级别,分别为应用服务级别、区域级别和机房级别,有利于对调用参数配置的精细化管理。其中,元数据配置中包括通用配置标识、预设区域的区域专属配置标识和预设机房的机房专属配置标识,可将元数据配置理解为调用参数配置的索引,应用服务实例可以利用该索引查找到自身对应的调用参数配置并进行订阅。其中,通用配置标识可以理解为应用服务所有实例普遍适用的调用参数配置的标识,可以以应用服务标识命名;预设区域的区域专属配置标识可以理解为适用于被部署于某个指定区域的应用服务实例所需使用的调用参数配置的标识,可以以应用服务标识和区域标识命名;预设机房的机房专属配置标识可以理解为适用于被部署于某个指定区域中的某个指定机房中的应用服务实例所需使用的调用参数配置的标识,可以以应用服务标识、区域标识命名以及机房标识命名。
在一些实施例中,目标应用服务在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置,包括:所述目标应用服务通过目标实例从所述配置中心服务中获取所述目标应用服务的元数据配置,其中,所述元数据配置中包括通用配置标识、预设区域的区域专属配置标识和预设机房的机房专属配置标识;所述目标应用服务通过目标实例根据所属的目标区域和目标机房,在所述元数据配置中查找匹配的调用参数配置,并根据查找结果确定目标调用参数配置;所述目标应用服务通过目标实例对所述目标调用参数配置进行订阅。这样设置的好处在于,通过在调用参数配置的订阅阶段确定目标实例所需使用的目标调用参数配置,无需在业务层代码中添加地区判定以及机房判定等相关逻辑代码,当目标实例所需采用的调用参数配置数据发生变化时,可以快速获取到最新的配置数据,提高远程调用的准确性以及时效性。
在一些实施例中,所述目标应用服务通过目标实例根据所属的目标区域和目标机房,在所述元数据配置中查找匹配的调用参数配置,并根据查找结果确定目标调用参数配置,包括:所述目标应用服务通过目标实例根据所属的目标区域和目标机房,在所述元数据配置中查找是否存在与所述目标区域以及所述目标机房匹配的机房专属配置标识;若存在,则根据查找到的机房专属配置标识确定目标调用参数配置;若不存在,则在所述元数据配置中查找是否包含与所述目标区域匹配的区域专属配置标识;若包含,则根据查找到的区域专属配置标识确定目标调用参数配置;若不包含,则根据所述通用配置标识确定目标调用参数配置。这样设置的好处在于,对于有特殊需求的实例可以实现与同一应用服务下的其他实例之间的差异化配置,同时兼顾无特殊需求的实例之间的配置共享,按照机房、地区以及应用服务的顺序依次查找目标实例所需订阅的调用参数配置,兼顾订阅的准确度以及订阅效率。
在一些实施例中,所述方法还包括:所述参数管理服务根据用户的调用参数集配置更新操作对所述元数据配置进行更新,并将数据集的变化以及更新后的元数据配置存入所述配置中心服务;所述配置中心服务在检测到所述元数据配置的更新与所述目标应用服务的目标实例存在关联的情况下,通知所述目标应用服务的目标实例重新订阅对应的调用参数配置;或者,所述目标应用服务的目标实例在检测到所述配置中心服务中的元数据配置发生变化且与自身存在关联的情况下,重新订阅对应的调用参数配置。这样设置的好处在于,支持元数据配置的动态自动修改,并由配置中心服务及时通知相关的目标应用服务的目标实例重新订阅,或者由目标应用服务的目标实例主动检测元数据配置的变化而主动重新订阅,保证目标实例及时准确地获取到最新的配置数据。
示例性的,假设目标实例之前订阅的是区域专属配置标识对应的调用参数配置,当开发人员增加机房专属配置对应的配置数据后,参数管理服务自动对应修改元数据配置,将元数据配置的修改和配置数据的修改存储到配置中心服务后,配置中心服务确定目标实例的调用参数配置的级别发生了变化,主动通知目标实例重新订阅机房级别的调用参数配置,并获取最新的配置数据。或者,目标实例可以周期性检测配置中心服务中的元数据配置中与自身存在关联的部分是否发生变化,若发生变化,则重新订阅对应的调用参数配置,并获取最新的配置数据。
示例性的,一个基于RPC架构的应用服务向外提供访问接口时,通常至少提供服务(server)与方法(method)两个层级来定位具体的RPC方法,可以理解为一个应用服务是一个具体的server,一个server通常包含一个或多个method。调用方在发起RPC调用时,需要指明被调方的server名与method名,才能准确定位到目标RPC方法。本申请实施例中,可以将数据集中的数据划分为两类,分别以应用服务和应用服务中的方法为对象,并对于方法类别,进一步划分至少两个维度,兼顾同一应用服务下多个方法的配置共享以及差异化配置,提高灵活性。
在一些实施例中,所述目标数据集中包括第一类调用参数数据和第二类调用参数数据,所述第一类调用参数数据以应用服务为对象,所述第二类调用参数数据以应用服务中的方法为对象,在所述第二类调用参数数据中包括至少两个维度的调用参数数据的情况下,所述至少两个维度包括应用服务通用维度和方法专属维度,所述方法专属维度高于所述应用服务通用维度。
其中,第一类调用参数数据可以包括如连接超时时间和负载均衡策略等,第一类调用参数数据可以包括如数据返回超时时间和最大重传次数等。可选的,在应用服务通用维度和方法专属维度之间,还可以设置如模块维度,同一模块下可以包含多个方法,从而使得指定的多个方法可以实现配置共享。
进一步的,所述目标应用服务基于所述目标数据集进行远程调用,包括:所述目标应用服务基于所述目标数据集中的第一类调用参数数据、以及所述目标数据集中的第二类调用参数数据中当前最高维度的调用参数数据,进行远程调用。在目标应用服务基于目标数据集进行远程调用时,优先采用当前最高维度的调用参数数据进行远程调用,以实现更加精准的远程调用。
示例性的,在确定当前所需采用的方法调用参数数据时,可以先查看目标数据集中的第二类调用参数数据中是否存在方法专属维度的参数数据,若存在,则采用该方法专属维度的参数数据进行远程调用,若不存在,则采用第二类调用参数数据中的应用服务通用维度调用参数数据进行远程调用。
在一些实施例中,所述目标应用服务基于所述目标数据集进行远程调用,包括:所述目标应用服务获取初始配置数据集、以及业务层预先配置的业务配置数据集;针对所述目标调用参数配置中的各参数,按照预设优先级顺序确定对应的目标参数值,其中,所述预设优先级顺序由高至低分别为业务配置数据集、目标数据集和初始配置数据集;根据所述目标参数值进行远程调用。这样设置的好处在于,可以为不同来源的参数数据配置优先级,按照优先级依次确定各参数的参数值,提高兼容性。
示例性的,将调用参数配置的订阅、获取、解释与应用都放在框架层上实现,为了避免业务升级框架层代码后出现业务层设置的参数失效问题,可以遵循优先级由高至低分别为:业务层设置参数(业务配置数据集)、配置中心读取的参数(目标数据集)以及框架指定的参数默认值(初始配置数据集)。其中,业务配置数据集可以理解为开发人员在编写业务层代码时写入的固定的配置数据,初始配置数据集可以理解为框架层代码中统一设置的默认配置数据。
图3为本申请实施例提供的另一种调用参数处理方法的流程示意图,在上述各可选实施例基础上进行优化,图4为本申请实施例提供的一种调用参数处理方法的原理示意图,可结合图3和图4对本申请实施例进行理解。
如图3所示,该方法可包括:
步骤301、目标应用服务通过目标实例从配置中心服务中获取目标应用服务的元数据配置。
其中,元数据配置中包括通用配置标识、预设区域的区域专属配置标识和预设机房的机房专属配置标识。
示例性的,调用参数处理系统部署于多个区域,如亚洲和欧洲等;每个区域部署多个应用服务机房,如图4所示,如亚洲区域部署两个机房,分别记为亚洲_机房1和亚洲_机房2;假设存在两个应用服务,分别记为应用服务A和应用服务B,每个应用服务机房中配置有各应用服务的一个实例,如图4中,亚洲_机房1部署了应用服务A实例1和应用服务B实例1,亚洲_机房2部署了应用服务A实例2和应用服务B实例2。每个区域可设置一个配置中心主服务,每个机房可设置一个配置中心代理服务,配置中心主服务和各配置中心代理服务之间保持数据的同步。
目标应用服务的元数据配置可以以目标应用服务的名称命名,例如可记为${server_name}_meta,元数据配置记录了默认RPC调用参数集配置(通用配置标识)、特定大区或者特定机房的专属RPC调用参数集配置的名字(预设区域的区域专属配置标识或预设机房的机房专属配置标识),开发人员增加或者删除指定的调用参数集配置后会更新元数据配置,以增加或删除相应的配置名字。随后,参数管理服务端将开发人员配置好的参数集按照格式规范生成文本,写入调用参数集配置中,并以${server_name}[_${region_name}][_${group_name}]来命名RPC调用参数集配置,元数据配置与各调用参数集配置均被保存到配置中心主服务上,并由各配置中心代理服务从配置中心主服务中拉取配置数据,以保证数据同步。其中,多个预设区域的区域专属配置标识构成区域配置标识表,记为region_config_map;多个预设机房的机房专属配置标识构成机房配置标识表,记为group_config_map。
示例性的,被部署到各IDC上的应用服务实例在启动时,框架层代码在初始化阶段可以通过直接向配置中心主服务订阅配置或者通过向配置中心代理服务订阅的方式来拉取配置。在假设应用服务实例已明确自身所属区域(region_name)与机房(group_name)的前提下,实例先获取应用服务对应的元数据配置。
步骤302、目标应用服务通过目标实例根据所属的目标区域和目标机房,在元数据配置中查找匹配的调用参数配置,并根据查找结果确定目标调用参数配置。
示例性的,在获取到应用服务对应的元数据配置后,可先在group_config_map中寻找key为${region_name}_${group_name}的条目,若有则订阅名字为对应value的配置,若没有则在region_config_map中寻找key为${region_name}的条目,若有则订阅名字为对应value的配置,若还是没有则直接订阅名字为default_config对应value的配置。各实例通过按照特定机房配置,特定大区配置与默认配置的优先级顺序从元数据配置中匹配目标RPC调用参数集配置,有效解决了不同IDC实例的调用参数差异化问题。
步骤303、目标应用服务通过目标实例对目标调用参数配置进行订阅并获取目标调用参数配置的当前数据集。
示例性的,目标实例在对目标调用参数配置进行订阅的同时,可以获取目标调用参数配置的当前数据集。
步骤304、参数管理服务根据用户的调用参数集配置更新操作对元数据配置进行更新,并将数据集的变化以及更新后的元数据配置存入配置中心服务。
示例性的,在用户对调用参数集配置进行更新时,可能也会引起元数据配置的变化。例如,删了某个数据集,会自动将元数据配置的相应条目删掉;增加了配置集,会自动在元数据配置里增加新条目。这种情况下,在将数据集的变化存入配置中心服务的同时,还包括将变化后的元数据配置也存入配置中心服务。
步骤305、配置中心服务在检测到元数据配置的更新与目标应用服务的目标实例存在关联的情况下,通知目标应用服务的目标实例重新订阅对应的调用参数配置。
步骤306、目标应用服务通过目标实例从配置中心服务中基于更新后的元数据配置重新订阅对应的当前的目标调用参数配置,并获取目标调用参数配置的当前数据集。
示例性的,当目标实例之前订阅的目标调用参数配置已发生变化时,需要重新订阅更新后的目标调用参数配置,同时,可获取更新后的目标调用参数配置对应的当前数据集。
步骤307、参数管理服务根据用户的参数更新操作对目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入配置中心服务。
示例性的,开发人员也可在不修改元数据配置的情况下,对某个调用参数配置对应的数据集内容进行修改,并将修改后的数据集存入配置中心服务,以使配置中心服务及时向对应的目标实例推送修改后的数据集。
步骤308、配置中心服务向目标应用服务的目标实例推送目标数据集,或者响应于目标应用服务的周期性请求,向目标应用服务发送目标数据集。
步骤309、目标应用服务通过目标实例基于目标数据集中的第一类调用参数数据、以及目标数据集中的第二类调用参数数据中当前最高维度的调用参数数据,进行远程调用。
示例性的,本步骤可具体包括:目标应用服务通过目标实例获取初始配置数据集、以及业务层预先配置的业务配置数据集,针对目标调用参数配置中的各参数,按照预设优先级顺序确定对应的目标参数值,基于目标参数值中的第一类调用参数数据、以及目标参数值中的第二类调用参数数据中当前最高维度的调用参数数据,进行远程调用。其中,所述预设优先级顺序由高至低分别为业务配置数据集、目标数据集和初始配置数据集。
示例性的,假设某个RPC调用有参数Parameter A、Parameter B、Parameter C、Parameter D,默认值(初始配置数据集中的数值)分别为A0、B0、C0、D0。应用服务开发人员在业务层分别设置了Parameter A=A1、Parameter C=C1,其他参数没主动设置将采取默认值,在未获取到目标数据集之前,应用服务可采用{A1,B0,C1,D0}的参数集进行RPC调用。假若服务更新了框架层代码,并且开发人员在参数管理端配置了Parameter A=A2、Parameter D=D2,其他没配置的参数Parameter B与Parameter C将会被自动补全为框架默认值B0和C0,因此在配置中心拉取到的参数集(目标数据集)就是{A2,B0,C0,D2}。根据预设优先级顺序,将会优先使用在业务层设置的{A1,C1},Parameter D由于业务没设置则将会使用参数集配置里面的D2,Parameter B由于在业务层代码没被设置,同时在参数管理端也没被配置,因此依旧采用默认值B0,综上,应用服务将会采用{A1,B0,C1,D2}的参数集(目标参数值构成的数据集)进行RPC调用。本申请实施例遵循的业务层设置参数优先级最高的原则与管理端默认将未主动配置的参数设置为默认值的方式,保证了升级框架层代码且未主动在参数管理服务端配置参数的应用服务能按开发人员的代码逻辑发起RPC调用,兼容性强。
示例性的,将RPC调用参数分为两大类,一类是以server为对象的参数(第一类调用参数,记为server parameters),另一类是以method为对象的参数(第二类调用参数,记为method parameters)。一个RPC调用参数集配置含有一个rpc_servers数组,里面按需包含被调方server的参数集,数组里面的元素是各维度的RPC调用参数。Server parameters只在server维度的参数中出现,method parameters将按照server与method的维度来划分,分别添加“server_”和“method_”作为前缀,其中server维度的method parameters(应用服务通用维度)是必填项,method维度的method parameters(方法专属维度)是选填项。框架层解释配置时将按照method维度method parameters高于server维度method parameters的优先级顺序匹配选取method parameters,因此server维度的method parameters是必须设置的保底项,method维度的method parameters是对RPC调用参数精细化设置的补充,可按需设置。本申请不局限于两个层级维度的参数配置格式,对于需要更多层级才能定位RPC方法的框架,可按同样的原理新增维度,例如上文所述的模块维度。
本申请实施例提供的调用参数处理方法,在应用服务的RPC框架层向配置中心订阅获取调用参数集,实现了不重启应用服务就能够调整RPC调用参数,改变调用方服务的远程调用逻辑,可以解决出现异常或者临时状况时,急需快速调整调用参数以恢复系统的问题。通过引入配置中心服务,将远程参数管理端与应用服务实现解耦,参数管理端只负责对接开发人员进行参数展示与配置,并将调用参数集保存到配置中心上,应用服务只需向配置中心订阅调用参数集配置,通过配置中心推送或者定期向配置中心拉取的形式获取参数集,以实现动态获取最新参数。此外,引入记录着不同IDC的专属配置名字的元数据配置,让不同IDC上的实例通过元数据配置索引出目标RPC调用参数集配置来解决不同IDC的实例拉取不同参数的问题。调用参数集按照至少server和method两个层级维度管理参数,确保了调用参数的精细化配置。框架层代码综合开发人员在业务层设置的参数与从配置中心参数集获取的参数,遵循业务层设置参数高于配置中心读取的参数高于框架指定的参数默认值的原则,来决定最终发起RPC调用的参数,保证应用服务框架层代码的更新兼容业务层原代码逻辑,提高兼容性。
图5为本申请实施例提供的一种调用参数处理系统的结构框图,该系统可由软件和/或硬件实现,可通过执行调用参数处理方法来进行调用参数的处理。如图5所示,该系统包括:参数管理服务510、配置中心服务520和至少一个应用服务,其中,所述至少一个应用服务中的目标应用服务530中包括配置订阅模块531和远程调用模块532,所述参数管理服务510中包括数据更新模块511,所述配置中心服务520中包括数据分发模块521。其中,配置中心服务520还可包括数据存储模块。
所述配置订阅模块531,用于在所述配置中心服务中订阅所属的目标应用服务的目标调用参数配置;
所述数据更新模块511,用于根据用户的参数更新操作对所述目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入所述配置中心服务;
所述数据分发模块521,用于向所述目标应用服务推送所述目标数据集;
所述远程调用模块532,用于基于所述目标数据集进行远程调用。
其中,数据存储模块可用于存储各调用参数配置的数据集,还可用于存储元数据配置。
本申请实施例提供的调用参数处理系统,包括参数管理服务、配置中心服务和至少一个应用服务,目标应用服务在配置中心服务中订阅目标应用服务的目标调用参数配置,参数管理服务根据用户的参数更新操作对目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入配置中心服务,配置中心服务向目标应用服务推送目标数据集,或者,目标应用服务周期性请求配置中心服务获取目标数据集,目标应用服务基于目标数据集进行远程调用。通过采用上述技术方案,业务人员在需要对应用服务的调用参数进行修改时,可通过参数管理服务进行修改,并由参数管理服务将修改后的数据集存入配置中心服务中,由于应用服务预先订阅了对应的调用参数配置,因此,配置中心服务可以及时地将更新后的数据集推送给应用服务,或者,响应于目标应用服务的周期性请求向目标应用服务发送更新后的数据集,使得应用服务可基于更新后的参数数据进行远程调用,在上述过程中,应用服务无需暂停和重启,实现调用参数的热加载,保证可靠性以及远程调用效率,并且,利用配置中心服务解耦应用服务和参数管理服务,可以将配置的修改过程和配置的推送过程进行分离,避免高度耦合带来的干扰以及缓解访问压力,保证系统的可用性。
本申请实施例提供了一种调用参数处理设备,该调用参数处理设备被配置为本申请实施例提供的调用参数处理方法中的参数管理服务、配置中心服务或应用服务。图6为本申请实施例提供的一种调用参数处理设备的结构框图。调用参数处理设备600包括存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,所述处理器602执行所述计算机程序时实现本申请实施例提供的调用参数处理方法中的相应步骤。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请实施例提供的调用参数处理方法中的相应步骤。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现如本申请实施例提供的调用参数处理方法中的相应步骤。
上述实施例中提供的调用参数处理系统、设备、存储介质以及产品可执行本申请任意实施例所提供的调用参数处理方法中的相应步骤,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的调用参数处理方法。
注意,上述仅为本申请的较佳实施例。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求范围决定。
Claims (11)
1.一种调用参数处理方法,其特征在于,应用于调用参数处理系统,所述调用参数处理系统中包括参数管理服务、配置中心服务和至少一个应用服务,所述方法包括:
目标应用服务在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置;
所述参数管理服务根据用户的参数更新操作对所述目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入所述配置中心服务;
所述配置中心服务向所述目标应用服务推送所述目标数据集,或者,所述目标应用服务周期性请求所述配置中心服务获取所述目标数据集;
所述目标应用服务基于所述目标数据集进行远程调用。
2.根据权利要求1所述的方法,其特征在于,所述调用参数处理系统中的应用服务部署于多个区域,每个区域部署至少一个应用服务机房,每个应用服务机房中配置有各应用服务的至少一个实例;所述目标应用服务在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置,包括:
所述目标应用服务通过目标实例从所述配置中心服务中获取所述目标应用服务的元数据配置,其中,所述元数据配置中包括通用配置标识、预设区域的区域专属配置标识和预设机房的机房专属配置标识;
所述目标应用服务通过目标实例根据所属的目标区域和目标机房,在所述元数据配置中查找匹配的调用参数配置,并根据查找结果确定目标调用参数配置;
所述目标应用服务通过目标实例对所述目标调用参数配置进行订阅。
3.根据权利要求2所述的方法,其特征在于,所述目标应用服务通过目标实例根据所属的目标区域和目标机房,在所述元数据配置中查找匹配的调用参数配置,并根据查找结果确定目标调用参数配置,包括:
所述目标应用服务通过目标实例根据所属的目标区域和目标机房,在所述元数据配置中查找是否存在与所述目标区域以及所述目标机房匹配的机房专属配置标识;
若存在,则根据查找到的机房专属配置标识确定目标调用参数配置;若不存在,则在所述元数据配置中查找是否包含与所述目标区域匹配的区域专属配置标识;
若包含,则根据查找到的区域专属配置标识确定目标调用参数配置;若不包含,则根据所述通用配置标识确定目标调用参数配置。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述参数管理服务根据用户的调用参数集配置更新操作对所述元数据配置进行更新,并将数据集的变化以及更新后的元数据配置存入所述配置中心服务;
所述配置中心服务在检测到所述元数据配置的更新与所述目标应用服务的目标实例存在关联的情况下,通知所述目标应用服务的目标实例重新订阅对应的调用参数配置;或者,所述目标应用服务的目标实例在检测到所述配置中心服务中的元数据配置发生变化且与自身存在关联的情况下,重新订阅对应的调用参数配置。
5.根据权利要求1所述的方法,其特征在于,所述目标数据集中包括第一类调用参数数据和第二类调用参数数据,所述第一类调用参数数据以应用服务为对象,所述第二类调用参数数据以应用服务中的方法为对象,在所述第二类调用参数数据中包括至少两个维度的调用参数数据的情况下,所述至少两个维度包括应用服务通用维度和方法专属维度,所述方法专属维度高于所述应用服务通用维度;
其中,所述目标应用服务基于所述目标数据集进行远程调用,包括:
所述目标应用服务基于所述目标数据集中的第一类调用参数数据、以及所述目标数据集中的第二类调用参数数据中当前最高维度的调用参数数据,进行远程调用。
6.根据权利要求1所述的方法,其特征在于,所述目标应用服务基于所述目标数据集进行远程调用,包括:
所述目标应用服务获取初始配置数据集、以及业务层预先配置的业务配置数据集;
针对所述目标调用参数配置中的各参数,按照预设优先级顺序确定对应的目标参数值,其中,所述预设优先级顺序由高至低分别为业务配置数据集、目标数据集和初始配置数据集;
根据所述目标参数值进行远程调用。
7.根据权利要求1-6任一所述的方法,其特征在于,所述目标应用服务在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置,包括:
目标应用服务通过框架层在所述配置中心服务中订阅所述目标应用服务的目标调用参数配置;
其中,所述方法还包括:
所述目标应用服务通过所述框架层接收所述配置中心服务推送的所述目标数据集,或者,所述目标应用服务通过所述框架层周期性请求所述配置中心服务获取所述目标数据集。
8.一种调用参数处理系统,其特征在于,用于执行权利要求1-7任一所述的调用参数处理方法,所述调用参数处理系统中包括参数管理服务、配置中心服务和至少一个应用服务,其中,所述至少一个应用服务中的目标应用服务中包括配置订阅模块和远程调用模块,所述参数管理服务中包括数据更新模块,所述配置中心服务中包括数据分发模块;
所述配置订阅模块,用于在所述配置中心服务中订阅所属的目标应用服务的目标调用参数配置;
所述数据更新模块,用于根据用户的参数更新操作对所述目标调用参数配置的当前数据集进行更新,并将更新后得到的目标数据集存入所述配置中心服务;
所述数据分发模块,用于向所述目标应用服务推送所述目标数据集;或者,用于响应于所述目标应用服务的周期性请求,向所述目标应用服务发送所述目标数据集;
所述远程调用模块,用于基于所述目标数据集进行远程调用。
9.一种调用参数处理设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述调用参数处理设备被配置为如权利要求1-7任一项所述的调用参数处理方法中的参数管理服务、配置中心服务或应用服务,所述处理器执行所述计算机程序时实现如权利要求1-7任一项所述的调用参数处理方法中的相应步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的调用参数处理方法中的相应步骤。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的调用参数处理方法中的相应步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257784.0A CN114610509A (zh) | 2022-03-16 | 2022-03-16 | 调用参数处理方法、系统、设备、存储介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210257784.0A CN114610509A (zh) | 2022-03-16 | 2022-03-16 | 调用参数处理方法、系统、设备、存储介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610509A true CN114610509A (zh) | 2022-06-10 |
Family
ID=81863338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210257784.0A Pending CN114610509A (zh) | 2022-03-16 | 2022-03-16 | 调用参数处理方法、系统、设备、存储介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114610509A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251173A (zh) * | 2023-11-15 | 2023-12-19 | 深圳万物安全科技有限公司 | 微服务项目的配置方法,微服务项目的配置装置及介质 |
-
2022
- 2022-03-16 CN CN202210257784.0A patent/CN114610509A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251173A (zh) * | 2023-11-15 | 2023-12-19 | 深圳万物安全科技有限公司 | 微服务项目的配置方法,微服务项目的配置装置及介质 |
CN117251173B (zh) * | 2023-11-15 | 2024-03-08 | 深圳万物安全科技有限公司 | 微服务项目的配置方法、微服务项目的配置装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515776B (zh) | 业务不间断升级方法、待升级节点和可读存储介质 | |
US10423342B1 (en) | Scaling events for hosting hierarchical data structures | |
CN107861686B (zh) | 文件存储方法、服务端和计算机可读存储介质 | |
US20190342383A1 (en) | Selection of leader nodes in distributed data services | |
US7831734B2 (en) | Method and system for remote configuration of network devices | |
CN110636093B (zh) | 微服务注册和发现方法、设备、存储介质以及微服务系统 | |
US7761559B2 (en) | System and method of remotely managing and loading artifacts | |
US20080091792A1 (en) | System and method of remotely managing and loading artifacts | |
US20140258234A1 (en) | Synchronization of cms data to mobile device storage | |
CN110659045B (zh) | 一种软件化雷达实时动态更新系统 | |
CN111143382B (zh) | 数据处理方法、系统和计算机可读存储介质 | |
US10069941B2 (en) | Scalable event-based notifications | |
WO2024002299A1 (zh) | 应用管理方法、应用订阅方法及相关设备 | |
CN106850724B (zh) | 数据推送方法及装置 | |
CN114610509A (zh) | 调用参数处理方法、系统、设备、存储介质及产品 | |
CN111736809A (zh) | 分布式机器人集群网络管理框架及其实现方法 | |
CN116155978A (zh) | 多注册中心适配方法、装置、电子设备及存储介质 | |
US20050188380A1 (en) | Cache control device, and method and computer program for the same | |
CN114647702A (zh) | 数据同步处理方法及其装置、设备、介质 | |
CN109992384B (zh) | 服务注册发现协调系统及其方法 | |
CN114546591A (zh) | 镜像文件共享方法、容器集群管理系统及相关设备 | |
CN113934575A (zh) | 一种基于分布式拷贝的大数据备份系统及方法 | |
CN113973135A (zh) | 数据缓存处理方法、装置、缓存网格平台和存储介质 | |
CN112463304A (zh) | 容器镜像的回滚方法、装置、计算机设备和存储介质 | |
CN113761075A (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 |