Dapatkan pengalaman langsung dengan fitur inti tata kelola layanan MSE Microservices Governance dengan menerapkan aplikasi demo serta memverifikasi rilis canary, mulai mulus, shutdown yang mulus, dan perlindungan trafik.
Prasyarat
Kluster Kubernetes harus memiliki setidaknya 12 core dan memori 24 GiB.
Jaringan kluster Kubernetes harus memiliki akses jaringan publik untuk mengunduh demo dari GitHub.
Kaitkan elastic IP addresses (EIPs) untuk mengekspos server API agar dapat diakses melalui CloudShell.
Hubungkan aplikasi mikroservis dalam kluster ACK ke MSE Microservices Governance.
Instal add-on ack-kubernetes-cronhpa-controller di kluster ACK. Untuk informasi selengkapnya, lihat Instal add-on.
Jika Anda menggunakan Pengguna RAM, minta pemilik akun Alibaba Cloud untuk sementara memberikan izin
<a baseurl="t2314492_v4_2_0.xdita" data-node="4751410" data-root="45393" data-tag="xref" href="t2487291.xdita#" id="a-aliyunmse-01">AliyunMSEFullAccess</a>. Hapus izin tersebut setelah menyelesaikan tutorial ini. Di lingkungan produksi, berikan izin sesuai kebutuhan. Untuk informasi selengkapnya tentang otorisasi tata kelola layanan, lihat Otorisasi akses ke Microservices Governance.
Terapkan demo
Ikhtisar demo
Demo ini menggunakan Nacos sebagai registri dan terdiri dari dua gateway: SpringCloudGateway dan Zuul. SpringCloudGateway direkomendasikan untuk proyek baru, sedangkan Zuul disediakan untuk kompatibilitas lama. Anda dapat mengaktifkan atau menonaktifkan salah satu gateway. Jejak panggilan default adalah A->B->C, dan baik A maupun C memiliki versi canary. Kode aplikasi tersedia di repositori kode.
Nama aplikasi | Versi framework layanan | Komponen | Demo |
Zuul | Spring Cloud Greenwich | zuul | |
SpringCloudGateway | spring-cloud-starter-gateway 4.1.2 | spring-cloud-starter-gateway | |
A | Spring Cloud 2023.0.1 Dubbo 3.3.0 | openfeign/httpclient/rocketmq/nacos/loadbalancer | |
B | Spring Cloud 2023.0.1 Dubbo 3.3.0 | httpclient/mybatis/druid/nacos | |
C | Spring Cloud 2023.0.1 Dubbo 3.3.0 | openfeign/httpclient/nacos |

