一种基于注解和动态代理的rpc通信方法及设备、介质技术

技术编号:23628839 阅读:25 留言:0更新日期:2020-03-31 23:56
本申请公开了一种基于注解和动态代理的rpc通信方法及设备、介质。本方法获取服务端的接口描述信息;采用动态代理机制,生成与所述接口描述信息匹配的代理类;通过所述代理类,调用所述服务端发布的基于远程过程调用协议rpc的服务;其中,所述代理类用于调用分布式服务。通过动态代理生成代理类,使客户端无需明确服务端提供的rpc服务中的具体方法的部署位置,而可通过代理类进行调用,增加了服务调用的灵活性。并且,客户端无需开发专门基于通信的调用方法,节省了开发时间,提高了开发效率。

【技术实现步骤摘要】
一种基于注解和动态代理的rpc通信方法及设备、介质
本申请涉及通信
,尤其涉及一种基于注解和动态代理的rpc通信方法及设备、介质。
技术介绍
微服务架构是一项在云中部署应用和服务的新技术。随着微服务架构的流行,越来越多的开发者开始接触和学习微服务架构。在微服务架构中,通信服务是较为关键与重要的一环。因此,微服务架构中关于通信服务的开发是开发者关注的重点问题。目前,在实际使用过程中,微服务架构中的通信服务面临以下几个问题:第一,服务端在发布服务时,需要开发专门用于通信的接口与实现类,需要耗费较长的开发时间,使得发布服务的过程较为复杂;第二,客户端在调用服务端发布的服务时,需要开发专门用于通信的调用方法,从而增加了调用过程的复杂程度,不利于提高开发效率。
技术实现思路
本申请实施例提供一种基于注解和动态代理的rpc通信方法及设备、介质,用于解决现有技术中的如下技术问题:服务端与客户端在基于远程过程调用协议进行通信时,需开发专门用于通信的接口或调用方法,增加了通信过程的复杂程度,不利于提高开发效率。本申请实施例采用下述技术方案:一种基于注解和动态代理的rpc通信方法,所述rpc通信方法应用于客户端,所述方法包括:获取服务端的接口描述信息;采用动态代理机制,生成与所述接口描述信息匹配的代理类;通过所述代理类,调用所述服务端发布的基于远程过程调用协议rpc的服务;其中,所述代理类用于调用分布式服务。可选地,获取服务端的接口描述信息,包括:获取服务端通过接口中的注解信息自动生成的接口描述信息。可选地,在所述基于rpc服务的通信过程中,所述方法还包括:在参数中添加注解信息,确定参数的序列化方式,其中,所述序列化方式包括JavaScript对象简谱、ProtocolBuffers、MessagePack中的至少任意一种。可选地,所述方法还包括:通过所述代理类对调用的服务进行兼容性处理。可选地,所述方法应用于包含多个服务单元的微服务架构中,所述服务端属于所述微服务架构。一种基于注解和动态代理的rpc通信方法,所述rpc通信方法应用于服务端,所述方法包括:在基于远程过程调用协议rpc服务的接口中添加注解信息;通过所述注解信息,自动生成控制器以及接口描述信息,以实现对所述rpc服务的发布;其中,所述rpc服务能够通过客户端的代理类进行调用。可选地,通过所述注解信息,自动生成控制器以及接口描述信息,包括:在所述接口中添加标签;根据所述标签以及所述注解信息,生成包含接口描述信息的配置文件。可选地,所述服务端包括第一服务单元与第二服务单元,所述方法还包括:所述第一服务单元接收第二服务单元发送的数据;对接收到的数据进行兼容性处理。一种基于注解和动态代理的rpc通信的设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取服务端的接口描述信息;采用动态代理机制,生成与所述接口描述信息匹配的代理类;通过所述代理类,调用所述服务端发布的基于远程过程调用协议rpc的服务;其中,所述代理类用于调用分布式服务。一种基于注解和动态代理的rpc通信的非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:获取服务端的接口描述信息;采用动态代理机制,生成与所述接口描述信息匹配的代理类;通过所述代理类,调用所述服务端发布的基于远程过程调用协议rpc的服务;其中,所述代理类用于调用分布式服务。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:通过动态代理机制,生成客户端的代理类,使客户端无需明确服务端提供的rpc服务中的具体方法的部署位置,而可通过代理类进行调用,增加了服务调用的灵活性。并且,客户端无需开发专门基于通信的调用方法,节省了开发时间,提高了开发效率。通过在服务端的接口中添加注解信息,可自动生成服务端的控制器与接口注解信息,实现rpc服务的发布。有利于节省开发时间,实现高效开发。针对不同部署模式的服务单元间的通信差异,通过对具有不同部署模式的服务单元进行兼容性处理,满足了多个服务单元之间的通信需求,为微服务架构内部通信提供了通信基础。尤其在微服务架构中,通过本方法,为微服务架构中多个服务单元之间、以及客户端与多个服务单元之间的通信提供了更加便捷的方法与途径,实现了快速、高效的服务开发。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1为本申请实施例提供的一种基于注解和动态代理的rpc通信方法流程图;图2为本申请实施例提供的另一种基于注解和动态代理的rpc通信方法流程图;图3为本申请实施例提供的对应于图1的基于注解和动态代理的rpc通信的设备的一种结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。以下结合附图,详细说明本申请各实施例提供的技术方案。图1为本申请实施例提供的一种基于注解和动态代理的rpc通信方法流程图,具体步骤包括:S101:获取服务端的接口描述信息。在本申请实施例中,本方法可应用于微服务架构中,微服务架构中包括多个服务单元。其中,微服务架构(MicroserviceArchitecture)是一种架构概念,其将系统的全部功能分解到各个离散的服务单元中,分别由各个服务单元承担并完成部分功能,从而降低系统的耦合性,提供更加灵活的服务支持。本申请实施例所指的服务端,属于微服务架构。服务端可为其中的一个服务单元,也可包括多个服务单元。具体可根据系统的设计需要确定,本申请对此不做限定。在微服务架构中,可采用远程过程调用协议(RemoteProcedureCallProtocol,rpc)实现远程通信。通过rpc服务进行远程通信,可像调用本地服务一样调用远程服务。在微服务架构中,服务端可向客户端发布rpc服务,并向客户端暴露相应服务对应的接口。于是,在本申请实施例中,客户端可根据服务端暴露的服务接口,获取相应服务的接口描述信息。进一步地,在本申请实施例中,客户端获取的接口描述信息,可由服务端通过预先添加在接口中的注解信息,自动解析生成。其中,接口中的注解信息可用于标明该接口对外提供的rpc服务并提供相应的接口描述信息。S102:采用动本文档来自技高网...

