全部产品
Search
文档中心

Microservices Engine:Membuat registrasi layanan pada MSE untuk aplikasi mikro Dubbo

更新时间:Jul 06, 2025

Topik ini menjelaskan cara membuat registrasi layanan di Microservices Engine (MSE) untuk aplikasi mikro Dubbo. Aplikasi mikro Dubbo berfungsi sebagai penyedia dan konsumen. Registrasi layanan menggunakan mesin ZooKeeper, Eureka, atau Nacos, mendukung pendaftaran dan penemuan layanan aplikasi, serta memungkinkan konsumen memanggil penyedia.

Prasyarat

Sebelum membuat registrasi layanan, pastikan langkah-langkah berikut telah dilakukan:

  • Maven telah diunduh dan variabel lingkungan telah dikonfigurasi.

  • Mesin Nacos telah dibuat. Untuk informasi lebih lanjut, lihat Buat Mesin Nacos.

  • Namespace telah dibuat. Untuk informasi lebih lanjut, lihat Buat Namespace. Dalam topik ini, namespace default Public digunakan.

Buat penyedia

Buat proyek aplikasi penyedia di lingkungan lokal, tambahkan dependensi, konfigurasikan pendaftaran dan penemuan layanan, serta tentukan Nacos sebagai registrasi layanan.

  1. Buat proyek Maven dan tambahkan dependensi.

    1. Buat proyek Maven di IDE seperti IntelliJ IDEA atau Eclipse.

    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>            
  2. Kembangkan penyedia layanan Dubbo.

    Semua layanan Dubbo diekspos sebagai antarmuka.

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

    2. Buat antarmuka bernama IHelloService yang berisi metode SayHello di paket com.alibaba.mse.

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

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

    1. Buat file bernama provider.xml di direktori src/main/resources dan buka file tersebut.

    2. Di file provider.xml, tambahkan ruang nama XML (xmlns) dan instance skema XML (xmlns:xsi) untuk kerangka kerja Spring, serta tambahkan ruang nama XML (xmlns:dubbo) dan instance skema XML (xsi:schemaLocation) untuk kerangka kerja Dubbo.

      <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. Di file provider.xml, ekspos antarmuka dan kelas sebagai layanan Dubbo.

      <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"/>                                
    4. Di file provider.xml, tentukan server Nacos lokal sebagai registrasi layanan.

      <dubbo:registry address="nacos://mse.XX.nacos.mse.aliyuncs.com:8848" />                                
      Catatan

      Jika Anda ingin menggunakan titik akhir publik dari instance Nacos, konfigurasikan daftar putih kosong. Untuk informasi lebih lanjut, lihat Konfigurasikan Daftar Putih Alamat IP Publik.

      Temukan instance Nacos dalam daftar instance, dan lihat titik akhir publik dari instance Nacos di kolom Access Method. Titik akhir publik berada dalam format mse.XX.nacos.mse.aliyuncs.com.

      Catatan

      Jika registri layanan Anda adalah instance MSE Zookeeper, Anda harus mengganti kode registri layanan pada langkah ini dengan kode instance ZooKeeper. Untuk informasi lebih lanjut, lihat Catatan Penggunaan.

  4. Mulai layanan.

    1. Buat kelas bernama Provider di paket com.alibaba.mse dan muat konteks Spring ke fungsi utama kelas Provider berdasarkan kode berikut untuk mengekspos 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. Panggil fungsi utama kelas Provider untuk memulai layanan Dubbo.

  5. Verifikasi hasilnya.

    1. Masuk ke Konsol MSE.

    2. Di panel navigasi sisi kiri, pilih Microservices Registry > Instances. Di halaman Instances, klik instance MSE yang Anda buat.

    3. Konfigurasikan daftar putih untuk instance MSE.

      Jika Anda tidak menambahkan alamat IP atau blok CIDR ke daftar putih, semua alamat IP diizinkan untuk mengakses instance MSE.

    4. Di panel navigasi sisi kiri halaman detail instance, pilih Service Management > Services. Jika layanan penyedia ada dalam daftar layanan, layanan tersebut telah didaftarkan dengan instance MSE.

Buat konsumen

Buat proyek aplikasi konsumen Spring Boot di lingkungan lokal, tambahkan dependensi, dan tambahkan konfigurasi yang digunakan untuk berlangganan layanan Dubbo.

Buat proyek Maven bernama spring-boot-dubbo-consumer dan tambahkan dependensi.

  1. Buat proyek Maven di IDE seperti IntelliJ IDEA atau Eclipse.

  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>
  3. Buat konsumen Dubbo.

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

    2. Buat antarmuka bernama IHelloService yang berisi metode SayHello di paket com.alibaba.mse.

      package com.alibaba.mse;
      
      public interface IHelloService {
          String sayHello(String str);
      }
      
  4. Panggil layanan Dubbo jarak jauh di kontroler menggunakan kode berikut.

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

    Anotasi Reference adalah com.alibaba.dubbo.config.annotation.Reference.

  5. Tambahkan konfigurasi berikut ke file konfigurasi application.properties.

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

    Nilai dari dubbo.registry.address harus dimulai dengan nacos://. Alamat IP dan nomor port yang mengikuti nacos:// mewakili titik akhir server MSE Nacos.

  6. Buat dan mulai kelas entri 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. Verifikasi hasilnya.

    1. Masuk ke Konsol MSE.

    2. Di panel navigasi sisi kiri, pilih Microservices Registry > Instances. Di halaman Instances, klik instance MSE yang Anda buat.

    3. Konfigurasikan daftar putih untuk instance MSE.

      Jika Anda tidak menambahkan alamat IP atau blok CIDR ke daftar putih, semua alamat IP diizinkan untuk mengakses instance MSE.

    4. Di panel navigasi sisi kiri halaman detail instance, pilih Service Management > Services. Jika layanan konsumen ada dalam daftar layanan, pendaftaran layanan berhasil.

Verifikasi hasil

Jalankan perintah curl http://localhost:8080/sayHello/mse. Jika Hello, mse dikembalikan, konsumen berhasil memanggil penyedia.

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

`Hello, mse`            

Referensi