すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:MSE Nacos インスタンスへの Dubbo マイクロサービスアプリケーションの登録

最終更新日:Mar 12, 2026

Microservices Engine (MSE) は、Nacos、ZooKeeper、または Eureka をベースとしたマネージドサービスレジストリを提供します。本ガイドでは、Dubbo プロバイダーおよびコンシューマーを MSE Nacos インスタンスに登録し、コンシューマーがプロバイダーを検出して呼び出せるようにする手順を説明します。

仕組み

  1. Dubbo プロバイダーが起動し、そのサービスインターフェイスを MSE 上の Nacos インスタンスに登録します。

  2. Dubbo コンシューマーが同じ Nacos インスタンスをサブスクライブして、利用可能なプロバイダーを検出します。

  3. コンシューマーは、サービスインターフェイスを使用して Dubbo RPC プロトコル経由でプロバイダーを呼び出します。

前提条件

作業を開始する前に、以下の要件を満たしていることを確認してください。

  • ご利用の環境変数に Maven がインストールされ、設定済みであること

  • MSE Nacos エンジンインスタンスが作成済みであること。詳細については、「Nacos エンジンの作成」をご参照ください。

  • Nacos インスタンス内に名前空間が作成済みであること。詳細については、「名前空間の作成」をご参照ください。

本ガイドでは、デフォルトの Public 名前空間を使用します。

プロバイダーのセットアップ

MSE Nacos インスタンスにサービスインターフェイスを公開し、登録する Dubbo プロバイダーを作成します。

ステップ 1:Maven プロジェクトの作成と依存関係の追加

  1. ご利用の IDE(IntelliJ IDEA、Eclipse など)で Maven プロジェクトを作成します。

  2. dubbo および nacos-client の依存関係を pom.xml ファイルに追加します。

        <dependencies>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.7.9</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
                <version>1.4.2</version>
            </dependency>
        </dependencies>

ステップ 2:サービスインターフェイスの定義と実装

Dubbo サービスは Java インターフェイスとして公開されます。まずインターフェイスを定義し、その後に実装を提供します。

  1. src/main/java ディレクトリ内に com.alibaba.mse というパッケージを作成します。

  2. com.alibaba.mse パッケージ内に、sayHello メソッドを持つ IHelloService インターフェイスを作成します。

        package com.alibaba.mse;
    
        public interface IHelloService {
           String sayHello(String str);
        }
  3. 同じパッケージ内にインターフェイスを実装する IHelloServiceImpl クラスを作成します。

        package com.alibaba.mse;
    
        public class IHelloServiceImpl implements IHelloService {
        public String sayHello(String str) {
            return "hello " + str;
            }
        }

ステップ 3:Dubbo サービスの設定

  1. src/main/resources ディレクトリ内に provider.xml ファイルを作成します。

  2. Spring および Dubbo の XML 名前空間宣言を追加します。

        <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
        xmlns="http://www.springframework.org/schema/beans"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  3. インターフェイスを Dubbo サービスとして公開し、レジストリをご利用の MSE Nacos インスタンスに指定します。ここで、mse.XX.nacos.mse.aliyuncs.com は、ご利用の MSE Nacos インスタンスの実際のエンドポイントに置き換えてください。MSE コンソール のインスタンス一覧ページにある アクセス方法 列からこのエンドポイントを確認できます。

    説明

    パブリックエンドポイントを使用する場合は、事前に空のホワイトリストを設定してください。詳細については、「パブリック IP アドレスホワイトリストの設定」をご参照ください。

    説明

    ご利用のサービスレジストリが MSE ZooKeeper インスタンスの場合、レジストリアドレスを適切に置き換えてください。詳細については、「注意事項」をご参照ください。

        <dubbo:application name="demo-provider"/>
    
        <dubbo:protocol name="dubbo" port="28082"/>
    
        <dubbo:service interface="com.alibaba.mse.IHelloService" ref="helloService"/>
    
        <bean id="helloService" class="com.alibaba.mse.IHelloServiceImpl"/>
    
        <!-- mse.XX.nacos.mse.aliyuncs.com をご利用の Nacos インスタンスエンドポイントに置き換えてください -->
        <dubbo:registry address="nacos://mse.XX.nacos.mse.aliyuncs.com:8848" />

ステップ 4:プロバイダーの起動

  1. com.alibaba.mse パッケージ内に Provider クラスを作成します。このクラスは Spring コンテキストをロードし、Dubbo サービスを起動します。

        package com.alibaba.mse;
    
        import org.springframework.context.support.ClassPathXmlApplicationContext;
    
        public class Provider {
            public static void main(String[] args) throws Exception {
                ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"provider.xml"});
                context.start();
                System.in.read();
            }
        }
  2. Provider クラスの main メソッドを実行して、サービスを起動します。

