Skip to content

Latest commit

 

History

History
34 lines (24 loc) · 1.53 KB

README.md

File metadata and controls

34 lines (24 loc) · 1.53 KB

my-rpc

my-rpc 是一款基于netty+zookeeper+hessian2 实现的 RPC 框架。实现了异步IO网络传输、hessian2序列化以及多种负载均衡算法

技术栈

技术栈 用处
netty 基于NIO网络编程框架
zookeeper 服务注册与发现
hessian2 传输序列化

特性/技术要点

  1. 注册中心 :使用 Zookeeper,服务端启动的时候将服务名称及其对应的地址(ip+port)注册到注册中心,服务消费端根据服务名称找到对应的服务地址。有了服务地址之后,服务消费端就可以通过网络请求服务端了。
  2. 网络传输:远程调用需要进行网络传输,使用基于NIO的netty框架
  3. 序列化:客户端请求中至少要包含调用的类名、方法名以及相关参数。采用hessian2对POJO进行序列化和反序列化。
  4. 负载均衡:当服务部署在多台服务器,客户端调用时需要进行一定地选择。内置随机算法与轮转算法
  5. 粘包:在数据包前面添加包首部,包含数据包长度。

项目包概览

  • api —— 通用接口
  • core —— 框架的核心实现
  • provider —— 服务提供方
  • proxy —— 代理
  • testClient —— 客户端例子
  • testServer —— 服务端例子

启动

在此之前请确保 zookeeper运行在本地 2181 端口。

首先启动testClient,再启动testClient,在客户端会输出test以及相应日志。