Dubboの概要
Dubbo(ダボー)はJavaベースのオープンソースRPC(リモートプロシージャコール)フレームワークです。
Dubboは、2008年にAlibaba社の社内システムとして開発が始まり、2011年にオープンソース化され、2018年2月に Apache Incubator に入ることによりApache Dubbo となり、2019年5月には Apache Software Foundation のTLP(トップレベルプロジェクト)に指定されました。
Dubbo は、Alibaba Group をはじめ China Life、China Telecom、Dangdang、Didi Chuxing、Haier、Industrial and Commercial Bank of China などの150以上の企業で使用されています。
Dubboの主な特徴
Dubboは以下のような特徴を持っています。
RPCベースの透過的なインタフェース | RPCベースの透過的なインタフェースをユーザーに提供します。 |
インテリジェンスロードバランシング | 複数のロードバランシング戦略が用意されており、スループットの向上が望めます。 |
オートマチックサービスレジストレーションとディスカバリー | 複数のサービスレジストリをサポートしており、サービスを容易に検知できます。 |
高度な拡張性 | マイクロカーネルとプラグインの設計により、サードパーティの実装で簡単に拡張できます。 |
ランタイムトラフィックルーティング | 実行時にさまざまなルールに従ってトラフィックをルーティングできるため、ブルーグリーンデプロイメント、データーセンター対応ルーティングなどをサポートできます。 |
サービスガバナンスを視覚化 | クエリサービスメタデータ、ヘルスステータス、統計情報などのサービスガバナンスとメンテナンスのための豊富なツールを提供します。 |
Dubboのアーキテクチャ
Dubboは以下のようなアーキテクチャになっています。

Dubbo Architecture (
https://github.com/distributed-and-microservice/dubbo)より
各ノードの役割
ノード | 役割 |
---|---|
Provider | リモートサービスを公開します。 |
Consumer | リモートサービスを呼び出します。 |
Registry | サービスの検出と構成を担当します。 |
Monitor | サービスの呼び出し数と消費時間をカウントします。 |
Container | サービスの有効期限を管理します。 |
0. Container はロード、サービスプロバイダーの起動を担当します。
1. Provider はサービス開始時に Register にサービスを登録します。
2. Consumer は開始時に Register から必要なサービスを取得します。
3. Register は Provider リストを Consumer に渡します。リストが変更された場合は変更データを Consumer にプッシュします。
4. Consumer はソフトロードバランシングアルゴリズムに基つき Provider を選択し、呼び出しを実行します。失敗した場合は別の Provider を選択します。
5. Consumer と Provider は、サービス呼び出し回数とメモリの消費時間をカウントし、統計を毎分モニターに送信します。
Dubbo と類似のソフトウェア
Dubbo のような RPC フレームワークは他に gRPC、Thriftなどがあります。
Dubboの動作環境
Dubbo 2.7.x | Java 1.8 |
Dubbo 2.6.x | Java 1.6 |
Dubbo 2.5.x | Java 1.6 ※2019年6月にサポート終了 |
Dubboのライセンス
Dubbo は、Apache2.0ライセンスです。
Apache License(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。
Dubboのサポート
現在、OpenStandiaでは、Dubboのサポートを行っておりません。
Dubboの参考情報
Dubboの公式サイト
https://dubbo.apache.org/
Dubboのソースコード
https://github.com/apache/dubbo