トップ OSS紹介 Dubbo

Dubbo

NRIのOpenStandiaが提供するDubbo最新情報

バージョンアップ情報

Dubbo情報

Dubboとは

Dubbo(ダボー)はJavaベースのオープンソースRPC(リモートプロシージャコール)フレームワークです。

Dubboは、2008年にAlibaba社の社内システムとして開発が始まり、2011年にオープンソース化され、2018年2月に Apache Incubator に入ることによりApache Dubbo となり、2019年5月には Apache Software Foundation のTLP(トップレベルプロジェクト)に指定され、2021年6月にはクラウドネイティブマイクロサービスに対応したApache Dubbo 3 がリリースされています。

Dubbo は、Alibaba Group をはじめ China Life、China Telecom、Dangdang、Didi Chuxing、Haier、Industrial and Commercial Bank of China などの150以上の企業で使用されています。

主な特徴

Dubboは以下のような特徴を持っています。

RPCベースの透過的なインタフェース

RPCベースの透過的なインタフェースをユーザーに提供します。

インテリジェンスロードバランシング

複数のロードバランシング戦略が用意されており、スループットの向上が望めます。

オートマチックサービスレジストレーションとディスカバリー

複数のサービスレジストリをサポートしており、サービスを容易に検知できます。

高度な拡張性

マイクロカーネルとプラグインの設計により、サードパーティの実装で簡単に拡張できます。

ランタイムトラフィックルーティング

実行時にさまざまなルールに従ってトラフィックをルーティングできるため、ブルーグリーンデプロイメント、データーセンター対応ルーティングなどをサポートできます。

サービスガバナンスを視覚化

クエリサービスメタデータ、ヘルスステータス、統計情報などのサービスガバナンスとメンテナンスのための豊富なツールを提供します。

Dubboのアーキテクチャ

Dubboは以下のようなアーキテクチャになっています。

<a href="https://dubbo.apache.org/en/docs/v2.7/user/preface/architecture/" class="c-link--innerTxt">Dubbo</a> Architectureより
Dubbo Architectureより

各ノードの役割

ノード

役割

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 3 の新機能

新しいサービス検出メカニズム

  • パフォーマンスの向上
  • Spring Cloud、Kubernetes、gRPCなど、他のマイクロサービスとの接続をサポート

Triple:HTTP/2に基づく新しいプロトコル

  • gRPCとの互換性
  • 多言語対応:Protobufを使用したデータエンコードが可能
  • リクエストストリーム、レスポンスストリーム、双方向ストリームをサポート

クラウドネイティブ

  • Kubernetes、VM、およびContainerでのDubbo3.xアプリケーションのデプロイ

類似プロダクト

Dubbo のような RPC フレームワークは他に gRPC、Thriftなどがあります。

動作環境

Dubbo 3.2.x

Java 1.8以降

Dubbo 3.1.x

Java 1.8以降

Dubbo 3.0.x

Java 1.8

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(アパッチ・ライセンス)のコードが使用されていることの明記を条件に、ソースコードの自由な改変と公開が認められています。

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • Spring Framework
    サポート対象

    Spring Framework

    スプリングフレームワーク。Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。

  • Istio
    サポート対象

    Istio

    イスティオ。マイクロサービスをセキュアにマネージメントするためのマイクロサービス管理フレームワークです。

  • gRPC
    サポート対象

    gRPC

    ジーアールピーシー。Googleが2015年に開発したオープンソースのRPCです。

オープンソースに関する様々な課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。