Dapeng框架-開源高效能分散式微服務框架
阿新 • • 發佈:2018-11-23
我們公司性質是新零售,公司也有專門的框架組。這群大牛自己開發了一整套分散式微服務框架。我們也在使用這套框架,有很多心得體會。
該框架既Dapeng也!開源github地址:https://github.com/dapeng-soa
Dapeng-soa 是一個輕量級、高效能的微服務框架,構建在Netty以及定製的精簡版Thrift之上。 同時,從Thrift IDL檔案自動生成的服務元資料資訊是本框架的一個重要特性,很多其它重要特性都依賴於服務元資料資訊。 最後,作為一站式的微服務解決方案,Dapeng-soa還提供了一系列的腳手架工具以支援使用者快速的搭建微服務系統,例如:
除部署需要吐槽外,好用地方如下:
-
- api閘道器(dapeng-mesh), 提供基於服務元資料以及流式處理的Json模組用於處理http-json請求跟Thrift協議之間的相互轉換。
- 線上文件以及測試站點(dapeng-api-doc),直接基於服務元資料生成,確保跟程式碼保持同步。
- 命令列工具(dapeng-cli),提供命令列或者指令碼的方式跟服務叢集互動,可用於服務執行時狀態監控、資料修復等。
- 配置部署中心(dapeng-config-server),提供web-gui介面,用於服務配置管理以及服務部署管理。
- maven/sbt外掛 for IDEA, 用於在開發過程中快速啟動服務容器
- 專案模板(目前僅支援sbt:g8 template for sbt projects)
- Demo(dapeng-demo)
Architecture
Features
- 基於Netty 以及精簡版的Thrift
- 基於Thrift IDL的服務元資料
- 服務註冊以及服務自動發現
- 支援Java/Scala客戶端程式碼自動生成
- 支援http-json跟Thrift二進位制流的高效相互轉換
- 客戶端以及服務端全鏈路同步/非同步呼叫支援
- 多維度智慧服務路由以及負載均衡策略,可通過http cookie資訊路由(Router)
- 基於共享記憶體的服務端限流,支援多維度的限流,支援服務或者介面級別的限流(FreqControl)
- 分散式服務呼叫日誌跟蹤
Next