全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Topik

更新时间:Nov 11, 2025

Topik ini menjelaskan definisi, hubungan model, atribut internal, batasan perilaku, kompatibilitas versi, dan catatan penggunaan untuk topik dalam ApsaraMQ for RocketMQ.

Definisi

Dalam ApsaraMQ for RocketMQ, topik adalah kontainer tingkat atas untuk mengirimkan dan menyimpan pesan. Topik mengidentifikasi pesan-pesan yang memiliki logika bisnis yang sama.

Topik memberikan manfaat sebagai berikut:

  • Kategorisasi dan isolasi data

    Saat merancang solusi yang menggunakan ApsaraMQ for RocketMQ, Anda dapat membuat topik berbeda untuk mengelola pesan dari jenis bisnis yang berbeda. Praktik ini memastikan penyimpanan dan langganan yang terisolasi.

  • Manajemen identitas dan izin

    Pesan dalam ApsaraMQ for RocketMQ bersifat anonim. Anda dapat menggunakan topik untuk mengelola identitas dan izin bagi pesan dari kategori tertentu.

Hubungan model

Gambar berikut menunjukkan posisi topik dalam model domain ApsaraMQ for RocketMQ.

主题

Dalam ApsaraMQ for RocketMQ, topik merupakan kontainer tingkat atas untuk semua sumber daya pesan. Namun, topik adalah konsep logis dan bukan kontainer pesan yang sebenarnya.

Sebuah topik terdiri dari satu atau beberapa antrian yang menangani penyimpanan pesan dan skalabilitas horizontal. Semua batasan dan pengaturan atribut untuk topik diterapkan pada tingkat antrian.

Jika sebuah topik bertipe Lite, Anda dapat membuat sumber daya LiteTopic di bawahnya. Secara default, setiap LiteTopic terdiri dari satu antrian.

Konsep

Topik

Dalam ApsaraMQ for RocketMQ, topik adalah kontainer tingkat atas untuk mengirimkan dan menyimpan pesan. Topik mengidentifikasi pesan-pesan yang memiliki logika bisnis yang sama dan diidentifikasi secara unik melalui nama topiknya.

LiteTopic

Jika sebuah topik bertipe Lite, Anda dapat membuat LiteTopic di bawahnya. Kombinasi antara topik dan LiteTopic secara unik mengidentifikasi kontainer penyimpanan pesan. Secara default, setiap kontainer penyimpanan terdiri dari satu antrian.

Atribut internal

Nama topik

  • Definisi: Nama sebuah topik. Nama tersebut harus unik secara global dalam satu kluster dan digunakan untuk mengidentifikasi topik tersebut.

  • Nilai: Anda dapat menentukan nama topik saat membuat topik tersebut.

  • Batasan: Untuk informasi lebih lanjut, lihat Batasan parameter.

Antrian

  • Definisi: Antrian adalah komponen dasar dari sebuah topik dan berfungsi sebagai kontainer aktual untuk penyimpanan pesan. Sebuah topik berisi satu atau beberapa antrian tempat pesan disimpan. Untuk informasi lebih lanjut, lihat Antrian (MessageQueue).

  • Nilai: Sistem mengalokasikan antrian ke sebuah topik berdasarkan jumlah antrian yang ditentukan. Anda menentukan jumlah antrian saat membuat topik.

  • Batasan: Sebuah topik harus berisi setidaknya satu antrian.

Tipe pesan

  • Definisi: Tipe pesan yang didukung oleh topik.

  • Nilai: Anda dapat memilih tipe pesan saat membuat topik. ApsaraMQ for RocketMQ mendukung tipe topik berikut:

    • Normal: Pesan normal. Pesan normal tidak memiliki semantik khusus dan tidak berkaitan dengan pesan lainnya.

    • FIFO: Pesan terurut. ApsaraMQ for RocketMQ menggunakan grup pesan (MessageGroup) untuk menentukan urutan sekumpulan pesan. Hal ini memastikan bahwa pesan dikirimkan sesuai urutan persis saat dikirim.

    • Delay: Pesan terjadwal dan tertunda. Anda dapat menentukan penundaan waktu agar pesan tidak langsung dikirimkan setelah dikirim. Pesan hanya akan terlihat oleh konsumen setelah penundaan yang ditentukan berakhir.

    • Transaksi: Pesan transaksional. ApsaraMQ for RocketMQ mendukung pesan transaksional terdistribusi. Ini memastikan konsistensi transaksional untuk pembaruan database dan panggilan pesan.

    • Lite: Pesan Lite. Fitur LiteTopic hanya tersedia untuk topik dengan tipe pesan Lite.

  • Batasan: Setiap topik hanya mendukung satu tipe pesan.

Waktu kedaluwarsa LiteTopic

  • Definisi: Waktu kedaluwarsa untuk sumber daya LiteTopic dalam sebuah topik. LiteTopic akan dihapus secara otomatis jika waktu sejak pesan terakhir ditulis melebihi waktu kedaluwarsa yang ditentukan.

  • Nilai: Nilainya dalam satuan menit dan dapat berupa angka dari 30 hingga 720, atau -1. Nilai -1 menunjukkan bahwa LiteTopic tidak pernah kedaluwarsa.

  • Batasan: Parameter ini hanya berlaku ketika tipe pesannya adalah Lite.

Batasan perilaku

Verifikasi tipe pesan paksa

