RPC框架设计与实现系列

前言


本项目实现了一个简易RPC框架,项目中迭代了五个版本的RPC框架。每个版本最终实现的结果:

V1:jdk动态代理+BIO通信+反射。

V2:较第一版利用线程池实现伪异步。

V3:较第二版利用NIO实现通信。

V4:较第三版利用Netty对原生的NIO进行简化。

V5:较第四版利用ZooKeeper实现服务治理,同时利用SPI机制对负载均衡策略进行选择。

源码可访问我的github获取。

服务端暴露相应服务。

1
2
3
4
5
6
7
8
9
10
11
12
13
public class provider {
public static void main(String[] args) throws Exception {
// 用来暴露服务的类
HelloService helloService = new HelloServiceImpl();
// 端口号
int port = 1234;
ExportService.exportHelloService_v5(helloService, port);
//ExportService.exportHelloService_v1(helloService, port);
//ExportService.exportHelloService_v2(helloService, port);
//ExportService.exportHelloService_v3(helloService, port);
//ExportService.exportHelloService_v4(helloService, port);
}
}

客户端实现相应逻辑,向服务端发送请求,并接收和解析服务端的响应结果。

参考

实现一个自己的RPC框架1.0——知识储备

实现一个自己的RPC框架2.0

实现一个自己的RPC框架3.0

实现一个自己的RPC框架4.0

实现一个自己的RPC框架5.0

实现一个自己的RPC框架6.0