System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 服务间远程调度方法、装置、设备及存储介质制造方法及图纸_技高网

服务间远程调度方法、装置、设备及存储介质制造方法及图纸

技术编号:42644323 阅读:8 留言:0更新日期:2024-09-06 01:40
本说明书涉及业务远程调度技术领域,提供了一种服务间远程调度方法、装置、设备及存储介质,该方法包括:接收第一服务端发起的用于调度第二服务端的远程调用请求报文;从配置中心获取远程调用请求报文对应的第一合法性校验逻辑和入参业务校验逻辑,并据此进行合法性校验和入参业务校验逻辑,获得第一校验结果;根据第一校验结果判断是否需要重新组装远程调用请求报文的入参结构;当需要重新组装入参结构时,从配置中心获取对应的入参结构映射模版,并利用反射机制和入参结构映射模版重新组装入参结构;根据重新组装后的入参结构的调用第二服务端。本说明书实施例可以降低服务间远程调度的实现成本。

【技术实现步骤摘要】

本说明书涉及业务远程调度,尤其是涉及一种服务间远程调度方法、装置、设备及存储介质


技术介绍

1、各业务系统之间交互一般由服务方系统提供接口文档给接入方系统,接入方根据接口文档的入参、出参格式对代码进行调整。随着分布式架构的普及,为了减少对接的沟通成本以及接入方字段名调整和服务方不一致引起的问题,采用远程过程调度(rpc)方式由服务方系统提供软件开发工具包(sdk),接入方引出sdk后就能像调本地服务一样进行远程调用。但当需求发生变化,接口协议改变时,服务端则需要发布新版本的sdk包给接入方,每当服务端进行上线,则需要考虑不同版本sdk包的兼容问题,是否会引起序列化问题等。总而言之,在现有的服务间远程调度技术中,当需求、接口协议或联调场景任意一个发生变化时,均需要频繁发布代码上线;从而大幅增加了服务间远程调度的实现成本。


技术实现思路

1、本说明书实施例的目的在于提供一种服务间远程调度方法、装置、设备及存储介质,以降低服务间远程调度的实现成本。

2、为达到上述目的,一方面,本说明书实施例提供了一种服务间远程调度方法,包括:

3、接收第一服务端发起的用于调度第二服务端的远程调用请求报文;

4、从配置中心获取所述远程调用请求报文对应的第一合法性校验逻辑和入参业务校验逻辑;

5、根据所述第一合法性校验逻辑校验所述远程调用请求报文的入参字段合法性,并根据所述入参业务校验逻辑校验所述远程调用请求报文的入参业务逻辑正确性,获得第一校验结果;>

6、根据所述第一校验结果判断是否需要重新组装所述远程调用请求报文的入参结构;

7、当需要重新组装所述入参结构时,从所述配置中心获取对应的入参结构映射模版,并利用反射机制和所述入参结构映射模版重新组装所述入参结构;

8、根据重新组装后的入参结构的调用所述第二服务端。

9、本说明书实施例的服务间远程调度方法,所述利用反射机制和所述入参结构映射模版重新组装所述入参结构,包括:

10、以所述入参结构映射模版为基准,利用asm反射机制重新组装所述入参结构。

11、本说明书实施例的服务间远程调度方法,所述以所述入参结构映射模版为基准,利用asm反射机制重新组装所述入参结构,包括:

12、创建classreader对象;

13、调用所述classreader对象解析所述入参结构的字节码文件,获得所述入参结构的入参字段属性、请求方法和字节码;

14、创建classvisitor类;

15、调用所述classvisitor类的visitfiled方法判断所述入参字段属性是否与所述入参结构映射模版中的入参字段属性一致;并调用所述classvisitor类中的visitmehod方法判断所述请求方法是否与所述入参结构映射模版中的请求方法一致;

16、创建classwriter类;

17、若与所述入参结构映射模版中的入参字段属性不一致,则调用所述classwriter类的filedwriter方法将所述入参结构的入参字段属性覆写为与所述入参结构映射模版中的入参字段属性一致;若与所述入参结构映射模版中的请求方法不一致,则调用所述classwriter类的methodwriter方法将所述入参结构的入参字段属性覆写为与所述入参结构映射模版中的入参字段属性一致;

18、修改所述入参结构在覆写入参字段属性和/或请求方法后的字节码。

19、本说明书实施例的服务间远程调度方法,在根据所述第一校验结果判断是否需要重新组装所述远程调用请求报文的入参结构之后,还包括:

20、当不需要重新组装所述入参结构时,将所述入参结构透传至所述第二服务端。

21、本说明书实施例的服务间远程调度方法,在根据重新组装后的入参结构的调用所述第二服务端之后,还包括:

22、接收所述第二服务端返回的远程调用响应报文;

23、从配置中心获取所述远程调用响应报文的第二合法性校验逻辑和出参业务校验逻辑;

24、根据所述第二合法性校验逻辑校验所述远程调用响应报文的出参字段合法性,并根据所述出参业务校验逻辑校验所述远程调用响应报文的出参业务逻辑正确性,获得第二校验结果;

