dubbo - Apache Dubbo は、高性能の Java ベースのオープンソース RPC フレームワークです。

(Apache Dubbo is a high-performance, java based, open source RPC framework.)

Created at: 2012-06-19 15:56:02
Language: Java
License: Apache-2.0

アパッチダボプロジェクト

ビルドステータス コデコフ メイヴン ライセンス 問題解決にかかる平均時間 未解決の問題の割合 さえずる ツイッターフォロー ギッター

Apache Dubbo は、高性能の Java ベースのオープンソース RPC フレームワークです。クイックスタートガイドとドキュメントについては公式サイトにアクセスし、ニュース、FAQ、リリースノートについてはwikiにアクセスしてください。

現在、Dubboのユーザー情報を収集し、Dubboをさらに改善しています。問題#9436:募集:ダボを使用している人、ありがとう:)

建築

建築

顔立ち

  • トランスペアレント インターフェイス ベースの RPC
  • インテリジェントな負荷分散
  • 自動サービス登録と検出
  • 高い拡張性
  • ランタイムトラフィックルーティング
  • 視覚化されたサービスガバナンス

はじめ

次のコードスニペットは、Dubboサンプルからのものです。続行する前に、サンプルプロジェクトを複製し、サブディレクトリにステップインできます。

dubbo-samples-api

git clone https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-api

ディレクトリの下に README ファイルがあります。以下の手順に従って、そのディレクトリ内のサンプルを参照することをお勧めします。

dubbo-samples-api

Maven の依存関係

<properties>
    <dubbo.version>3.0.10</dubbo.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo</artifactId>
        <version>${dubbo.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-dependencies-zookeeper</artifactId>
        <version>${dubbo.version}</version>
        <type>pom</type>
    </dependency>
</dependencies>

サービス・インターフェースの定義

package org.apache.dubbo.samples.api;

public interface GreetingsService {
    String sayHi(String name);
}

GitHub の api/GreetingsService.java を参照してください。

プロバイダーのサービス インターフェイスを実装する

package org.apache.dubbo.samples.provider;

import org.apache.dubbo.samples.api.GreetingsService;

public class GreetingsServiceImpl implements GreetingsService {
    @Override
    public String sayHi(String name) {
        return "hi, " + name;
    }
}

GitHub の provider/GreetingsServiceImpl.java を参照してください。

サービス・プロバイダーの開始

package org.apache.dubbo.samples.provider;


import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.samples.api.GreetingsService;

import java.util.concurrent.CountDownLatch;

public class Application {
    private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");

    public static void main(String[] args) throws Exception {
        ServiceConfig<GreetingsService> service = new ServiceConfig<>();
        service.setApplication(new ApplicationConfig("first-dubbo-provider"));
        service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
        service.setInterface(GreetingsService.class);
        service.setRef(new GreetingsServiceImpl());
        service.export();

        System.out.println("dubbo service started");
        new CountDownLatch(1).await();
    }
}

GitHub の「プロバイダー/アプリケーション.java」を参照してください。

プロバイダーをビルドして実行する

mvn clean package
mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java

コンシューマーでリモート サービスを呼び出す

package org.apache.dubbo.samples.client;


import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.samples.api.GreetingsService;

public class Application {
    private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");

    public static void main(String[] args) {
        ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
        reference.setApplication(new ApplicationConfig("first-dubbo-consumer"));
        reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
        reference.setInterface(GreetingsService.class);
        GreetingsService service = reference.get();
        String message = service.sayHi("dubbo");
        System.out.println(message);
    }
}

GitHub の「コンシューマー/アプリケーション.java」を参照してください。

コンシューマーをビルドして実行する

mvn clean package
mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java

消費者は画面に印刷します。

hi, dubbo

次のステップ

建物

最先端の機能を試してみたい場合は、次のコマンドでビルドできます。(マスターブランチを構築するにはJava 1.8が必要です)

  mvn clean install

接触

貢献

パッチの提出と投稿ワークフローの詳細については、貢献を参照してください。

どうすれば貢献できますか?

  • 良い最初の問題」または「ヘルプが必要」とマークされたタグに関する問題をご覧ください。
  • メーリングリスト、購読ガイドのディスカッションに参加してください。
  • 問題に関する質問に答えます。
  • 問題に関する報告を受けたバグを修正し、プルリクエストを送信してください。
  • 既存のプル要求を確認します。
  • ウェブサイトを改善する、通常、私たちは必要です
    • ブログ投稿
    • ドキュメントの翻訳
    • エンタープライズシステムへのDubboの統合に関するユースケース。
  • ダボ管理/ダボモニターを改善します。
  • エコシステムにリストされているプロジェクトに貢献します。
  • 上記に明示的に列挙されていない他の形式の貢献。
  • 貢献したい場合は、dev@dubbo.apache.org にメールを送信してお知らせください。

バグの報告

テンプレートに従って問題を報告してください。

セキュリティ脆弱性の報告

セキュリティの脆弱性を非公開で報告してください。

ダボのエコシステム

言語

ライセンス

Apache Dubboソフトウェアは、Apacheライセンスバージョン2.0の下でライセンスされています。詳細については、LICENSE ファイルを参照してください。