全部产品
Search
文档中心

Serverless App Engine:Ubah pendaftaran layanan dan penemuan aplikasi ke Nacos

更新时间:Dec 15, 2025

Pendaftaran layanan dan penemuan aplikasi Spring Cloud sebelumnya diimplementasikan menggunakan komponen seperti Eureka, Consul, dan ZooKeeper. Topik ini menjelaskan cara mengimplementasikan pendaftaran layanan dan penemuan menggunakan Nacos, serta cara men-hosting Nacos ke Serverless App Engine (SAE).

Manfaat

Pendaftaran layanan dan penemuan aplikasi Spring Cloud diimplementasikan menggunakan komponen seperti Eureka, Consul, ZooKeeper, dan Redis. Jika Anda men-hosting aplikasi Spring Cloud ke SAE, Anda hanya perlu mengganti registri layanan dan pusat konfigurasi asli dengan Alibaba Nacos Discovery untuk melakukan pendaftaran layanan dan penemuan tanpa memodifikasi kode bisnis.

Registri layanan SAE menyediakan semua fitur Spring Cloud Alibaba Nacos Discovery dan membebaskan Anda dari ketergantungan pada beberapa komponen seperti Eureka, Consul, ZooKeeper, dan Redis.

Setelah Anda men-hosting aplikasi Spring Cloud ke SAE, Anda dapat fokus membangun logika aplikasi Spring Cloud tanpa khawatir tentang pembuatan dan pemeliharaan registri dan pusat konfigurasi. Fitur yang disediakan oleh SAE, termasuk penskalaan otomatis, mulai dan hentikan aplikasi secara cepat dalam jumlah besar, dan pemantauan aplikasi, dapat membantu mengurangi biaya pengembangan dan operasi Anda secara signifikan.

Jika Anda memiliki sejumlah besar aplikasi mikro layanan, Anda dapat menggunakan salah satu dari jenis registri layanan berikut yang terdaftar dalam urutan rekomendasi:

  • Registri Layanan Komersial (MSE)

    ZF182Dl2pw

    Untuk informasi tentang cara membangun dan menerapkan registri MSE Nacos, lihat Gunakan Registri MSE Nacos.

  • Registri Layanan Mandiri

    7D79jXUfBL

    Saat Anda membangun dan menerapkan registri Nacos mandiri, perhatikan item berikut:

    • Pastikan jaringan SAE dan jaringan registri Nacos mandiri saling terhubung.

    • Untuk mencegah perintah menjadi tidak valid, pastikan Anda tidak menggunakan parameter -D dan -XX secara bersamaan. Contoh kode:

      • Kode Asli:

        java -Dalicloud.deployment.mode=EDAS_MANAGED -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
      • Kode yang Dimodifikasi:

        java -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 -Dio.netty.transport.noNative=true -XX:+UseG1GC -Dspring.profiles.active=yace -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar /home/admin/app/xx-server.jar
    • Jika Anda menggunakan registri layanan mandiri, kami sarankan Anda menggunakan gambar atau paket JAR untuk menerapkan aplikasi, dan mengonfigurasi parameter startup berikut: -Dnacos.use.endpoint.parsing.rule=false dan -Dnacos.use.cloud.namespace.parsing=false.

      Penting

      Untuk menggunakan registri non-SAE bawaan, Anda harus menambahkan parameter startup yang diperlukan sebelum -jar.

      • Jika Anda menggunakan gambar untuk menerapkan aplikasi, tambahkan -Dnacos.use.endpoint.parsing.rule=false dan -Dnacos.use.cloud.namespace.parsing=false ke perintah startup file gambar. Untuk informasi tentang cara membuat gambar Docker, lihat Contoh Pembuatan Gambar.

        Contoh kode adalah sebagai berikut:

        RUN echo 'eval exec java -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false -jar $CATALINA_OPTS /home/admin/app/hello-edas-0.0.1-SNAPSHOT.jar'> /home/admin/start.sh && chmod +x /home/admin/start.sh
      • Jika Anda menggunakan paket JAR untuk menerapkan aplikasi, buka bagian Startup Command Settings di konsol SAE. Lalu, masukkan -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=false di bidang options Settings. Gambar berikut menunjukkan perintah startup yang dikonfigurasi untuk menerapkan aplikasi Java di lingkungan runtime Open JDK 8. Untuk informasi lebih lanjut, lihat Konfigurasikan Perintah Startup.sc_configure_a_startup_command_for_nacos

  • Registri Layanan Bawaan SAE

    x6JeUmPTQf

    SAE menyediakan kemampuan penentuan alamat otomatis Nacos Server untuk aplikasi mikro layanan Java. Anda dapat menggunakan fitur service registration and discovery dari SAE untuk mengonfigurasi registri layanan. Untuk informasi lebih lanjut, lihat Gunakan Registri Nacos Bawaan SAE.

