mirpc是一个简易的rpc框架,现在也没什么大的亮点,只是实现的基本功能。主要目的自然是为了了解rpc的实现原理,以及netty的基本使用。希望小伙伴们一起加油吧,加入一下自己的想法,欧里给。
rpc的基本原理:
- 服务提供者向服务注册中心注册服务
- 服务调用者到注册中心获取服务提供者的地址
- 服务调用者通过网络调用接口
所以我们需要实现几个必要的东西
- 服务注册中心
- 客户端
- 服务端
- rpc协议
- 负载均衡,当客户端发现有多个服务提供者,需要从中选一个
- ......
主要有这几个包
- client:客户端
- server:服务端
- protocol:rpc协议实现
- registry:服务注册和服务发现
- loadbalance:负载均衡
这里用三个流程图来简单了解其工作过程,已经每个模块发挥的作用
客户端流程图:
服务端流程图:
- 服务发布流程
服务端需要先进行服务发布,向注册中心进行注册,分为本地注册和服务注册
- 监听流程
因为该rpc框架都是学别人写的,而且只是走了一遍流程。还需要有很多完善的地方。
-
异常处理不够完善
-
没有完整的单元测试,没有做性能测试
-
使用起来非常蛋疼,没有灵活的配置
-
没有监控服务健康状态
-
......