All Products
Search
Document Center

Microservices Engine:Implementasikan rilis canary ujung ke ujung berdasarkan ApsaraMQ for RocketMQ

Last Updated:Mar 12, 2026

Rilis canary standar mengarahkan traffic HTTP dan RPC sinkron ke versi aplikasi baru, tetapi tidak menyentuh antrian pesan asinkron. Pesan yang diproduksi oleh instans canary masih dapat mencapai konsumen garis dasar, sehingga memutus isolasi traffic di seluruh rantai panggilan. Microservices Engine (MSE) mengatasi hal ini dengan memperluas rilis canary ke alur pesan RocketMQ. Traffic yang ditandai tetap berada dalam lingkungan canary secara ujung ke ujung—tanpa perubahan pada kode bisnis.

Cara kerja

MSE mengisolasi traffic pesan melalui dua mekanisme:

  • Pemisahan kelompok konsumen: MSE menambahkan tag lingkungan ke setiap nama kelompok konsumen. Misalnya, kelompok konsumen bernama group1 menjadi group1_gray untuk instans yang ditandai dengan lingkungan gray. Setiap lingkungan mendapatkan kelompok konsumennya sendiri, sehingga konsumen canary hanya memproses pesan canary.

  • Penyaringan pesan SQL92: MSE menyuntikkan ekspresi filter SQL92 ke konsumen pesan. Setiap lingkungan hanya mengambil pesan yang membawa label lingkungannya sendiri. Untuk Apache RocketMQ open-source, ini memerlukan enablePropertyFilter=true dalam konfigurasi broker. Jika penyaringan SQL92 tidak tersedia, MSE dapat kembali menggunakan penyaringan sisi klien dengan FilterMessageHook, meskipun ini meningkatkan beban pada produsen dan konsumen serta tidak disarankan untuk produksi.

Digabungkan dengan routing berbasis tag untuk panggilan sinkron dan propagasi tag di seluruh rantai panggilan, mekanisme ini menciptakan lingkungan canary yang sepenuhnya terisolasi yang mencakup traffic HTTP, RPC, dan message queue.

Arsitektur demo

Demo ini menggunakan aplikasi empat layanan yang diterapkan pada Container Service for Kubernetes (ACK). Rantai panggilan menggabungkan Spring Cloud, Dubbo, dan RocketMQ untuk merepresentasikan arsitektur microservices yang khas:

Calling relationship diagram

Jalur sinkron: Permintaan ke /A/dubbo masuk melalui spring-cloud-zuul (gateway) dan diteruskan ke spring-cloud-a. spring-cloud-a memanggil spring-cloud-b melalui Dubbo, dan spring-cloud-b memanggil spring-cloud-c.

Jalur asinkron: Setelah menangani permintaan, spring-cloud-c memproduksi pesan RocketMQ. spring-cloud-a mengonsumsi pesan tersebut dan memanggil spring-cloud-b melalui Spring Cloud, yang kemudian memanggil spring-cloud-c.

Panggilan ke /A/dubbo mengembalikan jalur sinkron lengkap:

A[10.25.xx.xx] -> B[10.25.xx.xx] -> C[10.25.xx.xx]

spring-cloud-a mencatat jalur asinkron setelah mengonsumsi pesan:

2021-12-28 10:58:50.301  INFO 1 --- [essageThread_15] c.a.mse.demo.service.MqConsumer
          : topic:TEST_MQ,producer:C[10.25.xx.xx],invoke result:A[10.25.xx.xx] -> B[10.25.xx.xx] -> C[10.25.xx.xx]

Ambil kode sumber demo dari repositori GitHub.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Hubungkan aplikasi ke MSE Microservices Governance

Aktifkan MSE Microservices Governance untuk aplikasi kluster ACK Anda. Pilih salah satu metode berikut. Untuk petunjuk detail, lihat Aktifkan Microservices Governance untuk aplikasi microservice Java di kluster ACK atau ACS.

Opsi A: Aktifkan berdasarkan namespace