25、根据所述第二校验结果判断是否需要重新组装所述远程调用响应报文的出参结构;

26、当需要重新组装所述出参结构时,从所述配置中心获取对应的出参结构映射模版,并利用反射机制和所述出参结构映射模版重新组装所述出参结构;

27、将重新组装后的出参结构返回给所述第一服务端。

28、本说明书实施例的服务间远程调度方法,所述利用反射机制和所述出参结构映射模版重新组装所述出参结构,包括:

29、以所述出参结构映射模版为基准,利用javassist反射重新组装所述出参结构。

30、本说明书实施例的服务间远程调度方法,以所述出参结构映射模版为基准,利用javassist反射重新组装所述出参结构,包括:

31、从classpool类池中获取ctclass对象;

32、调用所述ctclass对象获取所述出参结构的出参字段属性、返回方法和字节码;

33、创建ctfield对象和ctmethod对象;

34、调用所述ctfield对象检查所述出参字段属性是否与所述出参结构映射模版中的出参字段属性一致,并调用所述ctmethod对象检查所述返回方法是否与所述出参结构映射模版中的返回方法一致;

35、若与所述出参结构映射模版中的出参字段属性不一致,则调用所述ctfield对象中的addfileld方法、removefield方法和/或setmodifiers方法,将所述出参结构的出参字段属性覆写为与所述出参结构映射模版中的出参字段属性一致;若与所述出参结构映射模版中的返回方法不一致,则调用所述ctmethod对象的instrument方法,将所述出参结构的返回方法覆写为与所述出参结构映射模版中的返回方法一致。

36、本说明书实施例的服务间远程调度方法,在接收第一服务端发起的用于调度第二服务端的远程调用请求之后,还包括:

37、接收到所述第一服务端返回的远程调用请求报文时,调用预设的jvm沙盒拦截方法处理指定事务;所述指定事务包括业务监控、流量录制和/或模拟故障请求;

38、返回执行远程调用业务主逻辑。

39、本说明书实施例的服务间远程调度方法,所述调用预设的jvm沙盒拦截方法处理指定事务处理,包括:

40、执行jvm沙盒的before方法拦截所述远程调用请求报文,获得所述远程调用请求报文的入参数据;

41、解析所述入参数据获得业务身份,并按照业务维度将所述业务身份进行分堆映射处理;

42、多线程异步计算每个所述业务身份的请求密度,并将每本文档来自技高网...

【技术保护点】

1.一种服务间远程调度方法,其特征在于,包括:

2.如权利要求1所述的服务间远程调度方法,其特征在于,所述利用反射机制和所述入参结构映射模版重新组装所述入参结构,包括:

3.如权利要求2所述的服务间远程调度方法,其特征在于,所述以所述入参结构映射模版为基准,利用ASM反射机制重新组装所述入参结构,包括:

4.如权利要求1所述的服务间远程调度方法,其特征在于,在根据所述第一校验结果判断是否需要重新组装所述远程调用请求报文的入参结构之后,还包括:

5.如权利要求1所述的服务间远程调度方法,其特征在于,在根据重新组装后的入参结构的调用所述第二服务端之后,还包括:

6.如权利要求5所述的服务间远程调度方法,其特征在于,所述利用反射机制和所述出参结构映射模版重新组装所述出参结构,包括:

7.如权利要求6所述的服务间远程调度方法,其特征在于,以所述出参结构映射模版为基准,利用Javassist反射重新组装所述出参结构,包括:

8.如权利要求1所述的服务间远程调度方法,其特征在于,在接收第一服务端发起的用于调度第二服务端的远程调用请求之后,还包括:

9.如权利要求8所述的服务间远程调度方法,其特征在于,所述调用预设的JVM沙盒拦截方法处理指定事务处理,包括:

10.一种服务间远程调度装置,其特征在于,包括:

11.一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-9任意一项所述方法的指令。

12.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-9任意一项所述方法的指令。

13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-9任意一项所述方法的指令。

...

【技术特征摘要】

1.一种服务间远程调度方法,其特征在于,包括:

2.如权利要求1所述的服务间远程调度方法,其特征在于,所述利用反射机制和所述入参结构映射模版重新组装所述入参结构,包括:

3.如权利要求2所述的服务间远程调度方法,其特征在于,所述以所述入参结构映射模版为基准,利用asm反射机制重新组装所述入参结构,包括:

4.如权利要求1所述的服务间远程调度方法,其特征在于,在根据所述第一校验结果判断是否需要重新组装所述远程调用请求报文的入参结构之后,还包括:

5.如权利要求1所述的服务间远程调度方法,其特征在于,在根据重新组装后的入参结构的调用所述第二服务端之后,还包括:

6.如权利要求5所述的服务间远程调度方法,其特征在于,所述利用反射机制和所述出参结构映射模版重新组装所述出参结构,包括:

7.如权利要求6所述的服务间远程调度方法,其特征在于,以所述出参结构映射模版为基准,利用javassist反射重...

【专利技术属性】
技术研发人员:刘承欣林付兵刘伟满含冰
申请(专利权)人:中国光大银行股份有限公司
类型:发明
国别省市:

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

1