全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Langganan

更新时间:Nov 10, 2025

Topik ini menjelaskan definisi, hubungan model, atribut internal, dan rekomendasi penggunaan untuk langganan dalam ApsaraMQ for RocketMQ.

Definisi

Langganan adalah seperangkat aturan dan konfigurasi status yang digunakan konsumen untuk memperoleh dan memproses pesan dalam sistem ApsaraMQ for RocketMQ.

Kelompok konsumen mendaftarkan langganan secara dinamis ke server. Selama transmisi pesan, pesan dicocokkan dan progres konsumsi dipertahankan berdasarkan aturan penyaringan yang didefinisikan dalam langganan tersebut.

Dengan mengonfigurasi langganan, Anda dapat mengontrol perilaku transmisi berikut:

  • Kumpulan pesan yang dilanggan: Mengontrol pesan mana yang dilanggan oleh konsumen dan pesan mana dalam suatu topik yang dikonsumsi oleh konsumen.

  • Progres konsumsi: Server ApsaraMQ for RocketMQ menyediakan persistensi langganan secara default. Setelah kelompok konsumen mendaftarkan langganan ke server, jika konsumen offline lalu kembali online, konsumen tersebut dapat mengambil kembali progres konsumsi sebelumnya dan melanjutkan konsumsi.

Hubungan pemetaan antara topik dan kelompok konsumen

Satu topik dapat dilanggan oleh beberapa kelompok konsumen

ApsaraMQ for RocketMQ mendukung model langganan satu-ke-banyak. Langganan setiap kelompok konsumen terhadap suatu topik bersifat independen. Setiap kelompok dapat melanggan seluruh atau sebagian pesan dalam topik tersebut.

image.png

Satu kelompok konsumen dapat melanggan beberapa topik

Seperti yang ditunjukkan pada gambar berikut, kelompok konsumen Group A melanggan dua topik: Topic A dan Topic B. Untuk konsumen dalam Group A, langganan terhadap Topic A merupakan satu hubungan langganan, sedangkan langganan terhadap Topic B merupakan hubungan langganan lainnya. Kedua langganan tersebut bersifat independen dan dapat didefinisikan secara terpisah tanpa saling memengaruhi.

image.png

Atribut internal

Mode konsumsi

  • Definisi: Mode di mana konsumen mengonsumsi pesan.

  • Nilai:

    • CLUSTERING: Digunakan untuk melanggan topik yang bukan bertipe Lite. Pesan dikirimkan ke salah satu konsumen dalam kelompok konsumen berdasarkan aturan penyeimbangan beban.

    • LITE_SELECTIVE: Digunakan untuk melanggan topik bertipe Lite. Konsumen yang berbeda dalam kelompok konsumen yang sama dapat melanggan kumpulan topik Lite yang berbeda.

Properti penyaringan pesan

Ketika mode konsumsi adalah CLUSTERING, Anda dapat menggunakan konfigurasi penyaringan pesan.

Jenis penyaringan

  • Definisi: Jenis aturan penyaringan pesan. Setelah menetapkan aturan penyaringan pesan untuk suatu langganan, sistem akan mencocokkan pesan dalam topik berdasarkan aturan tersebut. Hanya pesan yang memenuhi kondisi yang ditentukan yang dikirimkan ke konsumen. Fitur ini memungkinkan kategorisasi pesan lebih lanjut.

  • Nilai:

    • Penyaringan TAG: Menyaring dan mencocokkan pesan berdasarkan teks lengkap string tag.

    • Penyaringan SQL92: Menyaring dan mencocokkan atribut pesan berdasarkan sintaks SQL.

Ekspresi penyaringan

Batasan perilaku

Ketika mode konsumsi adalah CLUSTERING

Ketika mode konsumsi adalah CLUSTERING, hubungan langganan dan logika konsumsi untuk setiap konsumen dalam kelompok konsumen yang sama harus konsisten. Jika tidak, akan terjadi konflik konsumsi yang dapat menyebabkan konsumsi abnormal pada sebagian pesan.

  • Contoh yang benar

    //Consumer c1
    Consumer c1 = ConsumerBuilder.build(groupA);
    c1.subscribe(topicA,"TagA");
    //Consumer c2
    Consumer c2 = ConsumerBuilder.build(groupA);
    c2.subscribe(topicA,"TagA");
  • Contoh yang salah

    //Consumer c1
    Consumer c1 = ConsumerBuilder.build(groupA);
    c1.subscribe(topicA,"TagA");
    //Consumer c2
    Consumer c2 = ConsumerBuilder.build(groupA);
    c2.subscribe(topicA,"TagB");

Ketika mode konsumsi adalah LITE_SELECTIVE

Ketika mode konsumsi adalah LITE_SELECTIVE, konsumen yang berbeda dalam kelompok konsumen yang sama dapat melanggan kumpulan topik Lite yang berbeda. Seperti yang ditunjukkan pada gambar berikut, Consumer 1 melanggan LiteTopic1 dan LiteTopic2, sedangkan Consumer 2 melanggan LiteTopic3 dan LiteTopic4.

Topik Lite dapat ditambahkan atau dihapus secara dinamis dari kumpulan langganan setiap konsumen secara real time.

image.png