rpc-framework:一个rpc框架演示-源码

上传者: 42160252 | 上传时间: 2021-04-01 10:05:10 | 文件大小: 137KB | 文件类型: ZIP
rpc框架 前言 学习javaGuide,自己动手造个轮子,通过这个简易的轮子,可以学到RPC的扭曲原理和原理以及各种Java编码实践的运用。 介绍 是一种基于Netty + Kyro + Zookeeper实现的RPC框架。 设计思路 一个基本的RPC框架设计思路 架构 一个最简单的RPC框架使用示意图如下图所示,这也是这个项目目前的架构: 工作流程 服务端将服务注册到注册中心并且在服务端监听客户端请求。 客户端在消费中心拿到服务,远程调用服务(发送一个request给服务端)。 服务端根据请求,调用对应的服务转化结果返回给客户端。 客户端接收响应,结束调用。 技术选型 净值+ Kryo + Zookeeper Netty:网络应用框架,使用它来进行网络传输。 kryo:序列化/反序列化工具。 zookeeper:做注册中心。 项目骨骼 使用 下载运行zookeeper。 服务端

文件下载

资源详情

[{"title":"( 48 个子文件 137KB ) rpc-framework:一个rpc框架演示-源码","children":[{"title":"rpc-framework-master","children":[{"title":"client","children":[{"title":"src","children":[{"title":"main","children":[{"title":"java","children":[{"title":"com","children":[{"title":"yufa","children":[{"title":"xz","children":[{"title":"ly","children":[{"title":"NettyClientMain.java <span style='color:#111;'> 1.06KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 999B </span>","children":null,"spread":false}],"spread":true},{"title":".gitignore <span style='color:#111;'> 363B </span>","children":null,"spread":false},{"title":"images","children":[{"title":"项目各模块作用.png <span style='color:#111;'> 37.11KB </span>","children":null,"spread":false},{"title":"rpc-architure.png <span style='color:#111;'> 55.23KB </span>","children":null,"spread":false}],"spread":true},{"title":"server","children":[{"title":"src","children":[{"title":"main","children":[{"title":"resources","children":[{"title":"rpc.properties <span style='color:#111;'> 43B </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"NettyServerMain.java <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"com","children":[{"title":"yufa","children":[{"title":"xz","children":[{"title":"ly","children":[{"title":"serviceimpl","children":[{"title":"HelloServiceImpl.java <span style='color:#111;'> 663B </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 929B </span>","children":null,"spread":false}],"spread":true},{"title":"rpc-framework-simple","children":[{"title":"src","children":[{"title":"main","children":[{"title":"java","children":[{"title":"com","children":[{"title":"yufa","children":[{"title":"xz","children":[{"title":"ly","children":[{"title":"provider","children":[{"title":"ServiceProvider.java <span style='color:#111;'> 1.07KB </span>","children":null,"spread":false},{"title":"ServiceProviderImpl.java <span style='color:#111;'> 2.88KB </span>","children":null,"spread":false}],"spread":true},{"title":"proxy","children":[{"title":"RpcClientProxy.java <span style='color:#111;'> 2.42KB </span>","children":null,"spread":false}],"spread":false},{"title":"remoting","children":[{"title":"dto","children":[{"title":"RpcResponse.java <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"RpcRequest.java <span style='color:#111;'> 948B </span>","children":null,"spread":false}],"spread":false},{"title":"handler","children":[{"title":"RpcRequestHandler.java <span style='color:#111;'> 1.45KB </span>","children":null,"spread":false}],"spread":false},{"title":"transport","children":[{"title":"ClientTransport.java <span style='color:#111;'> 341B </span>","children":null,"spread":false},{"title":"netty","children":[{"title":"client","children":[{"title":"NettyClientTransport.java <span style='color:#111;'> 2.26KB </span>","children":null,"spread":false},{"title":"NettyClient.java <span style='color:#111;'> 2.98KB </span>","children":null,"spread":false},{"title":"NettyClientHandler.java <span style='color:#111;'> 2.43KB </span>","children":null,"spread":false},{"title":"ChannelProvider.java <span style='color:#111;'> 1.32KB </span>","children":null,"spread":false},{"title":"UnprocessedRequests.java <span style='color:#111;'> 924B </span>","children":null,"spread":false}],"spread":false},{"title":"server","children":[{"title":"NettyServerHandler.java <span style='color:#111;'> 2.94KB </span>","children":null,"spread":false},{"title":"NettyServer.java <span style='color:#111;'> 3.62KB </span>","children":null,"spread":false}],"spread":false},{"title":"codec","children":[{"title":"kryo","children":[{"title":"NettyKryoEncoder.java <span style='color:#111;'> 936B </span>","children":null,"spread":false},{"title":"NettyKryoDecoder.java <span style='color:#111;'> 1.55KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false},{"title":"registery","children":[{"title":"ServiceRegistry.java <span style='color:#111;'> 365B </span>","children":null,"spread":false},{"title":"zk","children":[{"title":"ZkServiceRegistry.java <span style='color:#111;'> 690B </span>","children":null,"spread":false},{"title":"util","children":[{"title":"CuratorUtils.java <span style='color:#111;'> 5.41KB </span>","children":null,"spread":false}],"spread":false},{"title":"ZkServiceDiscovery.java <span style='color:#111;'> 1.45KB </span>","children":null,"spread":false}],"spread":false},{"title":"ServiceDiscovery.java <span style='color:#111;'> 343B </span>","children":null,"spread":false}],"spread":false},{"title":"serialize","children":[{"title":"Serializer.java <span style='color:#111;'> 568B </span>","children":null,"spread":false},{"title":"kryo","children":[{"title":"KryoSerializer.java <span style='color:#111;'> 1.78KB </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 1.28KB </span>","children":null,"spread":false}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 4.85KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 2.69KB </span>","children":null,"spread":false},{"title":"service-api","children":[{"title":"src","children":[{"title":"main","children":[{"title":"java","children":[{"title":"com","children":[{"title":"yufa","children":[{"title":"xz","children":[{"title":"ly","children":[{"title":"HelloService.java <span style='color:#111;'> 256B </span>","children":null,"spread":false},{"title":"Hello.java <span style='color:#111;'> 437B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 511B </span>","children":null,"spread":false}],"spread":true},{"title":"rpc-framework-common","children":[{"title":"src","children":[{"title":"main","children":[{"title":"java","children":[{"title":"com","children":[{"title":"yufa","children":[{"title":"xz","children":[{"title":"ly","children":[{"title":"entity","children":[{"title":"RpcServiceProperties.java <span style='color:#111;'> 486B </span>","children":null,"spread":false}],"spread":false},{"title":"factory","children":[{"title":"SingletonFactory.java <span style='color:#111;'> 984B </span>","children":null,"spread":false}],"spread":false},{"title":"file","children":[{"title":"PropertiesFileUtils.java <span style='color:#111;'> 913B </span>","children":null,"spread":false}],"spread":false},{"title":"enumeration","children":[{"title":"RpcErrorMessage.java <span style='color:#111;'> 625B </span>","children":null,"spread":false},{"title":"RpcMessageType.java <span style='color:#111;'> 128B </span>","children":null,"spread":false},{"title":"RpcConfigProperties.java <span style='color:#111;'> 412B </span>","children":null,"spread":false},{"title":"RpcResponseCode.java <span style='color:#111;'> 388B </span>","children":null,"spread":false}],"spread":false},{"title":"exeception","children":[{"title":"RpcException.java <span style='color:#111;'> 535B </span>","children":null,"spread":false},{"title":"SerializeException.java <span style='color:#111;'> 219B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"pom.xml <span style='color:#111;'> 520B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明