一种降低大型分布式系统接口和服务计算调用次数的方法技术方案

技术编号:21033831 阅读:20 留言:0更新日期:2019-05-04 05:16
本发明专利技术涉及实时数据计算领域,提高了一种降低大型分布式系统接口和服务计算调用次数的方法,其主旨在于,解决现有大型分布式系统在方法调用过程中存在的重复调用,占用系统资源的问题,其主要技术方案包括:发起远程方法查询调用。本地方法拦截器进行拦截。读取注解信息,判断是否要使用事件上下文保存查询结果。按照方法定义和参数值,生成唯一的key。继续进行远程调用查询。返回查询结果,将key值和结果以键值对的形式存入事件上下文。第二次查询请求到来。读取注解信息,判断是否使用事件上下文保存查询结果。根据key值从事件上下文中直接获取查询结果。返回查询结果。

【技术实现步骤摘要】
一种降低大型分布式系统接口和服务计算调用次数的方法
本专利技术涉及实时数据计算领域,提供了一种适用于大型分布式系统接口和服务计算调用次数的方法。
技术介绍
近年来,随着互联网技术的迅速发展,软件系统由集中式逐渐转变为分布式系统。分布式系统的结构极其复杂,通常由网络、数据库、应用服务器等多个部分组成,整个应用系统中的任何一部分皆可能成为瓶颈,从而导致整个系统性能的低下,难以满足用户的需求。分布式系统的复杂性,使保证软件系统性能变得极为困难。传统的系统间的调用如下图1所示;在服务请求方请求产生一次调用时,即使每次的请求结果都是一样的,仍然发起了多次重复性的调用,无法有效利用本地的上下文环境。在大型分布式系统,其因具有高并发的特性,重复调用,势必会浪费系统资源,增加系统开销。
技术实现思路
本专利技术的目的在于解决现有大型分布式系统在方法调用过程中存在的重复调用,占用系统资源的问题,提高了一种降低调用次数,提升系统性能,简化实时计算的操作步骤和复杂度的方法。本专利技术为了解决上述技术问题,采用以下方案:一种降低大型分布式系统接口和服务计算调用次数的方法,包括以下步骤:S1、服务请求方向实时数据平台发起远程方法调用,请求返回结果value;S2、时数据平台的本地方法拦截器对远程方法调用进行拦截,根据服务请求方发起的调用参数和方法判断分布式缓存上下文中是否存在对应的key值,如存在,跳转步骤S7,如不存在,则进行步骤S3;S3、根据实时数据平台数据的关键字段值的判断,生成返回结果注解信息为true或false;S4、当注解信息的属性isUseContextCache为true,进行步骤S5,当注解信息的属性isUseContextCache为false,进行步骤S6;S5、将实时数据平台数据的返回结果value存入实时数据平台数据的分布式缓存上下文中,并根据服务请求方发起的调用参数和方法,生成与返回结果value对应的唯一的key;S6、时实时数据平台数据的执行结果直接返回给服务请求方;S7、返回key值对应的结果。上述技术方案中,所述步骤3中:服务请求方发起的调用参数中以时间范围作为条件,则判断时间调用参数的时间条件是否在当前系统时间之前,如是,则注解信息的属性isUseContextCache为true,否则为false。上述技术方案中,所述步骤3中:当实时数据平台数据的关键字段值为流程标志符时,当关键字段值为“流程结束”时,则注解信息的属性isUseContextCache为true,否则为false。上述技术方案中,注解信息中的属性mode为synchronize,采用同步方式处理请求,属性mode为async时,采用异步处理方式。本专利技术因为采用上述技术方案,因此具备以下有益效果:1、在消息的处理和计算过程中,当需要调用相同的远程方法进行处理时,则直接根据key值从事件上下文中获取处理结果,确保一个线程内仅调用一次,简化实时计算的操作步骤和复杂度。2、本专利技术通过自定义拦截器,通过识别自定义注解对方法进行拦截。按照方法定义和参数值生成key,将key值和方法查询的结果保存到事件上下文中。同时根据注解中的配置项,实现拦截之后的多策略和多任务处理。多个系统通过消息的方式传递数据到数据计算平台,在消息处理的过程中,为了将多个系统的数据落地到数据平台,每个线程在计算和处理时会产生大量的重复性的外部处理调用。本专利技术为了降低调用次数,提升系统性能,简化实时计算的操作步骤和复杂度设计了一套解决方案。附图说明图1为现有技术调用方式;图2为本申请调用方式。具体实施方式在大型电商系统集群或者大型金融系统中,按照微服务拆分系统已经非常普及,因此本方案非常适合在此类大型分布式系统中应用,具体实施方式举例:在电商领域中,面对大量请求和高并发,我们搭建了实时数据平台,为各类请求提供数据服务。如:客户需要查询自己的结算单据,请求达到数据平台后,我们首先用拦截器拦截到了用户请求,根据业务属性配置注解信息如下:@QueryHandler(isUseContextCache=true),此时拦截器会读取注解信息,根据用户查询请求中的用户id和结算单号,拼接成key值,将查询结果作为value放入上下文。当用户第二次请求到来时,如果查询的时同一笔结算单据,则直接从上下文中取出,不进行后重复查询。为解决上述技术问题,本专利技术采用以下技术方案:S1、服务请求方向实时数据平台发起远程方法调用,请求返回结果。S2、本地方法拦截器进行对远程方法调用进行拦截,将请求信息保存到上下文中。S3、读取注解信息,判断是否在第二次请求中返回。如:注解信息配置为isUseContextCache(使用上下文缓存)=true,则使用上下文保存处理结果。则当同一个处理请求(根据方法参数判断)再次到来时,则直接返回之前上下文保存的处理结果。注解信息配置为isUseContextCache=false,则进入即席处理模式(即席查询是指那些用户在使用系统时,根据自己当时的需求定义的查询)。S4、注解中isUseContextCache=true时,按照方法定义和参数值,生成唯一的key。S5、注解中mode=synchronize(同步)时,采用同步方式处理请求。mode=async(异步)时,采用异步处理方式。S6、读取节点处理注解(未配置节点则跳过此步骤)。如:nextBolt(下一个节点)=queryProcessor(查询处理器),拦截器将上下文信息传入到处理节点queryProcessor(查询),由该处理器读取上下文信息进行处理。返回结果,注解中isUseContextCache=true时将key值和结果以键值对的形式存入事件上下文。S7、超时判断(未配置则跳过此步骤)。如:timeOut=20s,判断被调用方是否响应时间超过20S,如果超高则立即返回空的应答结果。S8、判断注解中是否配置了回调接口(未配置则跳过此步骤)。如:callBack=callMethod,此时,将S6的处理结果作为入参回调对方的callMethod接口,流程结束。最为本申请进一步优选方式,在实际方法调用过程中,随着时间的推移与大量调用的产生,分布式缓存中的上下文数据将异常庞大,为此本申请给出技术启示,设置规则引擎,对存入分布式缓存中的上下文信息的被重复调用次数,时间间隔进行统计,如:在一小时内未被重复调用的上下文信息将被从缓存中释放,亦可根据调用频率进行缓存释放规则设定。本方案中,对部分存入缓存中的上下文信息附加属性,即,即使该存入上下文中的数据1天内只被调用一次,也不进行释放。进一步的,在实时数据中心返回结构时,可设置缓存保留时间属性,即在返回结果存入上下文时,其在缓存中保存时间就已经设定,当时间到时,规则引擎就对缓存中的上下文信息进行释放。本专利技术通过自定义拦截器,通过识别自定义注解对方法进行拦截。按照方法定义和参数值生成key,将key值和方法查询的结果保存到事件上下文中。同时根据注解中的配置项,实现拦截之后的多策略和多任务处理。传统的拦截器只能简单拦截方法,在方法切面上拦截进行简单加工处理。本专利技术中的拦截器除了具有传统拦截器的所有功能外,还能够实现精细化管理,具备以下特性:1、超时保本文档来自技高网...

