my-rpc 是一款基于netty+zookeeper+hessian2 实现的 RPC 框架。实现了异步IO网络传输、hessian2序列化以及多种负载均衡算法
技术栈 | 用处 |
---|---|
netty | 基于NIO网络编程框架 |
zookeeper | 服务注册与发现 |
hessian2 | 传输序列化 |
- 注册中心 :使用 Zookeeper,服务端启动的时候将服务名称及其对应的地址(ip+port)注册到注册中心,服务消费端根据服务名称找到对应的服务地址。有了服务地址之后,服务消费端就可以通过网络请求服务端了。
- 网络传输:远程调用需要进行网络传输,使用基于NIO的netty框架
- 序列化:客户端请求中至少要包含调用的类名、方法名以及相关参数。采用hessian2对POJO进行序列化和反序列化。
- 负载均衡:当服务部署在多台服务器,客户端调用时需要进行一定地选择。内置随机算法与轮转算法
- 粘包:在数据包前面添加包首部,包含数据包长度。
- api —— 通用接口
- core —— 框架的核心实现
- provider —— 服务提供方
- proxy —— 代理
- testClient —— 客户端例子
- testServer —— 服务端例子
在此之前请确保 zookeeper运行在本地 2181
端口。
首先启动testClient
,再启动testClient
,在客户端会输出test
以及相应日志。