全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Integrasi antrian pesan dengan swimlanes dalam mode permissif

更新时间:Jun 28, 2025

Service Mesh (ASM) menyediakan fitur swimlanes dalam mode permissif yang memungkinkan pengguna untuk menyebarkan beberapa lingkungan parsial untuk versi penuh. Namun, ASM tidak mendukung protokol antrian pesan dalam skenario tertentu di mana jejak berisi antrian pesan. Untuk memastikan bahwa tag lalu lintas dapat dikirimkan dalam antrian pesan, proses adaptasi diperlukan. Topik ini menjelaskan cara mengintegrasikan antrian pesan dengan swimlanes dalam mode permissif.

Prasyarat

Pastikan bahwa antrian pesan dan penyebaran aplikasi memenuhi persyaratan berikut:

Antrian pesan

  • Anda dapat menentukan metadata kustom dalam sebuah pesan.

  • Konsumen hanya dapat mengonsumsi pesan yang memiliki karakteristik tertentu.

Penyebaran aplikasi

Dalam antrian pesan tempat konsumen secara aktif menarik pesan, konsumen tidak dapat mendeteksi informasi penemuan layanan terkait swimlane. Untuk mengonsumsi pesan sesuai harapan, Anda harus menyebarkan konsumen dan produsen yang valid dalam swimlane sebagai berikut:

  • Penyebaran valid: Sebarkan produsen atau konsumen dalam swimlane atau tidak sama sekali.

  • Penyebaran tidak valid: Sebarkan produsen atau konsumen dalam swimlane.

Solusi

Sebuah produsen dalam antrian pesan menulis tag swimlane ke pesan

Tag swimlane untuk permintaan dalam jejak harus tetap tidak berubah bahkan setelah permintaan melewati antrian pesan. Dengan cara ini, konsumen dapat mengonsumsi pesan yang dikirim oleh aplikasi dalam swimlane dan memulihkan tag yang dibawa dalam pesan ke permintaan yang dikirim ke layanan upstream. Misalnya, ketika aplikasi produser APP-B menulis tag ke dalam antrian pesan, produsen harus menentukan baik swimlane tempat aplikasi berada maupun tag swimlane dari permintaan yang diterima dari layanan downstream dalam pesan, dan konsumen harus menentukan swimlane tempat aplikasi berada dalam bidang kondisi penyaringan tag.

  • Swimlane Tempat Aplikasi Berada: Ini berfungsi sebagai kunci filter. Swimlane tempat aplikasi berada dicirikan oleh tag beban kerjanya. Anda bisa mendapatkan swimlane tempat aplikasi berada dengan mengekspos nilai variabel lingkungan tag ke aplikasi.

  • Tag Swimlane dari Permintaan yang Diterima dari Layanan Downstream: Setelah lalu lintas melewati gateway ingress ASM, permintaan yang dikirim oleh gateway berisi tag swimlane dan dapat dirutekan ke swimlane tertentu menggunakan proxy mesh. ASM meneruskan tag tersebut ke HTTPS end-to-end melalui header permintaan x-asm-prefer-tag.

Seorang konsumen dalam antrian pesan mengonsumsi pesan dalam swimlane tempat aplikasi berada

Untuk memungkinkan konsumen mengonsumsi pesan dalam antrian pesan tertentu, konsumen harus berlangganan kunci filter swimlane tempat aplikasi berada.

Produsen dan Konsumen Ditempatkan di Swimlane v1 dan v2: Seorang produsen dan konsumen ditempatkan di kedua swimlane v1 dan v2. APP-C(v1) dapat mengonsumsi pesan dengan kunci filter v1. Ini berarti bahwa APP-C(v1) hanya mengonsumsi pesan yang diproduksi oleh APP-B(v1). APP-C(v2) dapat mengonsumsi pesan dengan kunci filter v2. Ini berarti bahwa APP-C(v2) hanya mengonsumsi pesan yang diproduksi oleh APP-B(v2).

Tidak Ada Produsen atau Konsumen yang Ditempatkan di Swimlane v2: Seorang produsen dan konsumen ditempatkan di swimlane v1, sementara hanya APP-A(v2) dan APP-D(v2) yang ditempatkan di swimlane v2. Permintaan yang diterima oleh APP-A(v2) dirutekan ke APP-B(v1) dalam swimlane dalam mode permissif karena APP-B(v2) tidak ditempatkan. Setelah pesan dikirim ke APP-B(v1) dari APP-A(v1) atau APP-A(v2), sistem menentukan kunci filter sebagai tag swimlane sebelum pesan dikonsumsi oleh APP-C(v1). Setelah pesan dikonsumsi oleh App-Cv1, APP-C(v1) menghapus tag swimlane v1 yang dibawa dalam pesan. Dengan cara ini, ketika pesan dikirim ke APP-D, pesan yang ditandai dengan swimlane v2 dapat dirutekan ke APP-D(v2).

Aplikasi konsumen menulis tag swimlane yang dibawa dalam pesan ke permintaan yang dikirim ke layanan downstream

Jika pesan diperlukan untuk dirutekan ke aplikasi lain setelah aplikasi konsumen mengonsumsi pesan, aplikasi konsumen perlu menulis tag swimlane yang dibawa dalam pesan ke permintaan yang dikirim ke aplikasi lain. Dengan cara ini, proxy mesh ASM dapat merutekan permintaan ke aplikasi yang berbeda berdasarkan tag.

Setelah konfigurasi sebelumnya selesai, aplikasi konsumen menambahkan header permintaan x-asm-prefer-tag ke permintaan yang akan dikirim dan menentukan nilai header sebagai tag swimlane yang dibawa dalam pesan yang dikonsumsi dari antrian pesan. Proxy mesh ASM merutekan permintaan dengan header permintaan x-asm-prefer-tag ke swimlane yang ditentukan.