【技术保护点】
1.一种基于注解和动态代理的rpc通信方法,其特征在于,所述rpc通信方法应用于客户端,所述方法包括:/n获取服务端的接口描述信息;/n采用动态代理机制,生成与所述接口描述信息匹配的代理类;/n通过所述代理类,调用所述服务端发布的基于远程过程调用协议rpc的服务;其中,所述代理类用于调用分布式服务。/n

【技术特征摘要】
1.一种基于注解和动态代理的rpc通信方法,其特征在于,所述rpc通信方法应用于客户端,所述方法包括:
获取服务端的接口描述信息;
采用动态代理机制,生成与所述接口描述信息匹配的代理类;
通过所述代理类,调用所述服务端发布的基于远程过程调用协议rpc的服务;其中,所述代理类用于调用分布式服务。


2.如权利要求1所述的方法,其特征在于,获取服务端的接口描述信息,包括:
获取服务端通过接口中的注解信息自动生成的接口描述信息。


3.如权利要求1所述的方法,其特征在于,在所述基于rpc服务的通信过程中,所述方法还包括:
在参数中添加注解信息,确定参数的序列化方式,其中,所述序列化方式包括JavaScript对象简谱、ProtocolBuffers、MessagePack中的至少任意一种。


4.如权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述代理类对调用的服务进行兼容性处理。


5.如权利要求1所述的方法,其特征在于,所述方法应用于包含多个服务单元的微服务架构中,所述服务端属于所述微服务架构。


6.一种基于注解和动态代理的rpc通信方法,其特征在于,所述rpc通信方法应用于服务端,所述方法包括:
在基于远程过程调用协议rpc服务的接口中添加注解信息;
通过所述注解信息,自动生成控制器以及接口描述信息,以实现对所述rpc服务的发布;其中,所述rpc服务...

【专利技术属性】
技术研发人员:王兴山霍亮
申请(专利权)人:浪潮通用软件有限公司
类型:发明
国别省市:山东;37

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

1