到底什么是RPC,不妨自己动手写一个。了解一下?

RPC是一种远程过程调用协议。RPC主要功能:异构分布式项目之间的通信,使消费者只需要知道接口,远程调用方法就像调用本地方法一样。 要使得消费层只通过接口调用远程实现方法,那么其之间的传输数据肯定是:类、方法、参数、返回值,以及一些其它传输的信息。 之间涉及到通信,肯定要发布服务供客户端请求。客户端要执行未知实现的方法,是通过动态代理实现的。 在了解动态代理的使用后,就会发现,在动态代理的方法执行过程中,可以不用去执行真实方法(invoke方法中),你可以获取到上面所需要的类、方法、参数、返回值等执行方法的参数。 那么把这些参数传输到远程去。在提供层接收到消费层方法的传参后,通过反射执行已经注册的类方法。(提供层要把暴露接口的实现类的方法注册到容器中,供查找)

说了这么多,不如自己来实现一个?

bio多线程通信 客户端服务端直连的RPC例子

https://github.com/yuyufeng1994/my-rpc/tree/v1

增加zookeeper注册发现,增加Protostuff序列化的例子

https://github.com/yuyufeng1994/my-rpc/tree/v2

增加Netty,增加Cluster负载的例子

https://github.com/yuyufeng1994/my-rpc

猜你喜欢

转载自blog.csdn.net/qq_18860653/article/details/79884219