Metode ini mengaktifkan governance untuk semua aplikasi dalam namespace ACK tertentu.

  1. Login ke Konsol MSE dan pilih wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, pilih Microservices Governance > Application Governance.

  3. Pada halaman Application list, klik ACK Application Access.

  4. Pada dialog ACK Application Access, konfigurasikan parameter berikut dan klik OK.

    - Untuk melihat detail komponen ack-onepilot, buka Konsol ACK, klik nama kluster, lalu pilih Operations > Add-ons. - Setelah ack-onepilot diinstal, agen akan disuntikkan secara otomatis. Waktu startup aplikasi mungkin bertambah hingga 10 detik. - Jika kluster tidak berada di wilayah berikut, kluster harus memiliki akses internet dan dapat terhubung ke acm.aliyun.com:8080: Tiongkok (Qingdao), Tiongkok (Hangzhou), Tiongkok (Beijing), Tiongkok (Shanghai), Tiongkok Timur 2 Finance, Tiongkok (Shenzhen), Tiongkok (Hong Kong), Singapura, Jerman (Frankfurt), Australia (Sydney), AS (Silicon Valley), dan AS (Virginia).
    ParameterDeskripsi
    Cluster typePilih ACK Cluster, ACK Serverless Cluster, atau ACS Cluster. Jika ACK tidak memiliki izin untuk memanggil MSE, klik tautan otorisasi ini untuk memberikan izin tersebut.
    Cluster Name/IDPilih kluster target. Cari berdasarkan nama atau ID kluster.
    ack-onepilotMenampilkan status komponen ack-onepilot. Jika belum diinstal, klik Click Install. Lihat ack-onepilot dan Instal dan perbarui komponen Microservices Governance.
    Access TypePilih Namespace Access.
    ACK Cluster NamespacePilih namespace yang akan diaktifkan.
    Microservices Governance NamespacePilih namespace governance MSE.

    image

Opsi B: Aktifkan untuk satu aplikasi

Metode ini mengaktifkan governance untuk satu aplikasi spesifik dengan menambahkan label ke spesifikasi Deployment-nya.

  1. Login ke Konsol MSE dan pilih wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, pilih Microservices Governance > Application Governance.

  3. Pada halaman Application list, klik ACK Application Access.

  4. Pada dialog ACK Application Access, konfigurasikan parameter berikut dan klik OK.

    ParameterDeskripsi
    Cluster typePilih ACK Cluster, ACK Serverless Cluster, atau ACS Cluster. Jika ACK tidak memiliki izin untuk memanggil MSE, klik tautan otorisasi ini untuk memberikan izin tersebut.
    Cluster Name/IDPilih kluster target.
    ack-onepilotMenampilkan status komponen ack-onepilot. Jika belum diinstal, klik Click Install.
    Access TypePilih Single Application Access.

    image

  5. Tambahkan label berikut ke file YAML Deployment Anda di Konsol ACK (Workloads > Deployments > klik nama aplikasi > View in YAML):

       spec:
         template:
           metadata:
             labels:
               # Setel ke "on" untuk mengaktifkan Microservices Governance. Harus diapit tanda kutip ganda.
               msePilotAutoEnable: "on"
               # Namespace governance MSE. Jika tidak ada, akan dibuat secara otomatis.
               mseNamespace: default
               # Nama aplikasi untuk governance MSE. Harus diapit tanda kutip ganda.
               msePilotCreateAppName: "your-deployment-name"

Langkah 2: Terapkan aplikasi demo

