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
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.