从0写一个rpc框架
规划
- 网络传输基于Netty
- Java接口定义契约
- 序列化协议基于google的protostuff,不是使用protobuf
- 计划支持push,socket是全双工的,不支持着实浪费。
- 实现自己的自定义Trace追踪,不希望绑定到特定的apm框架上,自己实现adapter对接cat,zipkin等
- 使用java8的CompletableFuture实现客户端异步回调
- 基于Netty实现自己的httpserver,不希望系统中再有servlet容器。
Java接口每个请求参数和响应都是一个类包括,而非多个字段,否则升级的时候调用方很麻烦,毕竟Java也不支持Python的动态参数。
不采用Protobuf直接用于用户契约,不想让给看到这篇文章的人引入更多的新概念,提高学习成本。