Terapkan server Nacos, server RocketMQ, dan empat aplikasi bisnis: spring-cloud-zuul, spring-cloud-a, spring-cloud-b, dan spring-cloud-c.

  1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda.

  3. Di panel navigasi kiri, pilih Workloads > Deployments.

  4. Pilih Namespace dan klik Create From YAML. Gunakan YAML berikut untuk menerapkan semua layanan:

    Perluas untuk melihat file YAML

       # Deploy the Nacos server.
    
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: nacos-server
       spec:
         selector:
           matchLabels:
             app: nacos-server
         template:
           metadata:
             labels:
               app: nacos-server
           spec:
             containers:
               - env:
                   - name: MODE
                     value: "standalone"
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/nacos-server:v2.1.2
                 imagePullPolicy: IfNotPresent
                 name: nacos-server
                 ports:
                   - containerPort: 8848
    
       ---
       apiVersion: v1
       kind: Service
       metadata:
         name: nacos-server
       spec:
         type: ClusterIP
         selector:
           app: nacos-server
         ports:
           - name: http
             port: 8848
             targetPort: 8848
    
       # Deploy the business applications.
       ---
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-zuul
       spec:
         selector:
           matchLabels:
             app: spring-cloud-zuul
         template:
           metadata:
             labels:
               app: spring-cloud-zuul
               msePilotCreateAppName: spring-cloud-zuul
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                   - name: enable.mq.invoke
                     value: 'true'
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-zuul:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-zuul
                 ports:
                   - containerPort: 20000
    
       ---
       apiVersion: v1
       kind: Service
       metadata:
         annotations:
           service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small
           service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
         name: zuul-slb
       spec:
         ports:
           - port: 80
             protocol: TCP
             targetPort: 20000
         selector:
           app: spring-cloud-zuul
         type: LoadBalancer
       status:
         loadBalancer: {}
    
       ---
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-a
       spec:
         selector:
           matchLabels:
             app: spring-cloud-a
         template:
           metadata:
             labels:
               app: spring-cloud-a
               msePilotCreateAppName: spring-cloud-a
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-a:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-a
                 ports:
                   - containerPort: 20001
                 livenessProbe:
                   tcpSocket:
                     port: 20001
                   initialDelaySeconds: 10
                   periodSeconds: 30
    
    
       ---
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-b
       spec:
         selector:
           matchLabels:
             app: spring-cloud-b
         template:
           metadata:
             labels:
               app: spring-cloud-b
               msePilotCreateAppName: spring-cloud-b
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-b:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-b
                 ports:
                   - containerPort: 20002
                 livenessProbe:
                   tcpSocket:
                     port: 20002
                   initialDelaySeconds: 10
                   periodSeconds: 30
    
       ---
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-c
       spec:
         selector:
           matchLabels:
             app: spring-cloud-c
         template:
           metadata:
             labels:
               app: spring-cloud-c
               msePilotCreateAppName: spring-cloud-c
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-c:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-c
                 ports:
                   - containerPort: 20003
                 livenessProbe:
                   tcpSocket:
                     port: 20003
                   initialDelaySeconds: 10
                   periodSeconds: 30
       ---
    
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: rockectmq-broker
       spec:
         selector:
           matchLabels:
             app: rockectmq-broker
         template:
           metadata:
             labels:
               app: rockectmq-broker
           spec:
             containers:
               - command:
                   - sh
                   - mqbroker
                   - '-n'
                   - 'mqnamesrv:9876'
                   - '-c /home/rocketmq/rocketmq-4.9.7/conf/broker.conf'
                 env:
                   - name: ROCKETMQ_HOME
                     value: /home/rocketmq/rocketmq-4.9.7
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/rocketmq:4.9.7
                 imagePullPolicy: Always
                 name: rockectmq-broker
                 ports:
                   - containerPort: 9876
                     protocol: TCP
                   - containerPort: 10911
                     protocol: TCP
                   - containerPort: 10912
                     protocol: TCP
                   - containerPort: 10909
    
       ---
    
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: rocketmq-name-server
       spec:
         selector:
           matchLabels:
             app: rocketmq-name-server
         template:
           metadata:
             labels:
               app: rocketmq-name-server
           spec:
             containers:
               - command:
                   - sh
                   - mqnamesrv
                 env:
                   - name: ROCKETMQ_HOME
                     value: /home/rocketmq/rocketmq-4.9.7
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/rocketmq:4.9.7
                 imagePullPolicy: Always
                 name: rocketmq-name-server
                 ports:
                   - containerPort: 9876
                     protocol: TCP
                   - containerPort: 10911
                     protocol: TCP
                   - containerPort: 10912
                     protocol: TCP
                   - containerPort: 10909
                     protocol: TCP
    
       ---
    
       apiVersion: v1
       kind: Service
       metadata:
         name: mqnamesrv
       spec:
         type: ClusterIP
         selector:
           app: rocketmq-name-server
         ports:
           - name: mqnamesrv-9876-9876
             port: 9876
             targetPort: 9876
  5. Verifikasi penerapan: Output yang diharapkan:

       kubectl get svc,deploy
       NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP    PORT(S)        AGE
       service/kubernetes     ClusterIP      192.168.xx.xx    <none>         4xx/TCP        7d
       service/mqnamesrv      ClusterIP      192.168.xx.xx    <none>         98xx/TCP       47h
       service/nacos-server   ClusterIP      192.168.xx.xx    <none>         88xx/TCP       47h
       service/zuul-slb       LoadBalancer   192.168.xx.xx   123.56.xx.xx   80:302xxx/TCP   47h
    
       NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
       deployment.apps/nacos-server           1/1     1            1           4m
       deployment.apps/rockectmq-broker       1/1     1            1           4m
       deployment.apps/rocketmq-name-server   1/1     1            1           5m
       deployment.apps/spring-cloud-a         1/1     1            1           5m
       deployment.apps/spring-cloud-b         1/1     1            1           5m
       deployment.apps/spring-cloud-c         1/1     1            1           5m
       deployment.apps/spring-cloud-zuul      1/1     1            1           5m