Langkah 1: Dapatkan demo

eureka-service-provider dan eureka-service-consumer adalah paket aplikasi demo mikro layanan SAE. Eureka diintegrasikan ke dalam konsumen dan penyedia. Konsumen mengonsumsi layanan yang disediakan oleh penyedia.

Langkah 2: Ubah konfigurasi registri layanan penyedia

Untuk men-hosting penyedia cloud-native ke SAE, Anda harus mengubah dependensi POM di penyedia dan menentukan alamat IP untuk Nacos Server.

Catatan

Anda harus menentukan alamat IP untuk Nacos Server dalam skenario berikut:

  • Anda men-hosting aplikasi Anda ke SAE setelah mereka lulus tes lokal.

  • Registri layanan SAE adalah registri Nacos mandiri.

  1. Tambahkan dependensi berikut ke file pom.xml.

    Buka file pom.xml penyedia. Ganti spring-cloud-starter-netflix-eureka-client dengan spring-cloud-starter-alibaba-nacos-discovery dan konfigurasikan versi Nacos Server.

    Sebelum Penggantian:

    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>                            

    Setelah Penggantian:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Catatan
    • Spring Cloud Greenwich digunakan dalam contoh ini. Versi spring-cloud-starter-alibaba-nacos-discovery adalah 2.1.1.RELEASE.

    • Jika Anda menggunakan Spring Cloud Finchley, versi spring-cloud-starter-alibaba-nacos-discovery adalah 2.0.1.RELEASE.

    • Jika Anda menggunakan Spring Cloud Edgware, versi spring-cloud-starter-alibaba-nacos-discovery adalah 1.5.1.RELEASE. Layanan versi ini telah berakhir. Kami tidak merekomendasikan versi ini. Untuk informasi lebih lanjut, lihat Spring Cloud Edgware Release Notes.

  2. Tentukan alamat IP untuk Nacos Server.

    Buka file application.properties di src\main\resources dan tentukan alamat IP untuk Nacos Server.

    Sebelum Modifikasi:

    spring.application.name=service-provider
    server.port=18081
    eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/                            

    Setelah Modifikasi:

    spring.application.name=service-provider
    server.port=18081
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848                            

    127.0.0.1 adalah alamat IP Nacos Server. Jika Nacos Server diterapkan di server fisik lain, ubah alamat IP sesuai dengan itu. Jika Anda memiliki persyaratan lain, tambahkan konfigurasi yang diperlukan di file application.properties dengan merujuk ke Item Konfigurasi.

  3. Kueri Layanan Aplikasi.

    1. Jalankan fungsi main dari ProviderApplication di proyek nacos-service-provider untuk memulai penyedia.

    2. Masuk ke konsol Nacos Server yang diinstal di komputer Anda dengan mengunjungi 127.0.0.1:8848/nacos. Di panel navigasi sisi kiri, pilih Service management > Service list.

      Catatan

      Nama pengguna dan kata sandi default untuk masuk ke konsol Nacos Server adalah nacos.

      Jika service-provider ditampilkan di Service list, dan Anda dapat menanyakan detail service-provider, maka service-provider berhasil didaftarkan.

Langkah 3: Ubah konfigurasi registri layanan konsumen

Untuk men-hosting konsumen cloud-native ke SAE, Anda harus mengubah dependensi POM di konsumen dan menentukan alamat IP untuk Nacos Server.

Catatan