【技术保护点】
1.一种降低大型分布式系统接口和服务计算调用次数的方法,其特征在于,包括以下步骤:S1、服务请求方向实时数据平台发起远程方法调用,请求返回结果value;S2、时数据平台的本地方法拦截器对远程方法调用进行拦截,根据服务请求方发起的调用参数和方法判断分布式缓存上下文中是否存在对应的key值,如存在,跳转步骤S7,如不存在,则进行步骤S3;S3、根据实时数据平台数据的关键字段值的判断,生成返回结果注解信息为true或false;S4、当注解信息的属性isUseContextCache为true,进行步骤S5,当注解信息的属性isUseContextCache为false,进行步骤S6;S5、将实时数据平台数据的返回结果value存入实时数据平台数据的分布式缓存上下文中,并根据服务请求方发起的调用参数和方法,生成与返回结果value对应的唯一的key;S6、时实时数据平台数据的执行结果直接返回给服务请求方;S7、返回key值对应的结果。

【技术特征摘要】
1.一种降低大型分布式系统接口和服务计算调用次数的方法,其特征在于,包括以下步骤:S1、服务请求方向实时数据平台发起远程方法调用,请求返回结果value;S2、时数据平台的本地方法拦截器对远程方法调用进行拦截,根据服务请求方发起的调用参数和方法判断分布式缓存上下文中是否存在对应的key值,如存在,跳转步骤S7,如不存在,则进行步骤S3;S3、根据实时数据平台数据的关键字段值的判断,生成返回结果注解信息为true或false;S4、当注解信息的属性isUseContextCache为true,进行步骤S5,当注解信息的属性isUseContextCache为false,进行步骤S6;S5、将实时数据平台数据的返回结果value存入实时数据平台数据的分布式缓存上下文中,并根据服务请求方发起的调用参数和方法,生成与返回结果value对应的唯一的key;S6、时实时数据平台数据的执行结果直接返...

【专利技术属性】
技术研发人员:蒋恩平
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1