Langkah 3: Aktifkan rilis canary berbasis pesan

Aktifkan rilis canary berbasis pesan untuk produsen pesan (spring-cloud-c) dan konsumen pesan (spring-cloud-a). Fitur ini hanya berlaku jika diaktifkan di kedua sisi.

Sebelum memulai

Tinjau persyaratan dan batasan berikut:

PersyaratanDetail
RedeploymentSetelah mengaktifkan atau menonaktifkan rilis canary berbasis pesan, redeploy aplikasi di Konsol ACK agar perubahan berlaku.
Jenis pesan yang didukungHanya pesan RocketMQ (versi open-source dan versi komersial Alibaba Cloud).
RocketMQ open-sourceServer dan klien harus versi 4.5.0 atau lebih baru.
ApsaraMQ for RocketMQ 4.xEdisi Perusahaan diperlukan untuk penyaringan SQL92. Pembatasan ini tidak berlaku untuk penyaringan sisi klien atau ApsaraMQ for RocketMQ 5.x.
Klien ONSVersi 1.8.0.Final atau lebih baru.
Nama kelompok konsumenMSE menambahkan tag lingkungan ke nama kelompok konsumen (misalnya, group1 menjadi group1_gray). Jika Anda menggunakan ApsaraMQ for RocketMQ Alibaba Cloud, buat kelompok konsumen baru terlebih dahulu.
Penyaringan SQL92Diaktifkan secara default. Untuk Apache RocketMQ open-source, tambahkan enablePropertyFilter=true ke broker.conf.
Penyaringan sisi klienJika penyaringan SQL92 tidak tersedia, gunakan FilterMessageHook sebagai gantinya. Ini memerlukan pengaktifan rilis canary berbasis pesan di semua aplikasi dan memilih penyaringan sisi klien. Karena setiap lingkungan memproses semua pesan dan menyaring secara lokal, pendekatan ini meningkatkan beban. Hindari penggunaannya di produksi.

Aktifkan fitur

  1. Login ke Konsol MSE dan pilih wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, pilih Microservices Governance > Application Governance.

  3. Pada halaman Application list, klik kartu resource aplikasi (spring-cloud-c atau spring-cloud-a).

  4. Di panel navigasi kiri, klik Traffic management.

  5. Pada tab Message Grayscale, aktifkan sakelar Enable Message Grayscale dan klik OK.

    Enable Message Grayscale

  6. Login ke Konsol ACK dan redeploy aplikasi agar konfigurasi berlaku.

  7. Ulangi langkah 3–6 untuk aplikasi lainnya (spring-cloud-a atau spring-cloud-c).

Langkah 4: Terapkan versi canary

Terapkan versi canary dari tiga aplikasi: spring-cloud-a-gray, spring-cloud-b-gray, dan spring-cloud-c-gray. Setiap Deployment canary menggunakan gambar kontainer yang sama dengan garis dasar tetapi menyertakan label alicloud.service.tag: gray untuk mengidentifikasi instans canary. Label msePilotCreateAppName menggunakan nama aplikasi garis dasar sehingga MSE memperlakukan canary dan garis dasar sebagai versi dari aplikasi yang sama.

  1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster Anda.

  3. Di panel navigasi kiri, pilih Workloads > Deployments.

  4. Pilih Namespace dan klik Create From YAML. Gunakan YAML berikut untuk menerapkan versi canary:

    Perluas untuk melihat file YAML

       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-a-gray
       spec:
         selector:
           matchLabels:
             app: spring-cloud-a-gray
         template:
           metadata:
             labels:
               alicloud.service.tag: gray
               app: spring-cloud-a-gray
               msePilotCreateAppName: spring-cloud-a
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-a:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-a-gray
                 ports:
                   - containerPort: 20001
                 livenessProbe:
                   tcpSocket:
                     port: 20001
                   initialDelaySeconds: 10
                   periodSeconds: 30
       ---
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-b-gray
       spec:
         selector:
           matchLabels:
             app: spring-cloud-b-gray
         template:
           metadata:
             labels:
               alicloud.service.tag: gray
               app: spring-cloud-b-gray
               msePilotCreateAppName: spring-cloud-b
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-b:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-b-gray
                 ports:
                   - containerPort: 20002
                 livenessProbe:
                   tcpSocket:
                     port: 20002
                   initialDelaySeconds: 10
                   periodSeconds: 30
    
       ---
    
       apiVersion: apps/v1
       kind: Deployment
       metadata:
         name: spring-cloud-c-gray
       spec:
         selector:
           matchLabels:
             app: spring-cloud-c-gray
         template:
           metadata:
             labels:
               alicloud.service.tag: gray
               app: spring-cloud-c-gray
               msePilotCreateAppName: spring-cloud-c
           spec:
             containers:
               - env:
                   - name: JAVA_HOME
                     value: /usr/lib/jvm/java-1.8-openjdk/jre
                 image: registry.cn-hangzhou.aliyuncs.com/mse-governance-demo/spring-cloud-c:3.0.1
                 imagePullPolicy: Always
                 name: spring-cloud-c-gray
                 ports:
                   - containerPort: 20003
                 livenessProbe:
                   tcpSocket:
                     port: 20003
                   initialDelaySeconds: 10
                   periodSeconds: 30