プロバイダー登録の確認

  1. MSE コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、Microservices Registry > Instances を選択し、対象の MSE インスタンスをクリックします。

  3. インスタンスのホワイトリストを設定します。ホワイトリストに IP アドレスまたは CIDR ブロックが追加されていない場合、すべての IP アドレスからのアクセスが許可されます。

  4. インスタンス詳細ページの左側ナビゲーションウィンドウで、Service Management > Services を選択します。プロバイダーサービスが一覧に表示されていれば、登録は成功しています。

コンシューマーのセットアップ

同じ MSE Nacos インスタンスを通じて Dubbo サービスをサブスクライブする Spring Boot コンシューマーアプリケーションを作成します。

ステップ 1:Maven プロジェクトの作成と依存関係の追加

  1. ご利用の IDE で spring-boot-dubbo-consumer という名前の Maven プロジェクトを作成します。

  2. pom.xml ファイルに dubbo および nacos-client の依存関係を追加します。

        <dependencies>
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.7.9</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
                <version>1.4.2</version>
            </dependency>
        </dependencies>

ステップ 2:サービスインターフェイスの定義

  1. src/main/java ディレクトリ内に com.alibaba.mse というパッケージを作成します。

  2. プロバイダーで使用したのと同じ IHelloService インターフェイスを作成します。

        package com.alibaba.mse;
    
        public interface IHelloService {
            String sayHello(String str);
        }

ステップ 3:プロバイダーを呼び出すコントローラーの作成

  1. com.alibaba.mse パッケージ内に DemoConsumerController クラスを作成します。@Reference アノテーションを使用して、リモート Dubbo サービスをインジェクトします。

    説明

    @Reference アノテーションは com.alibaba.dubbo.config.annotation.Reference です。

        package com.alibaba.mse;
    
        import com.alibaba.dubbo.config.annotation.Reference;
        import org.springframework.web.bind.annotation.PathVariable;
        import org.springframework.web.bind.annotation.RequestMapping;
        import org.springframework.web.bind.annotation.RestController;
    
        @RestController
        public class DemoConsumerController {
            @Reference
            private IHelloService demoService;
    
            @RequestMapping("/sayHello/{name}")
            public String sayHello(@PathVariable String name) {
                return demoService.sayHello(name);
            }
        }

ステップ 4:レジストリアドレスの設定

application.properties ファイルに以下のプロパティを追加します。

server.port=8080
dubbo.application.name=dubbo-consumer-demo
dubbo.registry.address=nacos://mse.XX.nacos.mse.aliyuncs.com:8848

mse.XX.nacos.mse.aliyuncs.com は、ご利用の MSE Nacos インスタンスエンドポイントに置き換えてください。

説明

dubbo.registry.address の値は、nacos:// で始まり、その後に MSE Nacos インスタンスのエンドポイントとポートを指定する必要があります。

ステップ 5:コンシューマーの起動

  1. Spring Boot エントリクラス SpringBootDubboConsumerApplication を作成し、アプリケーションを起動します。

        package com.alibaba.mse;
    
        import org.springframework.boot.SpringApplication;
        import org.springframework.boot.autoconfigure.SpringBootApplication;
    
        @SpringBootApplication
        public class SpringBootDubboConsumerApplication {
    
            public static void main(String[] args) {
                SpringApplication.run(SpringBootDubboConsumerApplication.class, args);
            }
        }

コンシューマー登録の確認

  1. MSE コンソール にログインします。

  2. 左側のナビゲーションウィンドウで、Microservices Registry > Instances を選択し、対象の MSE インスタンスをクリックします。

  3. インスタンスのホワイトリストを設定します。ホワイトリストに IP アドレスまたは CIDR ブロックが追加されていない場合、すべての IP アドレスからのアクセスが許可されます。

  4. インスタンス詳細ページの左側ナビゲーションウィンドウで、Service Management > Services を選択します。コンシューマーサービスが一覧に表示されていれば、登録は成功しています。

エンドツーエンドのサービス呼び出しの確認

プロバイダーおよびコンシューマーの両方が実行中の状態で、コンシューマーがプロバイダーを正常に呼び出せるかテストします。

以下のコマンドを実行します。

curl http://localhost:8080/sayHello/mse

期待される出力:

Hello, mse

この応答により、コンシューマーが MSE Nacos サービスレジストリ経由でプロバイダーを検出し、呼び出せていることが確認できます。

参考