全部产品
Search
文档中心

Microservices Engine:Memulai tata kelola layanan dalam 15 menit (Java)

更新时间:Nov 10, 2025

Topik ini menjelaskan cara menggunakan kemampuan inti Tata Kelola Mikroservis untuk aplikasi Java.

Prasyarat

Catatan

Jika Anda adalah Pengguna RAM, mintalah administrator Akun Alibaba Cloud Anda untuk sementara memberikan izin <a baseurl="t2314492_v4_2_0.xdita" data-node="4751410" data-root="45393" data-tag="xref" href="t2487291.xdita#" id="b5397d18a1u34">AliyunMSEFullAccess</a> dan hapus izin tersebut setelah Anda menyelesaikan tutorial ini. Di lingkungan produksi, berikan izin sesuai kebutuhan. Untuk informasi selengkapnya tentang otorisasi administrasi layanan, lihat Otorisasi Administrasi Mikroservis.

Deploy demo

Pengenalan demo

Demo ini menggunakan instans Nacos sebagai registri dan mencakup gerbang Spring Cloud serta gerbang Zuul, yang dapat Anda aktifkan sesuai kebutuhan. Alur kerja pemanggilan aplikasi default adalah A -> B -> C. Aplikasi A dan C memiliki versi rilis canary. Anda dapat memperoleh kode aplikasi dari repositori kode.

Nama aplikasi

Versi kerangka layanan

Komponen terlibat

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

Unduh paket Helm untuk demo. Paket Helm dan citra diperbarui secara berkala.

image

Metode penerapan

Gunakan CloudShell kluster ACK untuk menerapkan mse-simple-demo

  1. Persiapkan file mse-simple-demo.

  2. Masuk ke Konsol ACK. Pilih kluster target, lalu pada halaman Cluster Information, klik Manage Cluster With Workbench.

    image

  3. Unggah paket Helm.

    image

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

  5. Jalankan perintah kubectl create namespace mse-demo untuk membuat namespace yang sesuai dengan parameter --namespace.

Gunakan Helm untuk menerapkan mse-simple-demo

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

Parameter berikut dapat dimodifikasi:

  • namespace: Namespace Kubernetes tempat demo dipasang. Parameter ini opsional. Nilai default-nya adalah `default`.

  • registry: Awalan alamat citra kontainer. Jika kluster Anda tidak dapat menarik citra demo, Anda dapat menyinkronkan citra tersebut ke repository citra akun Anda dan memperbarui parameter ini dengan alamat baru.

  • images.version: Versi citra. Versi terbaru adalah 3.1.0.

  • mse.namespace: Ruang mikroservis yang terhubung ke MSE Microservices Governance. Anda dapat menggunakan parameter ini untuk membedakan antar lingkungan. Nilai default-nya adalah mse-demo.

  • nacos.host: Alamat registri Nacos. Demo secara otomatis menjalankan server Nacos. Jika Anda ingin mendaftarkan aplikasi demo ke alamat Nacos lain, konfigurasikan parameter ini.

  • autoscaling: Menentukan apakah akan mengaktifkan penskalaan otomatis. Nilai default-nya adalah false. Sebelum mengaktifkan fitur ini, pastikan komponen kubernetes-cronhpa-controller telah diinstal di kluster.

  • resources.enable: Menentukan apakah akan mengatur konfigurasi permintaan sumber daya. Nilai default-nya adalah true.

Verifikasi fitur dasar

Rilis canary end-to-end

Masuk ke Konsol MSE. Di panel navigasi sebelah kiri, pilih Microservices Governance > End-to-end Canary Release.

Buat grup jalur

Pada halaman End-to-end Canary Release:

  1. Klik Create Lane Group and Lane. Jika grup jalur sudah ada di ruang mikroservis yang dipilih, klik + Create Lane Group.

  2. Pada halaman Create Lane Group, konfigurasikan parameter, lalu klik OK.

image

Buat jalur

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

  1. Klik Create First Split Lane. Jika jalur sudah dibuat di ruang mikroservis yang dipilih, klik Create Lane.

  2. Pada panel Create Lane, konfigurasikan pengaturan jalur, lalu klik OK.

    image

    image

Arus permintaan umum ke versi dasar

Catatan

Alamat halaman web adalah alamat SLB gerbang. Untuk menemukan alamat ini, buka halaman detail kluster di Konsol ACK. Pilih Workloads > Deployments. Pada halaman Penyebaran, klik penyebaran `spring-cloud-gateway`. Pada halaman detail yang muncul, klik tab Access Method. Di bagian Service, Anda dapat menemukan alamat IP dan port di kolom External Endpoint.

Di browser, akses alamat SLB gerbang dan kirim permintaan berikut.

image

image

Rutekan permintaan canary ke versi rilis canary

image