Langkah 5: Konfigurasikan routing traffic dan verifikasi hasil

Buat aturan routing berbasis tag

  1. Login ke Konsol MSE dan pilih wilayah di bilah navigasi atas.

  2. Di panel navigasi kiri, pilih Microservices Governance > Application Governance.

  3. Klik kartu resource untuk aplikasi spring-cloud-a. Pada halaman Application Overview, grafik QPS Trend Graph menegaskan bahwa seluruh traffic dialihkan ke versi garis dasar.

  4. Di panel navigasi kiri, klik Traffic Governance, lalu klik tab Tag-based Routing.

  5. Pada kolom Traffic Rule untuk tag gray, klik Add.

    Tag-based Routing - Add rule

  6. Pada panel Create Label Route, definisikan aturan traffic dan klik OK. Contoh ini mengarahkan permintaan dengan name=xiaoming ke lingkungan canary. Untuk detail kondisi dan operator yang tersedia, lihat Konfigurasikan routing berbasis tag.

    Create Label Route panel

Aktifkan propagasi tag

Propagasi tag meneruskan tag canary melalui seluruh rantai panggilan. Setelah Anda mengaktifkan propagasi tag, traffic yang sesuai aturan routing akan dilewatkan secara ujung ke ujung, sehingga Anda tidak perlu mengonfigurasi aturan berulang kali.

  1. Pada tab Tag-based Routing, klik nama aturan routing untuk tag gray.

  2. Pada panel Rule Details, klik Edit.

  3. Pada panel Modify Tag-based Routing Rule, aktifkan sakelar Tag Propagation dan klik OK.

Verifikasi rilis canary ujung ke ujung

  1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Klik nama kluster Anda. Di panel navigasi kiri, pilih Network > Services.

  3. Klik layanan zuul-slb. Di bawah Basic Information, klik alamat di sebelah External IP Address (External IP).

  4. Pada halaman panggilan layanan, masukkan /A/dubbo?name=xiaoming dan klik Start Call.

Tanggapan menegaskan routing ujung ke ujung melalui lingkungan canary:

End-to-end canary release result

Data traffic untuk spring-cloud-b menegaskan bahwa traffic canary terisolasi dari traffic garis dasar:

Traffic curve of the spring-cloud-b application

Langkah 6: Kendalikan konsumsi pesan garis dasar

Secara default, konsumen garis dasar menerima pesan dari semua lingkungan, termasuk canary. Untuk mencegah instans garis dasar mengonsumsi pesan canary, konfigurasikan parameter Tags To Be Ignored By The Baseline Environment.

  1. Login ke Konsol MSE.

  2. Di panel navigasi kiri, pilih Microservices Governance > Application Governance. Klik kartu resource untuk aplikasi spring-cloud-a.

  3. Di panel navigasi kiri, klik Traffic Governance, lalu klik tab Message Grayscale.

  4. Klik tombol Edit di sebelah Tags To Be Ignored By The Baseline Environment. Pilih gray di kotak input dan klik OK.

Setelah perubahan ini, pesan dengan tag lingkungan gray hanya dikonsumsi oleh spring-cloud-a-gray, bukan oleh instans spring-cloud-a garis dasar. Pengaturan ini berlaku langsung—tidak diperlukan restart aplikasi.

Verifikasi

Periksa log aplikasi spring-cloud-a di Konsol ACK. Sebelum perubahan, garis dasar mengonsumsi pesan dari kedua lingkungan. Setelah mengatur Tags To Be Ignored By The Baseline Environment ke gray, garis dasar hanya mengonsumsi pesan yang diproduksi oleh garis dasar.

Log comparison before and after configuring tags to ignore

Langkah selanjutnya