手写RPC总结篇

在这里插入图片描述
协议制定:client到server做交互的通信协议,比如request response 网络端点peer

难点1 : Jetty嵌入

◆jetty Server
◆ServletContextHandler
◆ServletHolder

  • jetty server 起到网络监听的作用
  • ServletContextHandler注册到jetty server中
  • ServletHolder托管servlet
  • 具体数据的接收和写回都是在servlet里做的
  • 基于servlet做的网络处理

难点2 :动态代理

◆Proxy.newProxyInstance (创建动态代理对象)
◆RemoteInvoker implements InvocationHandler (最关键的是实现invoke()方法—调用了哪些方法,传递了哪些参数。通过二进制发送request对象,远程会返回一个response对象)

不足和展望:
安全性:

身份信息校验没做,https比http多了安全控制

序列化安全加密,建立网络连接时做身份验证

服务端处理能力:

server的transport是基于jetty做的,jetty本身是有线程池处理client请求的, 线程池最好自己做, 返回数据的通道最好做成队列形式。

注册中心:

对RPC锦上添花,起到对server地址的注册,client能够通过这个注册中心自动的去发现server的地址。

集成能力:

和其他框架的嵌入结合,比如springboot结合,比如做一个springboot starter,让他自动的创建server或client

bean factory自动创建代理对象。

基于redis实现的注册中心

更多负载均衡算法的实现

项目名称:基于Java语言实现的RPC框架

项目描述:

  • 实现轻量级RPC框架,使得客户端可以通过网络从远程服务端程序上请求服务
  • 注册中心部分使用Redis实现注册、订阅功能(可选)
  • 在客户端实现了基于一致性哈希算法的负载均衡(可选)
  • 动态代理部分使用JDK动态代理
  • 网络传输部分使用Http协议进行传输
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值