我們公司性質是新零售,公司也有專門的框架組。這群大牛自己開發了一整套分散式微服務框架。我們也在使用這套框架,有很多心得體會。

該框架既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

    dapeng-soa

    Features

    •  基於Netty 以及精簡版的Thrift
    •  基於Thrift IDL的服務元資料
    •  服務註冊以及服務自動發現
    •  支援Java/Scala客戶端程式碼自動生成
    •  支援http-json跟Thrift二進位制流的高效相互轉換
    •  客戶端以及服務端全鏈路同步/非同步呼叫支援
    •  多維度智慧服務路由以及負載均衡策略,可通過http cookie資訊路由(Router)
    •  基於共享記憶體的服務端限流,支援多維度的限流,支援服務或者介面級別的限流(FreqControl)
    •  分散式服務呼叫日誌跟蹤

    Next

    Quick start