Unduh paket Helm demo
Unduh paket Helm demo. Paket Helm dan gambar kontainer diperbarui secara berkala.
Pada halaman Releases repositori GitHub aliyun/alibabacloud-microservice-demo, temukan versi terbaru, misalnya MSE Simple Demo V3.1.0. Di bagian Assets, klik mse-simple-demo.zip untuk mengunduh file tersebut.
Terapkan menggunakan CloudShell di ACK
Terapkan mse-simple-demo menggunakan CloudShell di ACK
Paketkan file mse-simple-demo.
Login ke Konsol manajemen kluster ACK. Pilih kluster target. Pada halaman Cluster information, klik Manage Cluster with Workbench.
Unggah paket Helm.
Pada bilah alat CloudShell, klik ikon manajemen file dan pilih Upload dari menu yang muncul.
Jalankan perintah
unzip mse-simple-demo.zipuntuk mengekstrak demo.Jalankan perintah
kubectl create namespace mse-demountuk membuat namespace, yang sesuai dengan--namespace.
Terapkan menggunakan Helm
Jalankan perintah Helm berikut untuk menerapkan mse-simple-demo.
helm upgrade mse-simple-demo mse-simple-demo \
--set mse.namespace=mse-demo \
--set gateway.springcloud=true \
--install \
--namespace mse-demo \
--values mse-simple-demo/values.yamlEdit file values.yaml atau gunakan flag --set untuk mengganti parameter berikut:
namespace: namespace Kubernetes tempat demo akan diinstal. Opsional. Biasanyadefault.registry: awalan alamat gambar kontainer. Jika kluster Anda tidak dapat menarik gambar demo, sinkronkan gambar demo ke repository image di akun Anda dan ubah alamat ini.images.version: versi gambar. Versi terbaru adalah 3.1.0.mse.namespace: namespace mikroservis yang terhubung ke MSE Microservices Governance, yang dapat Anda gunakan untuk memisahkan lingkungan. Nilai default:mse-demo.nacos.host: alamat registri Nacos. Demo secara otomatis menjalankan server Nacos. Untuk mendaftarkan aplikasi demo ke alamat Nacos yang berbeda, konfigurasikan parameter ini.autoscaling: menentukan apakah penskalaan otomatis diaktifkan. Nilai default:false. Sebelum mengaktifkan parameter ini, pastikan add-on kubernetes-cronhpa-controller telah diinstal di kluster.resources.enable: menentukan apakah pengaturan requests sumber daya dikonfigurasi. Nilai default:true.
Verifikasi fitur dasar
Peluncuran kanari ujung ke ujung
Jalur navigasi: Login ke Konsol MSE Microservices Governance dan pilih Microservices Governance > End-to-end Canary Release di bilah navigasi sebelah kiri.
Buat grup jalur
Pada halaman End-to-end Canary Release:
Klik Create Lane Group and Lane. Jika grup jalur sudah ada di namespace mikroservis yang Anda pilih, klik + Create Lane Group.
Pada halaman Create Lane Group, konfigurasikan pengaturan berikut dan klik OK.
Lane Group Name: Masukkan nama, misalnya,
demo.Entry Type: Pilih Java Service Gateway. Anda juga dapat memilih Cloud Native API Gateway, MSE cloud-native gateway, atau gateway lainnya.
Lane Group Traffic Entry: Pilih aplikasi entri trafik, misalnya,
spring-cloud-gateway.Applications in Lane Group: Pilih aplikasi yang terlibat dalam grup jalur, misalnya,
spring-cloud-a,spring-cloud-b, danspring-cloud-c.
Buat jalur
Di bagian bawah halaman End-to-end Canary Release:
Klik Create First Split Lane. Jika jalur sudah ada di namespace mikroservis yang Anda pilih, klik Create Lane.
Pada panel Create Lane, konfigurasikan pengaturan untuk jalur lalu lintas dan klik OK.
Lane Name dan Lane Tag: Atur keduanya menjadi
gray.Confirm Matching Relationship: Sertakan
spring-cloud-adanspring-cloud-c.Lane Status: Diaktifkan.
Grayscale Mode: Pilih By Content.
Grayscale Condition: Pilih All of the following conditions are met, lalu tambahkan baris parameter: atur Parameter Type ke
Parameter, Parameter kename, Condition ke==, dan Value kexiaoming.Setelah jalur dibuat, bagian Traffic Allocation pada halaman produk grup jalur menampilkan informasi jalur, termasuk nama jalur (
gray), tag, daftar aplikasi terkait (spring-cloud-adanspring-cloud-c), kondisi pencocokan (param:[name]==xiaoming), dan status aktif. Area pemantauan QPS di atas menunjukkan jumlah permintaan dan garis tren untuk trafik baseline dan trafik canary.
Rutekan permintaan reguler ke versi baseline
Untuk menemukan alamat SLB gateway:
Buka halaman produk kluster yang telah Anda buat.
Di panel navigasi sebelah kiri, pilih Workload > Stateless.
Pada halaman Deployments, klik spring-cloud-gateway.
Pada halaman detail, klik Access Method.
Pada kolom External Endpoint di bagian Service, catat alamat IP dan port.
Buka browser, kunjungi alamat SLB gateway, dan kirim permintaan berikut.
Masukkan /A/a di kotak input dan klik Start Calling. Jejak panggilan yang dikembalikan adalah A[192.168.100.48] [config=base] -> B -> C[192.168.100.235], di mana node B bergantian antara instans 192.168.100.51 dan 192.168.100.53. Hal ini menunjukkan bahwa permintaan reguler menggunakan routing berbasis tag dengan tag config=base, dan trafik didistribusikan secara merata antara dua instans baseline B.
Kirim permintaan path /A/dubbo tanpa tag canary (param:null) dan klik Start Calling. Log jejak panggilan menunjukkan bahwa sebagian besar permintaan diarahkan ke node baseline: A[192.168.100.48] -> B[192.168.100.53] -> C[192.168.100.235]. Beberapa permintaan melewati B[192.168.100.51], dan satu permintaan diarahkan ke node canary Cgray[192.168.100.12].
Rutekan permintaan canary ke versi canary
Masukkan URL: /A/a?name=xiaoming
2025-3-4 16:22:19 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.53] -> Cgray[192.168.100.12]
2025-3-4 16:22:20 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.53] -> Cgray[192.168.100.12]
2025-3-4 16:22:20 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.53] -> Cgray[192.168.100.12]
2025-3-4 16:22:21 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.51] -> Cgray[192.168.100.12]
2025-3-4 16:22:21 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.53] -> Cgray[192.168.100.12]
2025-3-4 16:22:22 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.51] -> Cgray[192.168.100.12]
2025-3-4 16:22:22 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.51] -> Cgray[192.168.100.12]
2025-3-4 16:22:23 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.51] -> Cgray[192.168.100.12]
2025-3-4 16:22:23 Dikembalikan Agray[192.168.100.52] [config=base] -> B[192.168.100.53] -> Cgray[192.168.100.12]Akses operasi /A/dubbo?name=xiaoming. Log jejak panggilan canary adalah sebagai berikut:
2025-3-4 16:23:59 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.51] param:null -> Cgray[192.168.100.12] param:null
2025-3-4 16:23:59 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.51] param:null -> Cgray[192.168.100.12] param:null
2025-3-4 16:24:0 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.53] param:null -> Cgray[192.168.100.12] param:null
2025-3-4 16:24:1 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.53] param:null -> Cgray[192.168.100.12] param:null
2025-3-4 16:24:1 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.51] param:null -> Cgray[192.168.100.12] param:null
2025-3-4 16:24:2 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.53] param:null -> Cgray[192.168.100.12] param:null
2025-3-4 16:24:2 Dikembalikan Agray[192.168.100.52] -> B[192.168.100.51] param:null -> Cgray[192.168.100.12] param:nullUntuk informasi selengkapnya, lihat Implementasikan peluncuran kanari ujung ke ujung berdasarkan gateway Spring Cloud Gateway atau Zuul yang dikelola sendiri.
Mulai mulus dan shutdown yang mulus
Jalur navigasi: Login ke Konsol MSE Microservices Governance dan pilih Microservices Governance > Application Governance di bilah navigasi sebelah kiri. Pada halaman Applications, klik aplikasi yang ingin Anda atur untuk membuka halaman ikhtisar aplikasi.
Konfigurasikan mulai mulus dan shutdown yang mulus
Di bilah navigasi sebelah kiri halaman ikhtisar aplikasi, pilih Traffic Governance. Beberapa kemampuan mulai mulus dan shutdown yang mulus tersedia secara default. Untuk menggunakan kemampuan lengkap, aktifkan dan konfigurasikan mulai mulus dan shutdown yang mulus di konsol.
Pada halaman Traffic Governance, klik tab Graceful Start and Shutdown. Di bagian Configuration Information, Anda dapat melihat status aktif Graceful Start dan Graceful Shutdown serta pengaturan Proactive Notification. Klik Modify di sebelah kanan untuk menyesuaikan pengaturan.
Lihat event dan proses
Bagian atas halaman Graceful Start and Shutdown menampilkan pengaturan saat ini: status aktif mulai mulus, durasi penundaan registrasi, durasi pemanasan trafik kecil, status aktif shutdown yang mulus, dan status notifikasi proaktif. Pada tab Start/Shutdown Events, daftar event di sebelah kiri menampilkan setiap catatan event, termasuk waktu, IP-PID node, nama event (shutdown aplikasi mikroservis, registrasi mikroservis, mulai pemanasan mikroservis, atau shutdown mulus mikroservis), jenis framework, dan detail event. Klik sebuah event, seperti shutdown mulus mikroservis, maka grafik garis QPS node yang sesuai akan muncul di sebelah kanan, di mana Anda dapat mengamati trafik yang menurun secara mulus dari tingkat normal ke 0 saat layanan di-offline.
Untuk informasi selengkapnya, lihat Mulai Mulus dan Shutdown Mulus.
Aturan pembatasan kecepatan
Jalur navigasi: Login ke Konsol MSE Microservices Governance dan pilih Microservices Governance > Application Governance di bilah navigasi sebelah kiri. Pada halaman Applications, klik aplikasi yang ingin Anda atur untuk membuka halaman ikhtisar aplikasi.
Konfigurasikan aturan pembatasan kecepatan
Di bilah navigasi sebelah kiri halaman ikhtisar aplikasi, pilih Traffic Governance. Pada halaman Traffic Governance, pilih Traffic Protection > Interface Flow Control, lalu klik Add Rules.
Pada langkah Configure Protection Rule wizard Add Throttling Protection Rule, bilah informasi di bagian atas menampilkan nama API, jenis proteksi, dan jenis API. Konfigurasikan pengaturan berikut:
Enable: Aktifkan sakelar untuk mengaktifkan aturan.
Single-instance QPS Threshold: Tetapkan batas atas permintaan per detik, misalnya,
5.Throttling Effect: Pilih Fail-fast atau Wait in Queue. Fail-fast mengembalikan pesan pembatasan default untuk trafik yang melebihi ambang batas.
Klik Show Advanced Options untuk memperluas pengaturan tambahan. Setelah menyelesaikan pengaturan, klik Next untuk masuk ke langkah konfigurasi perilaku proteksi.
Verifikasi efek pembatasan kecepatan
Buka browser, kunjungi alamat SLB gateway, dan kirim permintaan berikut.
Atur URI permintaan ke /A/flow dan klik Start Calling. Sebagian besar permintaan mengembalikan Blocked by Sentinel (flow limiting), dan hanya beberapa permintaan yang lolos dan mengembalikan jejak pemanggilan layanan Analisis Tracing: A[192.168.100.45][config=base] -> B[192.168.100.53] -> C[192.168.100.235].
Aplikasi A memiliki satu node dan ambang batas pembatasan kecepatan per instansnya adalah 5, sehingga QPS transmisi langsung stabil di angka 5.

