全部产品
Search
文档中心

Microservices Engine:Migrasi layanan dari Spring Cloud Gateway ke cloud-native gateway

更新时间:Jul 06, 2025

Dalam arsitektur Kubernetes, Spring Cloud Gateway tidak dapat menemukan layanan kontainer dan memiliki performa lebih rendah dibandingkan NGINX Ingress gateway. Pengembangan kustom serta integrasi diperlukan untuk observabilitas dan keamanan. Dalam skenario seperti migrasi cloud dan penyebaran cloud hibrid, mungkin terdapat arsitektur jaringan dua lapis: satu untuk Ingress gateway dan lainnya untuk Spring Cloud Gateways. Hal ini meningkatkan kompleksitas jaringan, konsumsi sumber daya, dan biaya O&M. Gateway cloud-native menggabungkan gateway lalu lintas tradisional dengan gateway mikro, sehingga dapat secara signifikan mengurangi biaya layanan. Gateway cloud-native menawarkan performa tinggi, integrasi yang baik, dan siap pakai. Topik ini menjelaskan cara memigrasi layanan dari Spring Cloud Gateway ke Microservices Engine (MSE) cloud-native gateway.

Prasyarat

Langkah 1: Konfirmasi sumber layanan

Anda dapat langsung menuju ke Langkah 2: Migrasi Konfigurasi Spring Cloud Gateway dalam situasi berikut:

  • Container Service for Kubernetes (ACK) digunakan, dan penemuan layanan Kubernetes didukung.

  • Sebuah instance MSE Nacos dibeli dan digunakan sebagai registri. Instance MSE Nacos ditingkatkan ke versi yang mendukung Mesh Configuration Protocol (MCP).

  • Tidak ada mekanisme penemuan layanan yang digunakan, dan nama domain serta alamat IP tetap digunakan untuk menemukan layanan.

Anda dapat melakukan operasi migrasi berdasarkan jenis sumber layanan.

  • Gunakan Instance MSE Nacos

    1. Beli instance MSE Nacos. Untuk informasi lebih lanjut, lihat Buat Mesin Nacos.

    2. Ubah konfigurasi atau kode dan daftarkan layanan Anda dengan instance MSE Nacos. Untuk informasi lebih lanjut, lihat Java SDK.

    3. Opsional. Jika aplikasi Anda adalah aplikasi Java, lakukan operasi migrasi menggunakan Agen Tata Kelola Mikro MSE. Untuk informasi lebih lanjut, lihat Solusi Migrasi Berbasis MSE Sync.

  • Gunakan Registri Bersama Enterprise Distributed Application Service (EDAS)

    Gateway cloud-native mendukung registri EDAS. Anda dapat langsung menambahkan registri EDAS sebagai sumber layanan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Layanan.

  • Gunakan Registri Bersama Serverless App Engine (SAE)

    Gateway cloud-native mendukung registri SAE. Anda dapat langsung menambahkan registri SAE sebagai sumber layanan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Layanan.

Langkah 2: Migrasi konfigurasi Spring Cloud Gateway

Konfigurasi contoh Spring Cloud Gateway:

  • Konfigurasi registri terkait

    spring:
      application:
        name: gateway-demo
      cloud:
        nacos:
          discovery:
            server-addr: nacos-server:8848
          config:
            enabled: false
  • Konfigurasi layanan routing

    spring:
      cloud:
        gateway:
          default-filters:
            - AddResponseHeader=X-Response-Default-Foo, Default-Bar
    
          routes:
            - id: websocket_test
              uri: ws://localhost:9000
              order: 9000
              predicates:
                - Path=/echo
            - id: default_path_to_service-a
              uri: lb://service-a
              order: 10000
              predicates:
                - Path=/sleep
    service-a:
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule
        ConnectTimeout: 1000
        ReadTimeout: 8000
        MaxAutoRetries: 3
        MaxAutoRetriesNextServer: 2
        MaxTotalConnections: 20000
        MaxConnectionsPerHost: 5000
    hystrix:
      command:
        service-a:
          execution:
            isolation:
              thread:
                timeoutInMilliseconds: 60000
              strategy: SEMAPHORE
              semaphore:
                maxConcurrentRequests: 60000

