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
Sebuah gateway cloud-native telah dibuat. Untuk informasi lebih lanjut, lihat Buat MSE Cloud-Native Gateway.
Anda sudah familiar dengan gateway cloud-native. Untuk informasi lebih lanjut, lihat Kelola Layanan MSE Nacos Menggunakan Gateway Cloud-Native.
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
Beli instance MSE Nacos. Untuk informasi lebih lanjut, lihat Buat Mesin Nacos.
Ubah konfigurasi atau kode dan daftarkan layanan Anda dengan instance MSE Nacos. Untuk informasi lebih lanjut, lihat Java SDK.
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: falseKonfigurasi 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
Tambahkan layanan yang ingin Anda langgani dengan mengimpor layanan. Untuk informasi lebih lanjut tentang cara menambahkan layanan, lihat Tambahkan Layanan.
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: 5000Operasi 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=/sleepGateway 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:
Migrasikan beberapa layanan sebagai uji coba dan periksa hasil migrasi.
Migrasikan layanan inti secara berurutan.
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.