技术新讯 > 电子通信装置的制造及其应用技术 > RPC请求报文加工方法、加工过滤器、电子设备及介质与流程  >  正文

RPC请求报文加工方法、加工过滤器、电子设备及介质与流程

  • 国知局
  • 2024-08-22 14:17:58

本发明涉及计算机通信,具体而言,涉及rpc请求报文加工方法、加工过滤器、电子设备及介质。

背景技术:

1、rpc(remote procedure call,远程过程调用)是一个计算机通信协议,它允许一台计算机程序调用另一台计算机上的程序。在rpc框架下包含有两类具有请求报文加工过滤功能的过滤器;一类是rpc框架自带的过滤器,另一类是开发用户通过rpc框架提供的过滤器开发接口自定义开发的与业务需求对应的过滤器;

2、但是,随着业务需求的增加,rpc框架下自定义开发的过滤器也越来越多,导致开发过滤器的耗时较长,开发效率不高;各种业务需求对应的过滤器集成到rpc框架下的过滤器责任链条中后,由于大部分业务需求均是对请求报文进行加工,导致过滤器之间的耦合性较高;此外,由于每个自定义开发过滤器在应用时都需要实现接口方法,导致过滤器复用性较差,不便捷。

技术实现思路

1、有鉴于此,本技术的目的在于提供rpc请求报文加工方法、加工过滤器、电子设备及介质,能够利用rpc请求报文中与各种目标业务对应的java注解,以及java反射驱动对rpc请求报文进行加工,无需对每个目标业务都开发一个过滤器,缩短了开发过滤器的耗时时长,提高了开发效率;且各目标业务均通过一个过滤器即可完成报文加工,减少了过滤器的数量,降低了过滤器之间的耦合性,提高了过滤器的复用性和便捷性。

2、第一方面,本技术实施例提供了一种rpc请求报文加工方法,该方法应用于加工过滤器,该方法包括:

3、接收服务消费方发送的远程过程调用rpc请求报文;

4、若rpc请求报文存在注解,则根据rpc请求报文的加工方、注解的注解类型,确定与注解中的方法标识对应的方法路径;

5、其中,注解是指服务消费方在rpc请求报文对应的请求类上或请求类下的属性上添加的java注解,用于表征目标业务对应的方法标识;

6、将rpc请求报文对应注解中的方法标识所对应的代码,替换为方法路径;

7、通过java的反射驱动,对rpc请求报文中的方法路径对应位置存储的方法进行运行,以完成rpc请求报文的加工。

8、在一种可能的实施方式中,在接收服务消费方发送的远程过程调用rpc请求报文之后,该方法还包括:

9、判断rpc请求报文对应的请求类上是否存在类上注解、请求类下是否存在属性上注解;

10、若rpc请求报文对应的请求类上存在类上注解,和/或请求类下存在属性上注解,则rpc请求报文存在注解。

11、在一种可能的实施方式中,判断rpc请求报文对应的请求类上是否存在类上注解、请求类下是否存在属性上注解,包括:

12、获取rpc请求报文中的请求类名称,请求类名称携带有类路径;

13、通过java反射获取类路径所在位置存储的与请求类名称对应请求类、请求类的属性数组;

14、判断请求类上是否存在类上注解、属性上是否存在注解。

15、在一种可能的实施方式中,在接收服务消费方发送的远程过程调用rpc请求报文方法之前,该方法还包括:

16、当rpc架构启动时,将本地存储的驱动方法映射文件中的内容同步缓存到在缓存中存储的方法路径映射表中;

17、其中,驱动方法映射文件中对应存储有rpc请求报文的加工方、注解的注解类型、注解中的方法标识、方法路径。

18、在一种可能的实施方式中,根据rpc请求报文的加工方、注解的注解类型,确定与注解中的方法标识对应的方法路径,包括:

19、根据rpc请求报文的加工方、注解的注解类型,从缓存中存储的方法路径映射表中确定与注解中的方法标识对应的方法路径;

20、其中,方法路径映射表中对应存储有rpc请求报文的加工方、注解的注解类型、注解中的方法标识、方法路径。

21、在一种可能的实施方式中,该方法还包括:

22、按照预设时长根据本地存储的驱动方法映射文件中存储的内容,刷新方法路径映射表中存储的内容。

23、在一种可能的实施方式中,该方法包括:

24、按照预设时长,对本地存储的驱动方法映射文件中的内容作哈希,得到驱动方法映射文件对应的当前的内容哈希值;