Anda harus menentukan alamat IP untuk Nacos Server dalam skenario berikut:

  • Anda men-hosting aplikasi Anda ke SAE setelah mereka lulus tes lokal.

  • Registri layanan SAE adalah registri Nacos mandiri.

  1. Tambahkan dependensi berikut ke file pom.xml.

    Buka file pom.xml penyedia. Ganti spring-cloud-starter-netflix-eureka-client dengan spring-cloud-starter-alibaba-nacos-discovery dan konfigurasikan versi Nacos Server.

    Sebelum Penggantian:

    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>                            

    Setelah Penggantian:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.1.1.RELEASE</version>
    </dependency>                           
    Catatan
    • Spring Cloud Greenwich digunakan dalam contoh ini. Versi spring-cloud-starter-alibaba-nacos-discovery adalah 2.1.1.RELEASE.

    • Jika Anda menggunakan Spring Cloud Finchley, versi spring-cloud-starter-alibaba-nacos-discovery adalah 2.0.1.RELEASE.

    • Jika Anda menggunakan Spring Cloud Edgware, versi spring-cloud-starter-alibaba-nacos-discovery adalah 1.5.1.RELEASE. Layanan versi ini telah berakhir. Kami tidak merekomendasikan versi ini. Untuk informasi lebih lanjut, lihat Spring Cloud Edgware Release Notes.

  2. Tentukan alamat IP untuk Nacos Server.

    Buka file application.properties di src\main\resources dan tentukan alamat IP untuk Nacos Server.

    Sebelum Modifikasi:

    spring.application.name=service-consumer
    server.port=18082
    eureka.client.serviceUrl.defaultZone=http://127.0.0.1:8761/eureka/                            

    Setelah Modifikasi:

    spring.application.name=service-consumer
    server.port=18082
    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848                            

    127.0.0.1 adalah alamat IP Nacos Server. Jika Nacos Server diterapkan di server fisik lain, ubah alamat IP sesuai dengan itu. Jika Anda memiliki persyaratan lain, tambahkan konfigurasi yang diperlukan di file application.properties dengan merujuk ke Item Konfigurasi.

  3. Kueri Layanan Aplikasi.

    1. Jalankan fungsi main dari ConsumerApplication di proyek nacos-service-consumer untuk memulai konsumen.

    2. Masuk ke konsol Nacos Server yang diinstal di komputer Anda dengan mengunjungi 127.0.0.1:8848/nacos. Di panel navigasi sisi kiri, pilih Service management > Service list.

      Catatan

      Nama pengguna dan kata sandi default untuk masuk ke konsol Nacos Server adalah nacos.

      Jika service-consumer ditampilkan di Service list, dan Anda dapat menanyakan detail service-consumer, maka service-consumer berhasil didaftarkan.

Langkah 4: Lihat hasil konsumen mengonsumsi layanan penyedia

Lihat hasil konsumen mengonsumsi layanan yang disediakan oleh penyedia di komputer Anda. Mulai layanan, dan jalankan IP+port/echo-rest/<Variabel Kustom> atau IP+port/echo-feign/<Variabel Kustom> untuk melihat hasilnya.

  • Untuk Linux, UNIX, atau macOS, jalankan curl http://127.0.0.1:18082/echo-rest/<Variabel Kustom> atau curl http://127.0.0.1:18082/echo-feign/<Variabel Kustom>.

  • Untuk Windows, masukkan http://127.0.0.1:18082/echo-rest/<Variabel Kustom> atau http://127.0.0.1:18082/echo-feign/<Variabel Kustom> di browser.

Berikut adalah contoh keberhasilan konsumsi layanan di sistem operasi Windows.

Verify the result

Langkah 5: Terapkan aplikasi ke SAE

Bagian ini memberikan contoh untuk menjelaskan cara mengompilasi program lokal menjadi paket JAR yang dapat dieksekusi. Anda juga dapat membuat gambar untuk aplikasi sebelum penyebaran.

  1. Di file pom.xml aplikasi, tambahkan konfigurasi berikut, lalu jalankan perintah mvn clean package untuk mengompilasi program lokal menjadi paket JAR yang dapat dieksekusi.

    <build>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                 <executions>
                     <execution>
                         <goals>
                             <goal>repackage</goal>                     </goals>
                     </execution>
                 </executions>
             </plugin>
         </plugins>
     </build>                        
  2. Terapkan paket aplikasi penyedia dan konsumen yang telah dikompilasi ke SAE. Untuk informasi lebih lanjut, lihat Terapkan Aplikasi Java Menggunakan Paket JAR.

    Penting
    • SAE tidak mengizinkan Anda membuat aplikasi kosong. Anda harus membuat aplikasi di konsol, lalu Anda dapat mendorong data ke dalam aplikasi.

    • Jika Anda menggunakan paket JAR untuk menerapkan aplikasi, atur Application Runtime Environment ke Standard Java Application Runtime Environment.

    • Jika Anda menggunakan paket WAR untuk menerapkan aplikasi, atur Application Runtime Environment ke apache-tomcat-XXX.

    Saat Anda menerapkan aplikasi ke SAE, registri layanan SAE secara otomatis menyetel alamat IP Nacos Server, port layanan, namespace, ID AccessKey, dan Rahasia AccessKey dengan prioritas tinggi. Anda dapat mempertahankan atau menghapus konfigurasi default berdasarkan kebutuhan Anda.

