全部产品
Search
文档中心

Microservices Engine:Daftarkan aplikasi layanan mikro Dubbo ke instans MSE Nacos

更新时间:Mar 12, 2026

Microservices Engine (MSE) menyediakan registri layanan terkelola berbasis Nacos, ZooKeeper, atau Eureka. Panduan ini memandu Anda mendaftarkan penyedia (provider) dan konsumen (consumer) Dubbo ke instans MSE Nacos agar konsumen dapat menemukan dan memanggil penyedia tersebut.

Cara kerja

  1. Penyedia Dubbo dimulai dan mendaftarkan antarmuka layanannya ke instans Nacos pada MSE.

  2. Konsumen Dubbo berlangganan ke instans Nacos yang sama untuk menemukan penyedia yang tersedia.

  3. Konsumen memanggil penyedia melalui protokol RPC Dubbo menggunakan antarmuka layanan tersebut.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Menginstal Maven dan mengonfigurasikannya dalam variabel lingkungan Anda.

  • Memiliki instans engine MSE Nacos. Untuk detailnya, lihat Buat engine Nacos.

  • Memiliki namespace di instans Nacos. Untuk detailnya, lihat Buat namespace.

Panduan ini menggunakan namespace Public bawaan.

Siapkan penyedia

Buat penyedia Dubbo yang mengekspos antarmuka layanan dan mendaftarkannya ke instans MSE Nacos.

Langkah 1: Buat proyek Maven dan tambahkan dependensi

  1. Buat proyek Maven di IDE Anda (IntelliJ IDEA, Eclipse, atau yang serupa).

  2. Tambahkan dependensi dubbo dan nacos-client ke file 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>

Langkah 2: Definisikan dan implementasikan antarmuka layanan

Layanan Dubbo diekspos sebagai antarmuka Java. Definisikan antarmuka terlebih dahulu, lalu berikan implementasinya.

  1. Buat package bernama com.alibaba.mse di direktori src/main/java.

  2. Di package com.alibaba.mse, buat antarmuka IHelloService dengan metode sayHello:

        package com.alibaba.mse;
    
        public interface IHelloService {
           String sayHello(String str);
        }
  3. Buat kelas IHelloServiceImpl di package yang sama untuk mengimplementasikan antarmuka tersebut:

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

Langkah 3: Konfigurasikan layanan Dubbo

  1. Buat file provider.xml di direktori src/main/resources.

  2. Tambahkan deklarasi namespace Spring dan 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. Ekspos antarmuka sebagai layanan Dubbo dan arahkan registri ke instans MSE Nacos Anda. Ganti mse.XX.nacos.mse.aliyuncs.com dengan titik akhir aktual instans MSE Nacos Anda. Temukan titik akhir ini di kolom Access Method pada halaman daftar instans di Konsol MSE.

    Catatan

    Untuk menggunakan titik akhir publik, konfigurasikan daftar putih kosong terlebih dahulu. Untuk detailnya, lihat Configure a public IP address whitelist.

    Catatan

    Jika registrasi layanan Anda adalah instans MSE ZooKeeper, ganti alamat registri tersebut sesuai kebutuhan. Untuk detailnya, lihat Usage notes.

        <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"/>
    
        <!-- Ganti mse.XX.nacos.mse.aliyuncs.com dengan titik akhir instans Nacos Anda -->
        <dubbo:registry address="nacos://mse.XX.nacos.mse.aliyuncs.com:8848" />

Langkah 4: Mulai penyedia

  1. Buat kelas Provider di package com.alibaba.mse. Kelas ini memuat konteks Spring dan menjalankan layanan 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. Jalankan metode main dari kelas Provider untuk memulai layanan.

Verifikasi pendaftaran penyedia

  1. Masuk ke Konsol MSE.

  2. Di panel navigasi sebelah kiri, pilih Microservices Registry > Instances, lalu klik instans MSE yang dituju.

  3. Konfigurasikan daftar putih untuk instans tersebut. Jika tidak ada alamat IP atau Blok CIDR yang ditambahkan ke daftar putih, semua alamat IP diizinkan mengakses instans tersebut.

  4. Di panel navigasi sebelah kiri halaman detail instans, pilih Service Management > Services. Jika layanan penyedia muncul dalam daftar, pendaftaran berhasil.

Siapkan konsumen

Buat aplikasi konsumen Spring Boot yang berlangganan ke layanan Dubbo melalui instans MSE Nacos yang sama.

Langkah 1: Buat proyek Maven dan tambahkan dependensi

  1. Buat proyek Maven bernama spring-boot-dubbo-consumer di IDE Anda.

  2. Tambahkan dependensi dubbo dan nacos-client ke file 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>

Langkah 2: Definisikan antarmuka layanan

  1. Buat package bernama com.alibaba.mse di direktori src/main/java.

  2. Buat antarmuka IHelloService yang sama seperti yang digunakan oleh penyedia:

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

Langkah 3: Buat controller untuk memanggil penyedia

  1. Buat kelas DemoConsumerController di package com.alibaba.mse. Gunakan anotasi @Reference untuk menginjeksi layanan Dubbo remote:

    Catatan

    Anotasi @Reference adalah 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);
            }
        }

Langkah 4: Konfigurasikan alamat registri

Tambahkan properti berikut ke file application.properties:

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

Ganti mse.XX.nacos.mse.aliyuncs.com dengan titik akhir instans MSE Nacos Anda.

Catatan

Nilai dubbo.registry.address harus diawali dengan nacos://, diikuti oleh titik akhir dan port instans MSE Nacos.

Langkah 5: Mulai konsumen

  1. Buat kelas entri Spring Boot SpringBootDubboConsumerApplication dan jalankan aplikasi:

        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);
            }
        }

Verifikasi pendaftaran konsumen

  1. Masuk ke Konsol MSE.

  2. Di panel navigasi sebelah kiri, pilih Microservices Registry > Instances, lalu klik instans MSE yang dituju.

  3. Konfigurasikan daftar putih untuk instans tersebut. Jika tidak ada alamat IP atau Blok CIDR yang ditambahkan ke daftar putih, semua alamat IP diizinkan mengakses instans tersebut.

  4. Di panel navigasi sebelah kiri halaman detail instans, pilih Service Management > Services. Jika layanan konsumen muncul dalam daftar, pendaftaran berhasil.

Verifikasi pemanggilan layanan end-to-end

Dengan penyedia dan konsumen berjalan, uji apakah konsumen dapat memanggil penyedia.

Jalankan perintah berikut:

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

Output yang diharapkan:

Hello, mse

Tanggapan ini mengonfirmasi bahwa konsumen berhasil menemukan dan memanggil penyedia melalui registri layanan MSE Nacos.

Referensi