image

Untuk informasi selengkapnya, lihat Implementasikan peluncuran kanari ujung ke ujung berdasarkan gerbang Spring Cloud Gateway atau Zuul yang dikelola sendiri.

Mulai dan matikan dengan lancar

Masuk ke Konsol MSE. Di panel navigasi sebelah kiri, pilih Microservices Governance > Application Governance. Pada halaman Application List, klik nama aplikasi yang diinginkan untuk membuka halaman ringkasannya.

Konfigurasikan mulai dan matikan dengan lancar

Pada halaman ringkasan aplikasi, di panel navigasi sebelah kiri, pilih Traffic Governance. Secara default, beberapa kemampuan mulai mulus dan shutdown mulus telah disediakan. Untuk menggunakan kemampuan lengkap, Anda dapat mengaktifkan dan mengonfigurasi pengaturan mulai mulus dan shutdown mulus di konsol.

image

Lihat acara dan proses

image

Untuk informasi lebih lanjut, lihat Mulai dan matikan dengan lancar.

Aturan pembatasan

Masuk ke Konsol MSE. Di panel navigasi sebelah kiri, pilih Microservices Governance > Application Governance. Pada halaman Application List, klik nama aplikasi yang diinginkan untuk membuka halaman ringkasannya.

Konfigurasi aturan pembatasan laju

Di panel navigasi sebelah kiri halaman ringkasan aplikasi, pilih Traffic Governance. Pada halaman Tata Kelola Trafik, pilih Flow Protection > Interface Throttling, lalu klik Add Throttling Rule.

image

Efek pembatasan laju

Di browser, akses alamat SLB gerbang dan kirim permintaan berikut.

image

Aplikasi A memiliki satu node. Ambang batas pembatasan laju untuk satu node ditetapkan menjadi 5, dan permintaan per detik (QPS) stabil di angka 5.

image

Untuk informasi selengkapnya, lihat Apa itu perlindungan trafik?.

Permintaan sampel

Catatan

Ganti `localhost` dengan alamat SLB gerbang. Anda dapat mengirim permintaan dari pod gerbang.

# Permintaan umum
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 umum (Feign)
http://localhost:20000/A/aByFeign
A[10.0.0.47][config=base] -> B[10.0.0.55]

# Permintaan umum (A meminta B dan C secara berurutan)
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 laju
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

Informasi tambahan

Koneksi aplikasi

Metode ini mengharuskan Anda secara eksplisit menambahkan label msePilotAutoEnable: "on" ke penyebaran setiap aplikasi yang ingin Anda hubungkan. Dalam praktiknya, Anda dapat mengaktifkan tata kelola mikroservis untuk seluruh namespace Kubernetes di MSE Operation Center guna menghubungkan aplikasi secara batch.

Untuk informasi selengkapnya, lihat Hubungkan aplikasi mikroservis ACK dan ACS ke MSE Governance Center (Java).

Mulai dan matikan dengan lancar

Catatan

Jika Anda tidak mengaktifkan mulai mulus dan shutdown mulus saat penerapan, Anda dapat mengaktifkannya nanti dengan melakukan langkah-langkah berikut.

  1. Untuk menggunakan mulai mulus dan shutdown mulus, masuk ke Konsol ACK. Di panel navigasi sebelah kiri halaman Informasi Kluster, pilih Operations Management > Add-ons, cari cronhpa di kotak pencarian, lalu klik Install.

  2. Gunakan File YAML berikut untuk membuat tugas penjadwalan penskalaan. Bidang `Namespace` harus diatur ke namespace Kubernetes yang sama yang Anda pilih saat instalasi 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 Kubernetes yang Anda pilih saat instalasi Helm.
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 gerbang

Pengiriman permintaan otomatis diaktifkan secara default. Anda dapat masuk ke Konsol Layanan Kontainer. Di bilah navigasi, klik Workloads > Stateless. Pada halaman Tanpa Status, klik aplikasi spring-cloud-gateway. Pada halaman detail, klik Edit di pojok kanan atas dan konfigurasikan variabel lingkungan berikut untuk permintaan otomatis.

Kunci variabel lingkungan

Deskripsi

Nilai default

enable.auto

Sakelar utama untuk 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. Di antaranya:

  • permintaan flow dapat digunakan untuk menguji aturan pembatasan laju.

  • permintaan isolate memiliki tingkat konkurensi tertentu dan dapat digunakan untuk menguji aturan isolasi.

  • params membawa parameter `hot` dan dapat digunakan untuk menguji aturan hot spot.

true

enable.gray

Sakelar untuk permintaan canary berbasis tag

false

demo.qps

Laju permintaan dalam QPS. Ini mengontrol laju permintaan untuk path /a. Laju untuk path lain relatif terhadap nilai ini.

20

image.png