rpc 遠程過程調用
rpc與http的區別
1.性能高 2.使用復雜 3.可擴展性高 4 跨語言支持 5.可以使用服務發現,負載均衡,熔斷降級
rpc遠程調用,必須傳輸數據,需要序列化。
序列化有多種方式:
jdk原生序列化,使用簡單,缺點 占用較多存儲空間 不支持跨語言
json 優點都有,缺點序列化/反序列化性能低
hessian 需要額外的依賴,且需手動處理引用關系問題
protobuf 非常高序列化性能,缺點需要額外依賴,數據格式不直觀,不適合動態擴展性高的場景
多路復用 reactor 模型,用單線程處理多個socket請求,獲取到的socket先進行注冊,交由handle處理。客戶端有特定行為,會觸發事件。服務端遍歷事件,進行處理。