Untuk memigrasi konfigurasi Spring Cloud Gateway di Konsol MSE, lakukan operasi berikut:

  • Operasi Terkait Registri

    Gateway cloud-native menggunakan sumber layanan untuk menghubungkan registri. Anda dapat menggunakan Konsol MSE untuk menambahkan sumber layanan dan kemudian menghubungkan sumber layanan dengan layanan. Konfigurasi berlaku secara real-time. Untuk informasi lebih lanjut tentang cara menambahkan sumber layanan, lihat Tambahkan Sumber Layanan.

  • Operasi Asosiasi Layanan

    1. Tambahkan layanan yang ingin Anda langgani dengan mengimpor layanan. Untuk informasi lebih lanjut tentang cara menambahkan layanan, lihat Tambahkan Layanan.

    2. Untuk informasi lebih lanjut tentang cara mengonfigurasi versi rute yang sesuai untuk layanan yang ditambahkan, lihat Kelola Versi Layanan.

    service-a:
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule
        ConnectTimeout: 1000
        ReadTimeout: 8000
        MaxAutoRetries: 3
        MaxAutoRetriesNextServer: 2
        MaxTotalConnections: 20000
        MaxConnectionsPerHost: 5000
  • Operasi Konfigurasi Routing

    Konfigurasikan kebijakan routing untuk gateway. Untuk informasi lebih lanjut, lihat Buat Aturan Routing.

    spring:
      cloud:
        gateway:
          routes:
            - id: websocket_test
              uri: ws://localhost:9000
              order: 9000
              predicates:
                - Path=/echo
            - id: default_path_to_service-a
              uri: lb://service-a
              order: 10000
              predicates:
                - Path=/sleep

    Gateway cloud-native mendukung beberapa kebijakan routing. Untuk informasi lebih lanjut, lihat topik-topik berikut:

Langkah 3: Konfigurasikan metode autentikasi untuk gateway cloud-native

Gateway cloud-native mendukung beberapa metode autentikasi. Untuk informasi lebih lanjut, lihat topik-topik berikut:

Langkah 4: Lihat dasbor data global gateway cloud-native

Anda dapat melihat dasbor data global setiap gateway cloud-native. Untuk informasi lebih lanjut, lihat topik-topik berikut:

Langkah 5: Migrasi trafik

Prosedur untuk migrasi trafik di sisi pemanggil:

  • Migrasi iteratif di sisi pemanggil atau sisi klien: Anda dapat mengubah URL akses beberapa layanan untuk memeriksa hasil migrasi.

  • Migrasi bertahap di sisi proxy: Anda dapat membuat langkah-langkah migrasi di sisi proxy asli berdasarkan jenis layanan. Misalnya, Anda dapat secara terpisah membuat langkah-langkah migrasi untuk layanan inti dan layanan non-inti. Kemudian, Anda dapat memigrasi layanan berdasarkan URL akses secara bertahap.

  • Migrasi penuh berbasis DNS: Setelah Anda menyelesaikan migrasi bertahap, Anda dapat mengaitkan nama domain asli dengan URL akses gateway cloud-native Anda.

  • (Recommended) Migrasi Prosedural:

    1. Migrasikan beberapa layanan sebagai uji coba dan periksa hasil migrasi.

    2. Migrasikan layanan inti secara berurutan.

    3. Lakukan migrasi penuh berbasis DNS setelah Anda menyelesaikan uji stres.

Solusi migrasi

Biaya

Risiko

Migrasi iteratif

Tinggi

Rendah

Migrasi bertahap di sisi proxy

Sedang

Sedang

Migrasi penuh berbasis DNS

Rendah

Tinggi

Migrasi prosedural

Relatif rendah

Relatif rendah

Referensi

Untuk informasi lebih lanjut tentang gateway cloud-native, lihat Ikhtisar Gateway Cloud-Native.