Langkah 6: Verifikasi hasil

  1. Tautkan instance CLB Internet-facing ke konsumen dan masukkan endpoint publik yang Anda tentukan untuk instance CLB di browser untuk pergi ke halaman utama konsumen. Untuk informasi lebih lanjut, lihat Tautkan Instance CLB ke Aplikasi dan Hasilkan Alamat IP Publik atau Pribadi untuk Aplikasi.

  2. Di halaman utama konsumen, buat permintaan untuk memanggil layanan dari penyedia. Masuk ke SAE console. Di panel navigasi sisi kiri, pilih Applications > Applications. Di bilah navigasi atas, pilih wilayah.

  3. Di halaman Applications, pilih konsumen, lalu navigasikan ke halaman Basic Information.

  4. Di panel navigasi sisi kiri, pilih Application Monitoring > Application Overview untuk melihat data panggilan layanan keseluruhan.

    Jika data tentang permintaan untuk memanggil layanan dari penyedia ditampilkan di halaman Ikhtisar, layanan berhasil dipanggil.

Item konfigurasi

Item konfigurasi

Kunci

Nilai default

Deskripsi

Alamat IP server

spring.cloud.nacos.discovery.server-addr

Tidak ada

Alamat IP dan port tempat Nacos Server mendengarkan.

Nama layanan

spring.cloud.nacos.discovery.service

${spring.application.name}

Nama layanan.

Nama Network Interface Controller (NIC)

spring.cloud.nacos.discovery.network-interface

Tidak ada

Jika tidak ada alamat IP yang ditentukan, alamat IP NIC didaftarkan. Jika item ini tidak dikonfigurasi, alamat IP NIC pertama digunakan secara default.

Alamat IP terdaftar

spring.cloud.nacos.discovery.ip

Tidak ada

Alamat IP terdaftar memiliki prioritas lebih tinggi daripada nama ENI selama konfigurasi.

Port terdaftar

spring.cloud.nacos.discovery.port

-1

Anda tidak perlu mengonfigurasi port terdaftar. Sistem secara otomatis mendeteksi port.

Namespace

spring.cloud.nacos.discovery.namespace

Tidak ada

Isolasi pendaftaran di lingkungan yang berbeda. Misalnya, isolasi sumber daya, termasuk konfigurasi dan layanan, di lingkungan pengembangan, pengujian, dan produksi.

Metadata

spring.cloud.nacos.discovery.metadata

Tidak ada

Metadata ini harus dikonfigurasikan dalam format JSON Map. Anda dapat menentukan metadata terkait layanan berdasarkan kebutuhan bisnis Anda.

Cluster

spring.cloud.nacos.discovery.cluster-name

DEFAULT

Nama kluster Nacos.

Endpoint

spring.cloud.nacos.discovery.endpoint

Tidak ada

Domain name layanan di wilayah tersebut. Anda dapat secara dinamis mengambil alamat IP server berdasarkan domain name ini. Anda tidak perlu menentukan item ini saat menerapkan aplikasi ke SAE.

Apakah akan mengaktifkan integrasi Ribbon

ribbon.nacos.enabled

true

Nonaktifkan integrasi Ribbon hanya jika diperlukan.

Untuk informasi lebih lanjut tentang Spring Cloud Alibaba Nacos Discovery, lihat Spring Cloud Alibaba Nacos Discovery.

Apa yang harus dilakukan selanjutnya

Anda dapat melakukan operasi berikut pada aplikasi yang telah dibuat.

  • Aplikasi tidak dapat mengakses Internet atau diakses melalui Internet. Jika Anda ingin mengonfigurasi jaringan untuk aplikasi, lihat Akses Aplikasi.

  • Untuk informasi lebih lanjut, lihat Manajemen O&M.