Untuk informasi selengkapnya, lihat Apa itu perlindungan trafik?.
Topik tambahan
Integrasi aplikasi
Pada demo ini, label msePilotAutoEnable: "on" ditambahkan secara eksplisit ke Penyebaran setiap aplikasi yang ingin Anda hubungkan. Di lingkungan produksi, Anda dapat mengaktifkan Microservices Governance untuk namespace kluster Kubernetes di pusat operasi MSE untuk menghubungkan aplikasi secara massal.
Untuk informasi selengkapnya, lihat Hubungkan aplikasi Java di kluster ACK dan ACS ke MSE Microservices Governance.
Contoh permintaan
Contoh permintaan berikut menggunakan localhost:20000 sebagai alamat gateway. Ganti localhost:20000 dengan alamat SLB dan port gateway yang telah Anda peroleh sebelumnya. Anda juga dapat mengirim permintaan ini dari dalam pod gateway.
Konfigurasikan penskalaan otomatis untuk demo
Jika mulai mulus dan shutdown yang mulus tidak diaktifkan selama penerapan awal tetapi Anda ingin mengamatinya nanti, aktifkan dengan cara berikut.
Untuk menggunakan fitur mulai mulus dan shutdown yang mulus secara detail, login ke Konsol Container Service for Kubernetes (ACK), buka halaman informasi kluster, pilih Operations Management > Add-ons di bilah navigasi sebelah kiri, cari
cronhpadi kotak pencarian, lalu klik Install.Gunakan YAML berikut untuk membuat tugas penjadwalan penskalaan. Bidang
namespaceharus sesuai dengan namespace Kubernetes yang Anda pilih saat menginstal paket Helm.
apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: CronHorizontalPodAutoscaler
metadata:
labels:
controller-tools.k8s.io: "1.0"
name: cronhpa-deployment-spring-cloud-b
namespace: mse-demo # Catatan: bidang namespace harus sama dengan namespace k8s yang dipilih saat helm install
spec:
jobs:
- name: Scale-out
schedule: 0 0/6 * * * *
targetSize: 6
- name: Scale-in
schedule: 0 5/6 * * * *
targetSize: 2
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: spring-cloud-bKonfigurasi permintaan otomatis gateway
Pengiriman otomatis berbagai permintaan diaktifkan secara default. Untuk mengubah konfigurasi, login ke Konsol Container Service for Kubernetes (ACK), buka halaman informasi kluster, dan pilih Workload > Stateless di panel navigasi. Pada halaman Deployments, klik aplikasi spring-cloud-gateway. Pada halaman produk, klik Edit di pojok kanan atas. Lalu, konfigurasikan variabel lingkungan berikut untuk mengontrol pengiriman otomatis berbagai permintaan.
Kunci variabel lingkungan | Deskripsi | Nilai default |
enable.auto | Sakelar utama pembangkitan trafik otomatis | true |
enable.rpc.invoke | Sakelar untuk permintaan Dubbo | true |
enable.sql | Sakelar untuk permintaan database | true |
enable.sentinel.demo.flow | Sakelar untuk permintaan terkait aturan Sentinel: permintaan | true |
enable.gray | Sakelar untuk permintaan canary yang menggunakan tag | false |
demo.qps | Laju permintaan dalam QPS. Mengontrol laju permintaan | 20 |