Saat menjalankan rilis canary pada aplikasi SAE yang didukung oleh gerbang Spring Cloud atau Zuul yang dikelola sendiri, Anda memerlukan cara untuk mengarahkan lalu lintas tertentu ke versi gray setiap layanan mikro—dan memastikan pengarahan tersebut menyebar secara otomatis melalui seluruh rantai layanan. Topik ini menjelaskan cara mengonfigurasi pengarahan lalu lintas ujung ke ujung menggunakan satu Header permintaan HTTP tanpa mengubah kode bisnis apa pun.
Konsep utama
| Term | Description |
|---|---|
| Lingkungan garis dasar | Versi produksi stabil dari layanan mikro Anda — Aplikasi A, B, dan C. Semua trafik dialihkan ke sini secara default. |
| Lingkungan rilis canary | Versi baru yang sedang divalidasi — Aplikasi A-gray, B-gray, dan C-gray. Hanya permintaan yang membawa header canary yang mencapai lingkungan ini. |
| Penyebaran ujung ke ujung | Setelah gerbang masuk mengarahkan permintaan ke instans gray, tag gray menyebar secara otomatis melalui setiap panggilan layanan downstream — A-gray → B-gray → C-gray — tanpa perlu perubahan kode. |
x-mse-tag | Header permintaan HTTP yang digunakan secara eksklusif dalam skenario ini untuk mengarahkan trafik ke lingkungan rilis canary. Jangan gunakan header ini saat mengonfigurasi aturan rilis canary untuk aplikasi. |
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengonfigurasi instans Application Load Balancer (ALB) sebagai gerbang masuk
Menyediakan registrasi layanan Nacos untuk pendaftaran dan penemuan layanan
Mengunduh paket mse-simple-demo
Terapkan aplikasi demo SAE
Terapkan aplikasi jaringan tulang punggung
Terapkan Aplikasi A (keranjang belanja), Aplikasi B (pusat transaksi), dan Aplikasi C (pusat inventaris) ke SAE. Untuk petunjuk penyiapan, lihat Modifikasi registrasi dan penemuan layanan aplikasi ke Nacos.
Terapkan aplikasi rilis canary
Terapkan Aplikasi A-gray, Aplikasi B-gray, dan Aplikasi C-gray. Tambahkan -Dalicloud.service.tag=gray ke perintah startup setiap aplikasi canary agar sistem dapat membedakannya dari versi garis dasarnya.
Jika penerapan Anda menggunakan registrasi layanan non-bawaan SAE, tambahkan juga parameter startup berikut: -Dnacos.use.endpoint.parsing.rule=false -Dnacos.use.cloud.namespace.parsing=falseTerapkan gerbang Spring Cloud atau Zuul
Arahkan permintaan dari nama domain yang sama menggunakan path URL berbeda. Untuk detail konfigurasi, lihat Konfigurasikan pengarahan gerbang untuk aplikasi menggunakan instans CLB.
Arahkan trafik ke lingkungan rilis canary
Ketika nama domain klien tidak dapat diubah, asosiasikan nama domain www.base.com dengan entri rute dan tambahkan header x-mse-tag:gray ke permintaan yang harus diarahkan ke lingkungan rilis canary. Gerbang masuk ALB membaca header tersebut dan mengarahkan permintaan ke instans layanan gray, yang kemudian menyebarkan tag gray ke semua layanan downstream.
Header x-mse-tag hanya berfungsi dalam skenario spesifik ini. Jangan menggunakannya saat mengonfigurasi aturan rilis canary untuk aplikasi. Untuk informasi lebih lanjut, lihat Manage canary release rules for Java applications.
Diagram berikut menunjukkan bagaimana permintaan masuk diarahkan ke lingkungan rilis canary setelah header x-mse-tag:gray ditambahkan.

Verifikasi rilis canary
Jalankan perintah berikut untuk memastikan lalu lintas diarahkan dengan benar.
Periksa lalu lintas garis dasar — permintaan tanpa header x-mse-tag dialihkan ke lingkungan produksi:
curl -H "Host:www.base.com" http://106.14.XX.XX/aOutput yang diharapkan:
A[172.18.XX.XX] -> B[172.18.XX.XX] -> C[172.18.XX.XX]Periksa lalu lintas canary — tambahkan x-mse-tag:gray untuk mengarahkan permintaan melalui ketiga instans gray:
curl -H "Host:www.base.com" -H "x-mse-tag:gray" http://106.14.XX.XX/aOutput yang diharapkan:
Agray[172.18.XX.XX] -> Bgray[172.18.XX.XX] -> Cgray[172.18.XX.XX]%Output tersebut mengonfirmasi bahwa pengontrol gerbang masuk Classic Load Balancer (CLB) mengarahkan permintaan ke lingkungan rilis canary Aplikasi A, dan tag gray menyebar secara ujung ke ujung melalui Aplikasi B-gray dan Aplikasi C-gray.
Langkah berikutnya
Untuk mengonfigurasi aturan rilis canary otomatis untuk aplikasi Java, lihat Manage canary release rules for Java applications.