实现一个简易的PRC框架

本文分享了一个基于Spring、Zookeeper及Netty实现的简易RPC框架实践经验。详细介绍了项目的整体流程、核心组件及其作用,并提供了源码链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

了解了RPC的基本原理,学了netty之后心血来潮,相实现一个简易的RPC框架,想着挺简单的,但做的时候花费了一些功夫,感觉在做这个简易的框架最让我明白的道理就是,在做一个东西之前,首先应该明白这个框架的基本流程,只有搞明白这个之后在写才有方向,否则想也不想直接写的话会搞的自己一头雾水,总的来讲在做的时候收货颇多,理解的内部类,CountDownLatch等的

的妙用,spring解耦的强大能力等等。首先我写的这个项目是基于spring+zookeeper+Netty构建的,其中zookeeper用来当做注册中心使用,netty用作客户端到服务端的通信,spring则负责解耦工作。

整个流程是,服务端将服务预先注册到zookeeper上,客户端从服务端拉取到可用服务,通过netty相服务端发送调用强求,而服务端交由spring管理,在启用过程中,利用bean处理器,将每个模块的方法执行器预先加载,服务启动后根据客户端发送过来的消息调用相应的方法执行器并将所得结果返回,最后客户端收到服务端传来的消息完成调用:

首先先看一下注册中心结构图,在zookeeper上按此种方式分布

置于整个项目的话由于代码太多就不放这里了感兴趣的可以去我的github上下载https://github.com/skybluehhx/RPC.git 下面对我的包结构做一个简要的介绍

 

 

 

其中balance包中主要放的是负载均衡策略,client放的主要的客户端代码,encode是为了解决分包和粘包问题的编码器,Register用于向zookeeper上注册服务,RPCInfo用于封装请求和响应信息,seriable用于序列化对象便于传输,server是服务端的代码,Utils是一些工具类 。下载地址https://github.com/skybluehhx/RPC.git

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值