CN113296959B - 基于aop功能组件的服务处理方法、装置及计算机设备 - Google Patents
基于aop功能组件的服务处理方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN113296959B CN113296959B CN202110692600.9A CN202110692600A CN113296959B CN 113296959 B CN113296959 B CN 113296959B CN 202110692600 A CN202110692600 A CN 202110692600A CN 113296959 B CN113296959 B CN 113296959B
- Authority
- CN
- China
- Prior art keywords
- component
- aop
- service
- service request
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 25
- 230000001960 triggered effect Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 79
- 238000012544 monitoring process Methods 0.000 claims description 27
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 6
- 230000004069 differentiation Effects 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 10
- 238000012423 maintenance Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于AOP功能组件的服务处理方法、装置及计算机设备,涉及信息技术领域,主要在于能够使分布式运行***中服务的功能组件独立于业务代码,便于功能组件的复用和维护,提高分布式运营***的开发效率。其中方法包括:接收客户触发的服务请求;确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。本发明适用于基于AOP功能组件的服务处理。
Description
技术领域
本发明涉及信息技术领域,尤其是涉及一种基于AOP功能组件的服务处理方法、装置及计算机设备。
背景技术
分布式运营***在分布式环境、多用户、微服务、集群等多维度下,会涉及配置限流、熔断、锁等复杂功能,从而使分布式运营***具备相应的功能效果。
目前,通常通过在分布式运营***的业务代码中引入非常多的框架和功能代码,实现分布式运营***的配置限流、熔断、锁等复杂功能。然而,这种方式会导致服务的功能代码与业务代码交织在一起,如果运营***中其他服务也涉及该功能,则需要重新针对该功能进行代码编写,从而不利用功能代码的复用和维护,导致运营***的开发效率较低。
发明内容
本发明提供了一种基于AOP功能组件的服务处理方法、装置及计算机设备,主要在于能够使分布式运行***中服务的功能组件独立于业务代码,便于功能组件的复用和维护,提高分布式运营***的开发效率。
根据本发明的第一个方面,提供一种基于AOP功能组件的服务处理方法,包括:
接收客户触发的服务请求;
确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;
基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
根据本发明的第二个方面,提供一种基于AOP功能组件的服务处理装置,包括:
接收单元,用于接收客户触发的服务请求;
确定单元,用于确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;
响应单元,用于基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:
接收客户触发的服务请求;
确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;
基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
接收客户触发的服务请求;
确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;
基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
本发明提供的一种基于AOP功能组件的服务处理方法、装置及计算机设备,与目前在分布式运营***的业务代码中引入非常多的框架和功能代码的方式相比,本发明能够接收客户触发的服务请求;并确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应,由此通过采用Spring AOP技术创建分布式运营***中所涉及的各个AOP功能组件,能够使分布式运营***中分布式服务的功能组件独立于业务代码,同时通过在管理端配置分布式运营***中不同分布式服务的功能组件属性参数,能够在接收到服务请求时,生成相应的责任链,并根据该责任链上的AOP功能组件及其对应的响应顺序,对服务请求进行响应,从而能够保证分布式运营***中分布式服务的功能组件独立于业务代码,进而能够便于功能组件的复用和维护,提高分布式运营***的开发效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了本发明实施例提供的一种基于AOP功能组件的服务处理方法流程图;
图2示出了本发明实施例提供的另一种基于AOP功能组件的服务处理方法流程图;
图3示出了本发明实施例提供的一种基于AOP功能组件的服务处理装置的结构示意图;
图4示出了本发明实施例提供的另一种基于AOP功能组件的服务处理装置的结构示意图;
图5示出了本发明实施例提供的一种计算机设备的实体结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
目前,分布式服务的功能代码与业务代码交织在一起,如果运营***中其他服务也涉及该功能,则需要重新针对该功能进行代码编写,从而不利用功能代码的复用和维护,导致运营***的开发效率较低。
为了解决上述问题,本发明实施例提供了一种电话重呼方法,如图1所示,所述方法包括:
101、接收客户触发的服务请求。
其中,分布式运营***中涉及多种分布式服务,客户通过在客户端进行操作能够触发相应的服务请求。为了克服现有技术中分布式服务的业务代码与供代码耦合在一起,从而不利于功能代码的复用和维护的缺陷,本发明实施例采用Spring AOP技术创建分布式运营***中所涉及的各个AOP功能组件,进而使分布式运营***中分布式服务的功能组件独立于业务代码,同时通过在管理端配置不同分布式服务的功能组件属性参数,当接收到服务请求时,能够根据该功能组件属性参数自动生成相应的责任链,并基于该责任链上的AOP功能组件及其对应的响应顺序,对该服务请求进行响应,从而能够保证分布式服务的功能组件独立与业务代码,进而能够便于功能组件的复用和维护,提高了分布式运营***的开发效率。本发明实施例主要适用于采用独立于业务代码的AOP功能组件对服务请求进行处理的场景。本发明实施例的执行主体为能够进行服务处理的装置或者设备,具体可以设置在客户端或者服务器一侧。
102、确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序。
其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码,该目标AOP功能组件具体可以为服务治理组件,权限中心组件、分布式调度组件、服务监控组件等,该服务治理组件具体包括:服务端限流配置组件、服务端降级配置组件、服务端熔断组件、服务端灰度名单组件、分布式服务集群上下线组件等;该权限中心组件具体包括:分布式服务权限分别/统一配置组件、权限白名单配置组件、分布式环境鉴权配置组件等;分布式调度组件具体包括:统一调度任务组件、多环境区分规则配置组件、批量作业配置组件等;服务监控组件具体包括:流量峰值配置组件、分布式服务接口缓存配置组件、分布式锁接口组件等。需要说明的是,本发明实施例中责任链上的目标AOP功能组件可以是上述功能组件中的任意一种AOP功能组件,也可以是多种AOP功能组件的组合,具体可以根据业务需求进行设定,本发明实施例对目标AOP功能组件的数量和种类不进行限定。
对于本发明实施例,用户可以预先在管理端配置运营***中不同分布式服务的目标AOP功能组件,同时设置目标AOP功能组件之间的响应顺序,根据用户配置的目标AOP功能组件及其对应的响应顺序,生成不同分布式服务对应的责任链,当分布式服务配置有多个目标AOP功能组件时,为了让多个目标AOP功能组件都有可能接收到服务请求,避免服务请求和服务响应耦合在一起,将配置的目标AOP功能组件按照设定的响应顺序连接成责任链,在该责任链中,处于首位的目标AOP功能组件,最先对该服务请求进行响应;处于末尾的目标AOP功能组件,最后对该服务请求进行响应,由此能够将用户配置的目标AOP功能组件按照设定的响应顺序依次连接起来,生成责任链,同时建立不同分布式服务与责任链之间的对应关系,以便在接收到服务请求时,选择该服务请求对应的责任链,责任链上的功能组件按照连接顺序依次对该服务请求进行响应。
例如,针对分布式服务A,用户在管理端为其配置服务治理组件和权限中心组件,并设置服务治理组件和权限中心组件之间的响应顺序,基于设定的响应顺序,将服务治理组件和权限中心组件连接成一条责任链,再比如,针对分布式服务B,用户在管理端为其配置分布式调度组件和服务监控组件,并设置分布式调度组件和服务监控组件之间的响应顺序,基于设定的响应顺序,将分布式调度组件和服务监控组件连接成一条责任链。由此用户可以根据业务需求,在管理端实时为分布式服务配置相应的业务组件,当功能组件发生更新时,不必重新修改代码,直接在管理端针对功能组件的参数和规则进行修改即可,同时通过采用Spring AOP技术构建各个功能组件,实现了业务代码与功能代码的彻底分离,使研发人员能够专注于业务代码的开发。
进一步地,当分布式运营***接收到该服务请求时,首先按照预设规则将该服务请求接入组件的工作区域,具体地,可以根据服务请求对应的服务标识,判断分布式服务是否预先配置有AOP功能组件,如果分布式服务预先配置有AOP功能组件,则将该服务请求引入AOP功能组件的工作区域;如果分布式服务没有配置AOP功能组件,则该服务请求不进入功能组件的工作区域。
进一步地,在服务请求进入AOP功能组件的工作区域后,根据该服务请求对应的服务标识,确定用户在管理端配置的相应责任链,该责任链上的目标AOP功能组件按照一定顺序首尾连接,之后让该服务请求沿着该责任链进行传递,直至责任链上所有的目标AOP功能组件都响应完毕。例如,根据分布式服务A对应的服务标识,确定服务A对应的责任链上包括:服务治理组件、权限中心组件、分布式调度组件和服务监控组件,且在该责任链上的响应顺序依次为服务治理组件、权限中心组件、分布式调度组件和服务监控组件,服务治理组件、权限中心组件、分布式调度组件和服务监控组件会按照该响应顺序依次对该服务请求进行响应。
103、基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
对于本发明实施例,当分布式环境下各服务器启动时,将缓存redis中的基础数据信息初始化到本地,进一步地,在服务请求进入服务组件的工作区域之后,根据服务请求对应的责任链上的目标AOP功能组件之间的响应顺序,AOP功能组件依次对服务请求进行响应。
例如,目标AOP功能组件包括服务治理组件、权限中心组件、分布式调度组件、服务监控组件,且各组件之间的响应顺序依次为服务治理组件、权限中心组件、分布式调度组件、服务监控组件,具体地,当服务请求进入工作区域后,责任链上的服务治理组件最先对该服务请求进行响应,服务治理组件具体包括:服务端限流组件、服务端降级组件、服务端熔断组件、服务端灰度名单组件和分布式服务集群上下线组件,首先服务端限流组件根据根据初始化的本地数据信息查找限流规则,如果本地数据信息中不存在该限流规则,则在缓存中查找该限流规则,获取当前的客户访问量以及预设访问量,并计算当前的客户访问量与预设访问量的比值,根据该比值确定当前是否需要进行限流。之后服务端降级组件根据预先设定的降级规则判断该服务是否已经降级,如果确定该服务已经降级,则阻止该服务请求;如果确定该服务请求没有降级,则放过该服务请求。接着服务端熔断组件判断该服务请求对应的熔断方法是否产生,如果是,则该服务请求进行熔断机制。此外,服务端灰度名单组件根据预先设定的白名单校验该服务请求是否能够进入分布式服务实例,进一步地,分布式服务集群上下线组件判断当前服务实例是否在线,如果不在线,则拒绝该服务请求。
进一步地,在服务治理组件完成对该服务请求的响应之后,按照责任链上的响应顺序,权限中心组件对该服务请求进行响应,权限中心组件具体包括:分布式各服务权限分别/统一配置组件、权限白名单配置组件和分布式环境鉴权配置组件,首先分布式各服务权限分别/统一配置组件根据本地数据信息查找预设权限规则,如果本地数据信息中不存在该预设权限规则,则进入缓存中查找该预设权限规则,之后权限白名单配置组件根据该预设权限规则校验该客户是否有白名单权限,如果有,则继续该服务请求,接着分布式环境鉴权配置组件,根据预设设定的统一鉴权配置,识别该客户是否具备进入当前服务实例的权限。
进一步地,在服务治理组件完成对该服务请求的响应之后,责任链上的分布式调度组件对该服务请求进行响应,分布式调度组件具体包括:统一调度任务配置组件、多环境区分规则配置组件和批量作业配置组件,首先统一调度任务配置组件根据本地数据信息查找预设任务配置规则,如果没有,则进入缓存中查找该预设任务配置规则,之后多环境区分规则配置组件根据预设环境规则判断该服务请求是否符合当前环境,如果符合当前环境,则继续该服务请求;如果不符合当前环境,则对该服务请求进行拦截。进一步地,批量作业配置组件根据当前作业信息判断该服务请求是否符合批量作业,如果符合,则进行批量作业;如果不符合,则串行单个作业。
进一步地,在分布式调度组件完成对该服务请求的响应之后,责任链上的服务监控组件对该服务请求进行响应,服务监控组件具体包括:流量峰值配置组件、服务接口缓存配置组件、分布式锁接口配置组件,首先流量峰值配置组件判断该服务请求是否超越流量峰值,如果超过流量峰值,则采用动态滑动窗口机制进行限流。之后服务接口缓存配置组件判断缓存是否开启,如果开启,则将缓存中的数据信息保存到本地。进一步地,分布式锁接口配置组件判断是否需要获取锁,如果需要锁,则在缓存中查找锁是否开启,如果没有开启,则进行等待;如果已经开启,则该服务请求进行传递。由此接收到客户触发的服务请求时,能够按照预先设定的责任链上的功能组件及其对应的响应顺序对该服务请求进行响应,彻底实现了业务代码与功能代码的解耦。
本发明实施例提供的一种基于AOP功能组件的服务处理方法,与目前在分布式运营***的业务代码中引入非常多的框架和功能代码的方式相比,本发明能够接收客户触发的服务请求;并确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应,由此通过采用Spring AOP技术创建分布式运营***中所涉及的各个AOP功能组件,能够使分布式运营***中分布式服务的功能组件独立于业务代码,同时通过在管理端配置分布式运营***中不同分布式服务的功能组件属性参数,能够在接收到服务请求时,生成相应的责任链,并根据该责任链上的AOP功能组件及其对应的响应顺序,对服务请求进行响应,从而能够保证分布式运营***中分布式服务的功能组件独立于业务代码,进而能够便于功能组件的复用和维护,提高分布式运营***的开发效率。
进一步的,为了更好的说明上述对服务请求的处理过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种基于AOP功能组件的服务处理方法,如图2所示,所述方法包括:
201、利用预设模块化工具创建分布式服务所涉及的各个AOP功能组件,并将创建的各个AOP功能组件发布到所述预设模块化工具对应的仓库中。
其中,预设模块化工具可以为maven工具,也可以为其他模块化工具,本发明实施例不做具体限定。对于本发明实施例,为了实现分布式运营***中业务代码和功能代码的分离,采用Spring AOP技术创建运营***在实时分布式环境下所涉及的各个AOP功能组件,如服务治理组件、权限中心组件、分布式调度组件和服务监控组件等,具体地,可以利用maven模块化工具创建各个AOP功能组件,在创建完成各个AOP功能组件后,将创建完成的各个AOP功能组件发布到maven仓库中。
在具体应用场景中,除了根据用户预先在管理端配置的功能组件和响应顺序,生成分布式服务对应的责任链之外,还可以在分布式运营***运行的过程中,根据用户预先在管理端设置的分布式服务对应的功能组件属性参数,实时生成分布式服务对应的责任链,该功能组件属性参数具体包括:针对不同分布式服务,创建的各个AOP功能组件对应的重要性等级,以及所配置功能组件的数量要求,基于此,所述方法包括:设定所述各个AOP功能组件针对不同分布式服务的重要性等级,以及所述不同分布式服务对所需AOP功能组件的数量要求;基于所述重要性等级和所述数量要求,确定所述不同分布式服务对应的功能组件属性参数。
例如,针对分布式服务A,设定服务治理组件对应的重要性等级为一级,权限中心组件对应的重要性等级为二级,分布式调度组件对应的重要性等级为三级,服务监控组件对应的重要性等级为四级,同时设定分布是服务A所配置的功能组件的数量不超过两个;针对分布式服务B,设定服务治理组件对应的重要性等级为四级,权限中心组件对应的重要性等级为三级,分布式调度组件对应的重要性等级为二级,服务监控组件对应的重要性等级为一级,同时设定分布是服务B所配置的功能组件的数量为1个。
202、接收客户触发的服务请求。
对于本发明实施例,分布式运营***中涉及多种分布式服务,客户通过在客户端进行操作能够触发相应的服务请求。
203、确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序。
其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码。对于本发明实施例,为了根据服务请求对应的功能组件属性参数,实时生成该服务请求对应的责任链,步骤203具体包括:根据所述服务请求对应的服务标识,确定所述服务请求对应的功能组件属性参数;根据所述功能组件属性参数,确定所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序;基于所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序,生成所述服务请求对应的责任链。其中,所述功能组件属性参数包括创建的各个AOP功能组件对于所述服务请求的重要性等级以及所述服务请求对所需AOP功能组件的数量要求,基于此,所述根据所述功能组件属性参数,确定所述服务请求所需配置的AOP功能组件及其对应的响应顺序,包括:根据所述各个AOP功能组件对应的重要性等级,对所述各个AOP功能组件进行排序,得到所述各个AOP功能组件对应的排序结果;基于所述排序结果和所述服务请求对所需AOP功能组件的数量要求,从所述各个AOP功能组件中筛选所述服务请求所需配置的目标AOP功能组件;根据所述目标AOP功能组件对应的重要性等级,确定所述目标AOP功能组件对应的响应顺序。
例如,针对分布式服务A,将各个AOP功能组件按照其对应的重要性等级由高到低进行排序,排序结果为服务治理组件、权限中心组件、分布式调度组件和服务监控组件,同时确定分布式服务A所配置的功能组件数量为两个,由此从排序后的4个AOP功能组件中筛选出的两个目标AOP功能组件为服务治理组件和权限中心组件,进一步地,根据服务治理组件和权限中心组件分别对应的重要性等级,将服务治理组件和权限中心组件组成一条责任链,由于服务治理组件针对分布式服务A的重要性等级要高于权限中心组件针对分布式服务A的重要性等级,因此在该责任链中排在首位的是服务治理组件,之后是权限中心组件,对服务请求进行响应时,服务治理组件最先对该服务请求进行响应,之后权限中心组件再对该服务请求进行响应。
进一步地,在生成责任链的过程中,责任链相当于一个AOP功能组件的集合,设计一个责任链执行器,包含责任链上AOP功能组件的集合,责任链上的AOP功能组件对服务请求进行响应时,责任链执行器中有一个proceed()方法遍历功能组件的invoke()方法,invoke()方法以执行器作为参数,invoke(执行器)处理完业务后,执行器又调用proceed()方法,将索引引到下一个AOP功能组件的位置,由此能够实现责任链上不同AOP功能组件之间的链式响应。
204、基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
在具体应用场景中,所述目标AOP功能组件可以包括服务治理组件、权限中心组件、分布式调度组件和服务监控组件,所述服务治理组件可以为分布式集群上下线组件,所述权限中心组件可以为分布式环境鉴权配置组件,所述分布式调度组件可以为多环境区分规则配置组件,所述服务监控组件可以为流量峰值配置组件,基于此,步骤204具体包括:基于所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件之间的响应顺序,所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件依次对所述服务请求进行响应。进一步地,所述基于所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件之间的响应顺序,所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件依次对所述服务请求进行响应,包括:所述分布式集群上下线组件判断所述服务请求对应的服务实例是否在线;若所述服务实例在线,则所述分布式环境鉴权配置组件判断所述客户是否具备进入所述服务实例的权限;若所述客户具体进入所述服务实例的权限,则所述多环境区分规则配置组件判断所述服务请求是否符合当前环境;若所述服务请求符合所述当前环境,则所述流量峰值配置组件判断所述服务请求是否超过预设流量峰值;若所述服务请求超过预设流量峰值,则采用动态滑动窗口机制进行限流。
具体地,当服务请求进入工作区域后,责任链上的分布式集群上下线组件会判断当前的服务实例是否在线,如果当前的服务实例不在线,则拒绝该服务请求;如果当前的服务实例在线,则接受该服务请求,分布式环境鉴权配置组件会继续判断客户是否具备进入当前服务实例的权限,如果客户具备进入当前服务实例的权限,则多环境区分规则配置组件会根据预设环境规则判断该服务请求是否符合当前环境,如果不符合当前环境,则对该服务请求进行拦截;如果符合当前环境,则继续该服务请求,流量峰值配置组件会继续判断该服务请求是否超过流量峰值,如果超过流量峰值,则采用动态滑动窗口机制进行限流。
本发明实施例提供的另一种基于AOP功能组件的服务处理方法,与目前在分布式运营***的业务代码中引入非常多的框架和功能代码的方式相比,本发明能够接收客户触发的服务请求;并确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应,由此通过采用Spring AOP技术创建分布式运营***中所涉及的各个AOP功能组件,能够使分布式运营***中分布式服务的功能组件独立于业务代码,同时通过在管理端配置分布式运营***中不同分布式服务的功能组件属性参数,能够在接收到服务请求时,生成相应的责任链,并根据该责任链上的AOP功能组件及其对应的响应顺序,对服务请求进行响应,从而能够保证分布式运营***中分布式服务的功能组件独立于业务代码,进而能够便于功能组件的复用和维护,提高分布式运营***的开发效率。
进一步地,作为图1的具体实现,本发明实施例提供了一种基于AOP功能组件的服务处理装置,如图3所示,所述装置包括:接收单元31、确定单元32和响应单元33。
所述接收单元31,可以用于接收客户触发的服务请求。
所述确定单元32,可以用于确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码。
所述响应单元33,可以用于基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
在具体应用场景中,为了确定所述服务请求对应的责任链上的目标AOP功能组件,如图4所示,所述确定单元32,包括:确定模块321和生成模块322。
所述确定模块321,可以用于根据所述服务请求对应的服务标识,确定所述服务请求对应的功能组件属性参数。
所述确定模块321,还可以用于根据所述功能组件属性参数,确定所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序。
所述生成模块322,可以用于基于所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序,生成所述服务请求对应的责任链。
进一步地,所述功能组件属性参数包括创建的各个AOP功能组件对于所述服务请求的重要性等级以及所述服务请求对所需AOP功能组件的数量要求,为了确定所述服务请求所需配置的AOP功能组件及其对应的响应顺序,所述确定模块321,包括:排序子模块、筛选子模块和确定子模块。
所述排序子模块,可以用于根据所述各个AOP功能组件对应的重要性等级,对所述各个AOP功能组件进行排序,得到所述各个AOP功能组件对应的排序结果。
所述筛选子模块,可以用于基于所述排序结果和所述服务请求对所需AOP功能组件的数量要求,从所述各个AOP功能组件中筛选所述服务请求所需配置的目标AOP功能组件。
所述确定子模块,可以用于根据所述目标AOP功能组件对应的重要性等级,确定所述目标AOP功能组件对应的响应顺序。
在具体应用场景中,所述目标AOP功能组件包括服务治理组件、权限中心组件、分布式调度组件和服务监控组件,所述响应单元33,具体可以用于基于所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件之间的响应顺序,所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件依次对所述服务请求进行响应。
进一步地,所述服务治理组件为分布式集群上下线组件,所述权限中心组件为分布式环境鉴权配置组件,所述分布式调度组件为多环境区分规则配置组件,所述服务监控组件为流量峰值配置组件,所述响应单元33,包括:判断模块331和限流模块332。
所述判断模块331,可以用于所述分布式集群上下线组件判断所述服务请求对应的服务实例是否在线。
所述判断模块331,还可以用于若所述服务实例在线,则所述分布式环境鉴权配置组件判断所述客户是否具备进入所述服务实例的权限。
所述判断模块331,还可以用于若所述客户具体进入所述服务实例的权限,则所述多环境区分规则配置组件判断所述服务请求是否符合当前环境。
所述判断模块331,还可以用于若所述服务请求符合所述当前环境,则所述流量峰值配置组件判断所述服务请求是否超过预设流量峰值。
所述限流模块332,可以用于若所述服务请求超过预设流量峰值,则采用动态滑动窗口机制进行限流。
在具体应用场景中,为了创建创建各个AOP功能组件,所述装置还包括:创建单元34和发布单元35。
所述创建单元34,可以用于利用预设模块化工具创建分布式服务所涉及的各个AOP功能组件。
所述发布单元35,可以用于将创建的各个AOP功能组件发布到所述预设模块化工具对应的仓库中。
进一步地,为了设置不同分布式服务对应的功能组件属性参数,所述装置还包括:设定单元36。
所述设定单元36,可以用于设定所述各个AOP功能组件针对不同分布式服务的重要性等级,以及所述不同分布式服务对所需AOP功能组件的数量要求。
所述确定单元32,还可以用于基于所述重要性等级和所述数量要求,确定所述不同分布式服务对应的功能组件属性参数。
需要说明的是,本发明实施例提供的一种基于AOP功能组件的服务处理装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。
基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收客户触发的服务请求;确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
基于上述如图1所示方法和如图3所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图5所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现以下步骤:接收客户触发的服务请求;确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应。
通过本发明的技术方案,本发明能够接收客户触发的服务请求;并确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应,由此通过采用Spring AOP技术创建分布式运营***中所涉及的各个AOP功能组件,能够使分布式运营***中分布式服务的功能组件独立于业务代码,同时通过在管理端配置分布式运营***中不同分布式服务的功能组件属性参数,能够在接收到服务请求时,生成相应的责任链,并根据该责任链上的AOP功能组件及其对应的响应顺序,对服务请求进行响应,从而能够保证分布式运营***中分布式服务的功能组件独立于业务代码,进而能够便于功能组件的复用和维护,提高分布式运营***的开发效率。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (8)
1.一种基于AOP功能组件的服务处理方法,其特征在于,包括:
接收客户触发的服务请求;
确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;
基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应
其中,所述确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,包括:
根据所述服务请求对应的服务标识,确定所述服务请求对应的功能组件属性参数;
根据所述功能组件属性参数,确定所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序;
基于所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序,生成所述服务请求对应的责任链;
所述功能组件属性参数包括创建的各个AOP功能组件对于所述服务请求的重要性等级以及所述服务请求对所需AOP功能组件的数量要求,所述根据所述功能组件属性参数,确定所述服务请求所需配置的AOP功能组件及其对应的响应顺序,包括:
根据所述各个AOP功能组件对应的重要性等级,对所述各个AOP功能组件进行排序,得到所述各个AOP功能组件对应的排序结果;
基于所述排序结果和所述服务请求对所需AOP功能组件的数量要求,从所述各个AOP功能组件中筛选所述服务请求所需配置的目标AOP功能组件;
根据所述目标AOP功能组件对应的重要性等级,确定所述目标AOP功能组件对应的响应顺序。
2.根据权利要求1所述的方法,其特征在于,所述目标AOP功能组件包括服务治理组件、权限中心组件、分布式调度组件和服务监控组件,所述基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应,包括:
基于所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件之间的响应顺序,所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件依次对所述服务请求进行响应。
3.根据权利要求2所述的方法,其特征在于,所述服务治理组件为分布式集群上下线组件,所述权限中心组件为分布式环境鉴权配置组件,所述分布式调度组件为多环境区分规则配置组件,所述服务监控组件为流量峰值配置组件,所述基于所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件之间的响应顺序,所述服务治理组件、所述权限中心组件、所述分布式调度组件和所述服务监控组件依次对所述服务请求进行响应,包括:
所述分布式集群上下线组件判断所述服务请求对应的服务实例是否在线;
若所述服务实例在线,则所述分布式环境鉴权配置组件判断所述客户是否具备进入所述服务实例的权限;
若所述客户具体进入所述服务实例的权限,则所述多环境区分规则配置组件判断所述服务请求是否符合当前环境;
若所述服务请求符合所述当前环境,则所述流量峰值配置组件判断所述服务请求是否超过预设流量峰值;
若所述服务请求超过预设流量峰值,则采用动态滑动窗口机制进行限流。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述接收客户触发的服务请求之前,所述方法还包括:
利用预设模块化工具创建分布式服务所涉及的各个AOP功能组件;
将创建的各个AOP功能组件发布到所述预设模块化工具对应的仓库中。
5.根据权利要求4所述的方法,其特征在于,在所述将创建的各个AOP功能组件发布到所述预设模块化工具对应的仓库中之后,所述方法还包括:
设定所述各个AOP功能组件针对不同分布式服务的重要性等级,以及所述不同分布式服务对所需AOP功能组件的数量要求;
基于所述重要性等级和所述数量要求,确定所述不同分布式服务对应的功能组件属性参数。
6.一种基于AOP功能组件的服务处理装置,其特征在于,包括:
接收单元,用于接收客户触发的服务请求;
确定单元,用于确定所述服务请求对应的责任链上的目标AOP功能组件以及所述目标AOP功能组件对应的响应顺序,其中,所述目标AOP功能组件独立于所述服务请求对应的业务代码;
响应单元,用于基于所述响应顺序,所述目标AOP功能组件对所述服务请求进行响应;
所述确定单元包括:确定模块和生成模块;
所述确定模块,用于根据所述服务请求对应的服务标识,确定所述服务请求对应的功能组件属性参数;
所述确定模块,还用于根据所述功能组件属性参数,确定所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序,其中,所述功能组件属性参数包括创建的各个AOP功能组件对于所述服务请求的重要性等级以及所述服务请求对所需AOP功能组件的数量要求;
所述生成模块,用于基于所述服务请求所需配置的目标AOP功能组件及其对应的响应顺序,生成所述服务请求对应的责任链;
所述确定模块,具体用于根据所述各个AOP功能组件对应的重要性等级,对所述各个AOP功能组件进行排序,得到所述各个AOP功能组件对应的排序结果;基于所述排序结果和所述服务请求对所需AOP功能组件的数量要求,从所述各个AOP功能组件中筛选所述服务请求所需配置的目标AOP功能组件;根据所述目标AOP功能组件对应的重要性等级,确定所述目标AOP功能组件对应的响应顺序。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692600.9A CN113296959B (zh) | 2021-06-22 | 2021-06-22 | 基于aop功能组件的服务处理方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692600.9A CN113296959B (zh) | 2021-06-22 | 2021-06-22 | 基于aop功能组件的服务处理方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296959A CN113296959A (zh) | 2021-08-24 |
CN113296959B true CN113296959B (zh) | 2024-05-24 |
Family
ID=77329106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110692600.9A Active CN113296959B (zh) | 2021-06-22 | 2021-06-22 | 基于aop功能组件的服务处理方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296959B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114443169A (zh) * | 2022-01-28 | 2022-05-06 | 中国民生银行股份有限公司 | 一种实现技术组件平台化的方法及装置 |
CN115291850B (zh) * | 2022-08-11 | 2023-03-07 | 广州芯德通信科技股份有限公司 | 基于java语言的自定义交互数据的管理方法、***、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006026673A2 (en) * | 2004-08-31 | 2006-03-09 | Ascential Software Corporation | Architecture for enterprise data integration systems |
CN106293808A (zh) * | 2016-07-26 | 2017-01-04 | 北京北森云计算股份有限公司 | 多语言云编译实现***功能动态拦截扩展的方法及*** |
CN109618347A (zh) * | 2019-02-17 | 2019-04-12 | 中国—东盟信息港股份有限公司 | 一种自动化分发业务请求的智能网关*** |
CN109739624A (zh) * | 2018-12-27 | 2019-05-10 | 北京三快在线科技有限公司 | 分布式事务处理方法、装置、电子设备及计算机可读介质 |
CN111309374A (zh) * | 2020-01-21 | 2020-06-19 | 苏州达家迎信息技术有限公司 | 一种微服务***和微服务***中的服务调用方法 |
CN112751847A (zh) * | 2020-12-28 | 2021-05-04 | 深圳市优必选科技股份有限公司 | 接口调用请求的处理方法、装置、电子设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050256971A1 (en) * | 2003-08-14 | 2005-11-17 | Oracle International Corporation | Runtime load balancing of work across a clustered computing system using current service performance levels |
US11716264B2 (en) * | 2018-08-13 | 2023-08-01 | Cisco Technology, Inc. | In situ triggered function as a service within a service mesh |
-
2021
- 2021-06-22 CN CN202110692600.9A patent/CN113296959B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006026673A2 (en) * | 2004-08-31 | 2006-03-09 | Ascential Software Corporation | Architecture for enterprise data integration systems |
CN106293808A (zh) * | 2016-07-26 | 2017-01-04 | 北京北森云计算股份有限公司 | 多语言云编译实现***功能动态拦截扩展的方法及*** |
CN109739624A (zh) * | 2018-12-27 | 2019-05-10 | 北京三快在线科技有限公司 | 分布式事务处理方法、装置、电子设备及计算机可读介质 |
CN109618347A (zh) * | 2019-02-17 | 2019-04-12 | 中国—东盟信息港股份有限公司 | 一种自动化分发业务请求的智能网关*** |
CN111309374A (zh) * | 2020-01-21 | 2020-06-19 | 苏州达家迎信息技术有限公司 | 一种微服务***和微服务***中的服务调用方法 |
CN112751847A (zh) * | 2020-12-28 | 2021-05-04 | 深圳市优必选科技股份有限公司 | 接口调用请求的处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
微服务架构在电动汽车智能充电服务与运营平台***中的应用;隋永鑫;微型机与应用;20171225;36(24);第102-108页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113296959A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113296959B (zh) | 基于aop功能组件的服务处理方法、装置及计算机设备 | |
US6112196A (en) | Method and system for managing connections to a database management system by reusing connections to a database subsystem | |
US7065526B2 (en) | Scalable database management system | |
US20030182328A1 (en) | Apparatus and method for sharing data between multiple, remote sites of a data network | |
US6834303B1 (en) | Method and apparatus auto-discovering components of distributed services | |
US8620926B2 (en) | Using a hashing mechanism to select data entries in a directory for use with requested operations | |
CN108632374A (zh) | 软件灰度发布方法及装置 | |
CN101925907A (zh) | 在多节点计算机***上使用虚拟专用网保护数据空间 | |
WO2004001598A2 (en) | Distributed computer | |
US8055651B2 (en) | Distribution of join operations on a multi-node computer system | |
CN113055252B (zh) | 新增业务主机检测方法、装置、设备及存储介质 | |
US7783786B1 (en) | Replicated service architecture | |
CN107066522B (zh) | 数据库的访问方法和装置 | |
CN106445709A (zh) | 一种分布式调用服务器的方法及其*** | |
EP1443423A1 (en) | Apparatus and method for data replication in a data network | |
CN107181747B (zh) | 一种包含顶层节点的Handle解析*** | |
CN109033184A (zh) | 数据处理方法及装置 | |
CN113127906A (zh) | 基于c/s架构的统一权限管理平台、方法及存储介质 | |
US8572723B2 (en) | Utilizing virtual private networks to provide object level security on a multi-node computer system | |
US10171570B2 (en) | Information processing apparatus | |
CN113240499B (zh) | 一种基于***切换的订单处理方法和装置 | |
CN104915246A (zh) | 一种基于工作流的高可配分布式实时计算引擎及控制方法 | |
Luo et al. | Distributed mining of maximal frequent itemsets on a data grid system | |
CN105187244A (zh) | 一种支持多种管理模式的数字通信设备访问管理*** | |
EP0522683B1 (en) | Routing of messages in a data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |