從0寫一個rpc框架
規劃
- 網絡傳輸基於Netty
- Java接口定義契約
- 序列化協議基於google的protostuff,不是使用protobuf
- 計劃支持push,socket是全雙工的,不支持着實浪費。
- 實現自己的自定義Trace追蹤,不希望綁定到特定的apm框架上,自己實現adapter對接cat,zipkin等
- 使用java8的CompletableFuture實現客戶端異步回調
- 基於Netty實現自己的httpserver,不希望系統中再有servlet容器。
Java接口每個請求參數和響應都是一個類包括,而非多個字段,否則升級的時候調用方很麻煩,畢竟Java也不支持Python的動態參數。
不採用Protobuf直接用於用戶契約,不想讓給看到這篇文章的人引入更多的新概念,提高學習成本。