25、若当前的内容哈希值,与对应的上一次得到的内容哈希值不同,则根据驱动方法映射文件中存储的内容,刷新方法路径映射表中存储的内容。

26、第二方面,本技术实施例还提供了一种加工过滤器,该加工过滤器包括:

27、接收模块,用于接收服务消费方发送的远程过程调用rpc请求报文;

28、确定模块,用于若rpc请求报文存在注解,则根据rpc请求报文的加工方、注解的注解类型,确定与注解中的方法标识对应的方法路径;

29、其中,注解是指服务消费方在rpc请求报文对应的请求类上或请求类下的属性上添加的java注解,用于表征目标业务对应的方法标识;

30、替换模块,用于将rpc请求报文对应注解中的方法标识所对应的代码,替换为方法路径;

31、运行模块,用于通过java的反射驱动,对rpc请求报文中的方法路径对应位置存储的方法进行运行,以完成rpc请求报文的加工。

32、在一种可能的实施方式中,该加工过滤器还包括,判断模块;

33、判断模块,用于在接收服务消费方发送的远程过程调用rpc请求报文之后,判断rpc请求报文对应的请求类上是否存在类上注解、请求类下是否存在属性上注解;若rpc请求报文对应的请求类上存在类上注解,和/或请求类下存在属性上注解,则rpc请求报文存在注解。

34、在一种可能的实施方式中,判断模块,具体用于获取rpc请求报文中的请求类名称,请求类名称携带有类路径;通过java反射获取类路径所在位置存储的与请求类名称对应请求类、请求类的属性数组;判断请求类上是否存在类上注解、属性上是否存在注解。

35、在一种可能的实施方式中,该加工过滤器还包括,缓存模块;

36、缓存模块,用于在接收服务消费方发送的远程过程调用rpc请求报文方法之前,当rpc架构启动时,将本地存储的驱动方法映射文件中的内容同步缓存到在缓存中存储的方法路径映射表中;

37、其中,驱动方法映射文件中对应存储有rpc请求报文的加工方、注解的注解类型、注解中的方法标识、方法路径。

38、在一种可能的实施方式中,确定模块,具体用于根据rpc请求报文的加工方、注解的注解类型,从缓存中存储的方法路径映射表中确定与注解中的方法标识对应的方法路径;其中,方法路径映射表中对应存储有rpc请求报文的加工方、注解的注解类型、注解中的方法标识、方法路径。

39、在一种可能的实施方式中,该加工过滤器还包括:刷新模块;

40、刷新模块,用于按照预设时长根据本地存储的驱动方法映射文件中存储的内容,刷新方法路径映射表中存储的内容。

41、在一种可能的实施方式中,刷新模块,还用于:

42、按照预设时长,对本地存储的驱动方法映射文件中的内容作哈希,得到驱动方法映射文件对应的当前的内容哈希值;

43、若当前的内容哈希值,与对应的上一次得到的内容哈希值不同,则根据驱动方法映射文件中存储的内容,刷新方法路径映射表中存储的内容。

44、第三方面,本技术实施例还提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行如第一方面任一项rpc请求报文加工方法的步骤。

45、第四方面,本技术实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面任一项rpc请求报文加工方法的步骤。

46、本技术实施例提供了rpc请求报文加工方法、加工过滤器、电子设备及介质,该方法包括:接收服务消费方发送的远程过程调用rpc请求报文;若rpc请求报文存在注解,则根据rpc请求报文的加工方、注解的注解类型,确定与注解中的方法标识对应的方法路径;其中,注解是指服务消费方在rpc请求报文对应的请求类上或请求类下的属性上添加的java注解,用于表征目标业务对应的方法标识;将rpc请求报文对应注解中的方法标识所对应的代码,替换为方法路径;通过java的反射驱动,对rpc请求报文中的方法路径对应位置存储的方法进行运行,以完成rpc请求报文的加工。本技术利用rpc请求报文中与各种目标业务对应的java注解,以及java反射驱动对rpc请求报文进行加工,无需对每个目标业务都开发一个过滤器,缩短了开发过滤器的耗时时长,提高了开发效率;且各目标业务均通过一个过滤器即可完成报文加工,减少了过滤器的数量,降低了过滤器之间的耦合性,提高了过滤器的复用性和便捷性。

本文地址:https://www.jishuxx.com/zhuanli/20240822/277966.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。