【技术实现步骤摘要】
一种基于java的跨平台可扩展的RPC框架设计方法
本专利技术涉及信息
,特别是涉及一种基于java的跨平台可扩展的RPC框架设计方法。
技术介绍
目前,随着互联网技术的不断发展,对一个互联网应用来说,随着功能模块的不断增多,系统逐渐庞大,势必会逐步拆分成多个应用,而每个应用之间会有关联关系,涉及到互相调用,而单个应用考虑到防止单点,又会部署多套,从而这种多对多的关联调用,会形成一个复杂的分布式服务调用网络。随着调用环节的增多,多个服务之间的互联机制,也愈发成为重要的平台建设基础环节之一。同时目前常用的处理方案,有着各种各样的局限性。目前,针对主要是java之间进行互联,兼顾跨平台互联的场景,现有技术中存在以下问题:(1)单一系统问题:随着功能模块增多,系统愈发庞大,单一系统中即便调整一个小功能,就要重新测试发布整个系统,不利于系统的稳定,也增加了运维难度。(2)分布式问题:系统拆分后,多系统之前的互联势必会形成一个复杂的分布式网络,若没有合适的分布式处理策略,则会导致分布式网络任何一个环节出问题,都会导致雪崩效应。(3)性能问题:系统拆分后,多系统之前的互联势必会形成一个复杂的分布式网络,各系统之间的调用从本地调用调整为远程调用,如果不能提供高性能的远程调用,那么势必会降低平台的整体负载。(4)调用跨平台问题:RPCServer发布后,可能调用的客户端是异构语言,此时需能够提供服务。(5)易用性问题:为了满足跨平台,一些常用的方案会要求使用结构化描述语言来定义接口和类,或者会加入繁复的配置。这些都增加 ...
【技术保护点】
1.一种基于java的跨平台可扩展的RPC框架设计方法,其特征在于,包括以下步骤:/n(1)以java开发服务端,定义代理接口类和实体类,Controller类继承所述代理接口类并实现,启动RPC Server即完成RPC服务发布;/n(2)开发客户端,通过启动RPC Client对接所述服务端,调用RPC方法和本地方法一致;/n(3)所述RPC Server采用Netty作为通信框架,启动TCP服务,同时加载注册的RPC接口类及RPC实现类,将所述RPC Server注册到服务发现中心;/n(4)所述RPC Client采用Netty作为通信框架,加载注册的RPC代理接口类,并连接所述服务发现中心,获取订阅的服务列表,进行连接。/n
【技术特征摘要】
1.一种基于java的跨平台可扩展的RPC框架设计方法,其特征在于,包括以下步骤:
(1)以java开发服务端,定义代理接口类和实体类,Controller类继承所述代理接口类并实现,启动RPCServer即完成RPC服务发布;
(2)开发客户端,通过启动RPCClient对接所述服务端,调用RPC方法和本地方法一致;
(3)所述RPCServer采用Netty作为通信框架,启动TCP服务,同时加载注册的RPC接口类及RPC实现类,将所述RPCServer注册到服务发现中心;
(4)所述RPCClient采用Netty作为通信框架,加载注册的RPC代理接口类,并连接所述服务发现中心,获取订阅的服务列表,进行连接。
2.根据权利要求1所述的基于java的跨平台可扩展的RPC框架设计方法,其特征在于,所述步骤(1)具体为:先定义服务接口,Controller类层通过继承接口做实现,接着定义RPCServer配置,包括:服务接口类、服务接口实现类、服务名和服务发现中心地址;然后将RPCServer启动方法加入到应用程序启动后执行即可。
3.根据权利要求1所述的基于java的跨平台可扩展的RPC框架设计方法,其特征在于,所述步骤(2)具体为:定义RPCClient配置,包括:代理接口类、服务名和服务发现中心地址;然后将RPCClient启动方法加入到应用程序启动后执行即可。
4.根据权利要求1所述的基于java的跨平台可扩展的RPC框架设计方法,其特征在于,所述步骤(2)中当以java语言开发客户端时,基于RPCClient采用TCP作为传输协议;当以非java语言开发客户端时,采用httpjson方式实现跨平台调用服务。
5.根据权利要求1所述的基于java的跨平台可扩展的RPC框架设计方法,其特征在于,所述步骤(3)中RPCServer的初始化和启动需要加入到SSM项目的启动项中,初始化需要设置服务发现中心的地址、本次发布的服务名和本次发布的服务使用的代理接口类名和实现类名。
6.根据权利要求1所述的基于java的跨平台可扩展的RPC框架设计方法,其特征在于,所述步骤(3)中RPCServer启动后包括以下子步骤:
(31)初始化监控模块,所述监控模块用于对每个RPC方法的请求情况进行统计,统计项包含:方法标识、请求总数、请求失败总数和请求总耗时;每分钟会将上一分钟的统计情况,上报到RPC管理平台;
(32)启动通信框架,基于异步事件驱动模型来接收RPCClient的请求,遍历注册的代理接口里的每个方法,每个方法会生成一个唯一的methodId,采用字节码方式为每个方法对应的实现方法构建实例,并以methodId为key,方法实例为value,存放到一个map中,用于后续RPCClient请求时做方法响应;
(33)将所述RPCServer注册到服务发现中心,其中,服务标识为发布服务的唯一标识,RPCServer的IP端口为具体提供服务的应用的唯一标识,并以此来构建所述服务标识下属的RPCServer列表,当RPCClient以服务标识连接服务发现中心时,能够获取到对应的RPCServer列表用于连接调用;当RPCServer与服务发现中心失联时,服务发现中心就会从服务列表中去除该RPCServer;...
【专利技术属性】
技术研发人员:李蔚,
申请(专利权)人:上海视云网络科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。