All Products
Search
Document Center

Microservices Engine:Panduan cepat tata kelola layanan (Java)

Last Updated:Aug 29, 2026

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

  • Buat kluster ACK yang dikelola.

  • 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.

  • Aktifkan MSE Microservices Governance.

  • 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

pom.xml

SpringCloudGateway

spring-cloud-starter-gateway 4.1.2

spring-cloud-starter-gateway

pom.xml

A

Spring Cloud 2023.0.1 Dubbo 3.3.0

openfeign/httpclient/rocketmq/nacos/loadbalancer

pom.xml

B

Spring Cloud 2023.0.1 Dubbo 3.3.0

httpclient/mybatis/druid/nacos

pom.xml

C

Spring Cloud 2023.0.1 Dubbo 3.3.0

openfeign/httpclient/nacos

pom.xml

image.png

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

  1. Paketkan file mse-simple-demo.

  2. Login ke Konsol manajemen kluster ACK. Pilih kluster target. Pada halaman Cluster information, klik Manage Cluster with Workbench.

  3. Unggah paket Helm.

    Pada bilah alat CloudShell, klik ikon manajemen file dan pilih Upload dari menu yang muncul.

  4. Jalankan perintah unzip mse-simple-demo.zip untuk mengekstrak demo.

  5. Jalankan perintah kubectl create namespace mse-demo untuk 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.yaml

Edit file values.yaml atau gunakan flag --set untuk mengganti parameter berikut:

  • namespace: namespace Kubernetes tempat demo akan diinstal. Opsional. Biasanya default.

  • 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:

  1. Klik Create Lane Group and Lane. Jika grup jalur sudah ada di namespace mikroservis yang Anda pilih, klik + Create Lane Group.

  2. 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, dan spring-cloud-c.

Buat jalur

Di bagian bawah halaman End-to-end Canary Release:

  1. Klik Create First Split Lane. Jika jalur sudah ada di namespace mikroservis yang Anda pilih, klik Create Lane.

  2. 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-a dan spring-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 ke name, Condition ke ==, dan Value ke xiaoming.

      Setelah jalur dibuat, bagian Traffic Allocation pada halaman produk grup jalur menampilkan informasi jalur, termasuk nama jalur (gray), tag, daftar aplikasi terkait (spring-cloud-a dan spring-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:

  1. Login ke Konsol Container Service for Kubernetes (ACK).

  2. Buka halaman produk kluster yang telah Anda buat.

  3. Di panel navigasi sebelah kiri, pilih Workload > Stateless.

  4. Pada halaman Deployments, klik spring-cloud-gateway.

  5. Pada halaman detail, klik Access Method.

  6. 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:null

Untuk 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.

image

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.

Contoh permintaan

  # Permintaan reguler
  http://localhost:20000/A/a
  A[10.0.0.47][config=base] -> B[10.0.0.39] -> C[10.0.0.48]
  # Permintaan canary
  http://localhost:20000/A/a?name=xiaoming
  Agray[10.0.0.41][config=base] -> B[10.0.0.55] -> Cgray[10.0.0.30]
  # Permintaan reguler (Feign)
  http://localhost:20000/A/aByFeign
  A[10.0.0.47][config=base] -> B[10.0.0.55]
  # Permintaan reguler (A mengirim permintaan langsung ke C, lalu A meminta B yang meminta C)
  http://localhost:20000/A/a2bc
  A[10.0.0.47][config=base] -> C[10.0.0.48]
  A[10.0.0.47][config=base] -> B[10.0.0.55] -> C[10.0.0.49]
  # Permintaan Dubbo
  http://localhost:20000/A/dubbo
  A[10.0.0.44] -> B[10.0.0.39]name:A -> C[10.0.0.49] params:A
  # Permintaan canary Dubbo
  http://localhost:20000/A/dubbo?name=xiaoming
  Agray[10.0.0.41] -> B[10.0.0.39]name:A -> Cgray[10.0.0.30] params:A
  # Permintaan untuk pengujian pembatasan kecepatan
  http://localhost:20000/A/flow
  A[10.0.0.17][config=base] -> B[10.0.0.39] sleepTime:9 -> C[10.0.0.48] sleepTime:8 code:200
  http://localhost:20000/A/dubbo-flow
  A[10.0.0.17] -> B[10.0.0.55]name:A -> C[10.0.0.48] params:A
  http://localhost:20000/A/isolate
  A[10.0.0.42][config=base] -> B[10.0.0.55] sleepTime:504 -> C[10.0.0.48] sleepTime:8 code:200
  http://localhost:20000/A/dubbo-isolate
  A[10.0.0.17] -> B[10.0.0.55]name:isolate -> C[10.0.0.49] params:isolate
  http://localhost:20000/A/params/hot
  A[10.0.0.17][config=base] params:hot -> B[10.0.0.55] sleepTime:5 params:hot -> C[10.0.0.49] sleepTime:6 params:hot code:200
  http://localhost:20000/A/dubbo-params/hot
  A[10.0.0.17] params:hot -> B[10.0.0.55]name:hot -> C[10.0.0.49] params:hot
  # Permintaan database
  http://localhost:20000/A/sql?command=query&id=1
  A[10.0.0.44][config=base] -> B[10.0.0.39] result:{"age":1,"email":"emailUpdate%40demo.com","id":1,"name":"name1Update"}
  http://localhost:20000/A/sql?command=update&name=name1Update&email=emailUpd***@demo.com&age=1&id=1
  A[10.0.0.44][config=base] -> B[10.0.0.55] result:true
  # Permintaan Spring Boot
  http://localhost:20000/spring_boot

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 cronhpa di kotak pencarian, lalu klik Install.

  • Gunakan YAML berikut untuk membuat tugas penjadwalan penskalaan. Bidang namespace harus 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-b

Konfigurasi 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 flow menguji aturan pembatasan kecepatan; permintaan isolate menghasilkan konkurensi untuk menguji aturan isolasi; permintaan params membawa parameter hot untuk menguji aturan hot-spot.

true

enable.gray

Sakelar untuk permintaan canary yang menggunakan tag

false

demo.qps

Laju permintaan dalam QPS. Mengontrol laju permintaan /a. Laju permintaan lain relatif terhadap nilai ini.

20