harpc 基於thrift的輕量級rpc框架
阿新 • • 發佈:2019-02-03
注意:此文為轉載文章,原文地址為:https://github.com/baifendian/harpc
harpc是什麼
HARPC(High Availability RPC)是基於Thrift的跨語言、高可用的RPC框架。具備高效能、高可用、輕量級等特點,在百分點科技內部服務中廣泛使用。
使用指南:HARPC簡介
QQ討論群:398091913
功能介紹
- 跨語言通訊
- 方便的使Java、Python、C++三種程式可以相互通訊
- 負載均衡和容災處理
- 方便的實現任務的分散式處理
- 支援服務的水平擴充套件,自動發現新的服務節點
- 能夠相容各種異常情況,如節點的異常down機
- 視覺化管理
- 通過服務管理系統可以方便檢視服務狀態和統計資訊
- 與原生thrift通訊
- 支援與原生thrift服務進行通訊
- 支援與原生thrift服務進行通訊
與業內方案的對比
- 與thrift、avro、hessian相比,harpc支援了高可用,並且更加易用
- 與dubbo相比,harpc支援了跨語言,並且更輕量級
- 與ice相比,harpc效能更高,並且更輕量級
設計思路
HARPC的核心思想是高可用,那麼在保證高可用的基礎上,還需要具備跨語言、高效能、視覺化及輕量級等特性。於是,我們在設計之初就選擇了基於thrift開發的方案,底層通訊使用thrift來保證高效能和跨語言,然後HARPC來保證高可用和視覺化,並且儘量保持簡單,來達到輕量級的需求。
- 整體結構
* 說明 * 四個部分:client(客戶端)、server(服務端)、registry(註冊中心,目前為zookeeper叢集)、admin(服務管理系統) * client和server又包括: your code(使用者程式碼)、harpc(核心框架,包含Java、Python、C++三個版本)、thrift gen(thrift生成的原始碼檔案,用於底層通訊)
如何使用
測試結論
harpc的Java、Python、C++版本的效能略有差別,由高到低為:C++版本 ≈ Java版本 > Python版本,下面僅給出Java版本的測試資料和結論。