相容dubbo的微服務框架dubbogo;dubbo的完整go語言實現

alexstocks發表於2016-10-17

1 說明

一個支援 dubbo 協議的 go 微服務框架;dubbo 的完整 go 語言實現dubbogo,以及其程式碼示例dubbogo-examples

2 feature

v0.2 feature list:

  1. 基於 dubbo(hessian2.0) + tcp 實現的 go client 以阻塞並行方式呼叫 dubbo(hessian2)原生協議的 java server 的服務;

v 0.1.2 feature list:

  1. 基於 jsonrpc 2.0 + http 實現的 go client 可以呼叫基於 dubbogo(jsonrpc 2.0)實現的 go server 的服務;
  2. 基於 jsonrpc 2.0 + http 實現的 go client 可以呼叫基於 dubbo(jsonrpc 2.0)實現的 java server 的服務;
  3. 基於 jsonrpc 2.0 + http 實現的 java client 可以呼叫基於 dubbogo(jsonrpc 2.0)實現的 go server 的服務;

v 2.6.5.0 feature list:

Role: Consumer(√), Provider(√);

Transport: HTTP(√), TCP(√);

Codec: JsonRPC v2(√), Hessian v2(√);

Registry: ZooKeeper(√);

Cluster Strategy: Failover(√);

Load Balance: Random(√);

Filter: Echo Health Check(√);

2.1 補充

將近兩年【2016/10/07 ~ 2018/05/18】的多次延期後,v0.2.0 於今日釋出,目前僅僅在 client 層面支援了 dubbo 原生協議。

v0.1.2 其實現基於 http + jsonrpc2.0.

v 2.6.5.0 作為一個大版本迭代,對之前版本的程式碼進行了重構。基於 dubbo 的 extension 模組和分層的程式碼設計 (包括 protocol layer, registry layer, cluster layer, config 等等)。我們的目標是:你可以對這些分層介面進行新的實現,並通過呼叫 extension 模組的 “ extension.SetXXX ” 方法來覆蓋 dubbo-go [同 go-for-apache-dubbo ] 的預設實現,以完成自己的特殊需求而無需修改原始碼;

專案已經合併進 dubbo 社群,詳情請檢視最新專案地址: https://github.com/dubbo/go-for-apache-dubbo

3 程式碼示例

  1. 在 dubbogo-examples 的示例user-info下面新增了 client & server & java-client & java-server 四個示例,完整演示了上面 v0.1.2 所示的三個 featrue;
  2. 在 dubbogo-examples 的示例user-info下面新增了 client & java-server 兩個示例,完整演示了上面 v0.2.0 所示的 featrue;
  3. 最新 v2.6.5.0 的 example 請檢視:https://github.com/dubbo/go-for-apache-dubbo/tree/master/examples 配合程式碼重構做了一個比較大的變更。
更多原創文章乾貨分享,請關注公眾號
  • 相容dubbo的微服務框架dubbogo;dubbo的完整go語言實現
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章