Dalam ApsaraMQ for RocketMQ 5.x, tipe pesan dikelola dan diproses secara independen dalam topik. Sistem memverifikasi tipe pesan yang dikirim terhadap tipe pesan yang ditentukan untuk topik tujuan. Jika verifikasi gagal, permintaan pengiriman ditolak, dan sistem mengembalikan pengecualian ketidakcocokan tipe. Aturan verifikasi berikut berlaku:

  • Konsistensi tipe pesan

    Tipe pesan yang dikirim harus sesuai dengan tipe pesan yang ditentukan untuk topik tujuan.

  • Satu tipe pesan per topik

    Setiap topik hanya mendukung satu tipe pesan. Anda tidak dapat mengirim pesan dengan tipe berbeda ke topik yang sama.

Skema penggunaan salah yang umum

  • Mengirim pesan dengan tipe yang tidak cocok

    Sebagai contoh, jika Anda membuat topik dan menentukan tipe pesannya sebagai terurut, tetapi kemudian mengirim pesan transaksional ke topik tersebut, permintaan pengiriman akan ditolak dan pengecualian ketidakcocokan tipe dikembalikan.

  • Mencampur tipe pesan dalam satu topik

    Sebagai contoh, Anda membuat topik dan menentukan tipe pesannya sebagai normal. Jika kemudian Anda mengirim pesan normal dan pesan terurut ke topik tersebut, permintaan pengiriman pesan terurut akan ditolak, dan pengecualian ketidakcocokan tipe dikembalikan.

Kompatibilitas versi

Verifikasi tipe pesan yang diberlakukan hanya berlaku untuk broker ApsaraMQ for RocketMQ 5.x.

Broker ApsaraMQ for RocketMQ 4.x tidak menerapkan verifikasi tipe pesan. Namun, kami merekomendasikan agar Anda tetap menjaga konsistensi tipe pesan saat menggunakan broker tersebut.

Catatan penggunaan

Rencanakan topik berdasarkan kategori bisnis

Saat merancang topik dalam ApsaraMQ for RocketMQ, kami merekomendasikan agar Anda mengelompokkan pesan berdasarkan kategori bisnis utama. Kelompokkan pesan yang memiliki atribut fungsional yang sama dalam domain bisnis yang sama ke dalam satu topik. Saat menentukan granularitas topik, pertimbangkan faktor-faktor berikut:

  • Konsistensi tipe pesan: Tipe pesan yang berbeda, seperti pesan terurut dan pesan normal, memerlukan topik yang berbeda.

  • Relevansi bisnis: Jika bisnis tidak saling terkait secara langsung, gunakan topik yang berbeda. Misalnya, pesan transaksi Taobao dan pesan logistik Freshippo tidak memiliki tumpang tindih bisnis dan memerlukan topik yang berbeda. Untuk pesan dalam bisnis yang sama, seperti pesan transaksi Taobao, Anda dapat menggunakan topik yang sama untuk pesanan pakaian wanita dan pria. Namun, jika volume bisnis besar atau submodul memerlukan kategorisasi lebih lanjut berdasarkan jenis pesanan, Anda juga dapat membagi pesan menjadi dua topik terpisah untuk pesanan pakaian pria dan wanita.

  • Volume pesan: Kami merekomendasikan agar Anda menggunakan topik yang berbeda untuk pesan bisnis yang berbeda dalam hal besaran atau persyaratan ketepatan waktu. Misalnya, beberapa pesan bisnis memiliki volume yang sangat kecil tetapi sangat sensitif terhadap waktu. Jika pesan-pesan ini berbagi topik dengan bisnis yang menghasilkan volume pesan tinggi, waktu tunggu untuk pesan yang sensitif terhadap waktu akan meningkat.

Contoh pembagian topik yang benar: Dalam skenario belanja daring, Anda dapat menggunakan satu topik untuk pesan transaksi pesanan, seperti pembuatan pesanan, pembayaran, dan pembatalan. Anda dapat menggunakan topik terpisah untuk pesan terkait logistik dan topik lain untuk pesan manajemen poin.

Contoh pembagian topik yang salah:

  • Pembagian dengan granularitas terlalu kasar: Hal ini menyebabkan isolasi bisnis yang buruk dan mempersulit operasi & pemeliharaan (O&M) serta penanganan kesalahan secara independen. Contohnya adalah menggunakan satu topik untuk semua pesan transaksi dan logistik.

  • Pembagian dengan granularitas terlalu halus: Hal ini menghabiskan sumber daya topik secara berlebihan dan dapat membebani sistem. Contohnya adalah membuat topik terpisah untuk setiap ID pengguna.

Gunakan satu topik untuk satu tipe pesan dan hindari pencampuran tipe

Topik dalam ApsaraMQ for RocketMQ dirancang untuk mengisolasi bisnis. Kami merekomendasikan agar Anda menggunakan topik yang berbeda untuk pesan dengan logika bisnis yang berbeda. Pesan dengan logika bisnis yang sama memiliki tipe pesan yang sama. Oleh karena itu, satu topik sebaiknya hanya digunakan untuk satu tipe pesan.

Hindari penggunaan mekanisme otomatis untuk pengelolaan topik

Dalam arsitektur ApsaraMQ for RocketMQ, topik merupakan sumber daya dan kontainer tingkat atas. Topik memiliki kemampuan independen untuk pengelolaan izin, pengumpulan metrik observabilitas, dan pemantauan. Membuat dan mengelola topik mengonsumsi sumber daya sistem. Oleh karena itu, Anda harus mengelola sumber daya topik secara ketat di lingkungan produksi. Jangan sembarangan menambah, menghapus, memodifikasi, atau mengkueri topik.