Topik adalah kategori tingkat atas untuk pesan di ApsaraMQ for RocketMQ. ApsaraMQ for RocketMQ mendukung model publish/subscribe. Produsen menerbitkan pesan ke topik, dan konsumen menerima pesan dengan berlangganan ke topik tersebut. Artikel ini menjelaskan cara membuat, menghapus, memperbarui, dan mengkueri topik di konsol ApsaraMQ for RocketMQ.
Catatan penggunaan
-
Topik tidak dapat digunakan lintas instans. Misalnya, topik yang dibuat di Instans A tidak dapat digunakan di Instans B.
-
Tipe topik harus sesuai dengan tipe pesan. Misalnya, jika Anda membuat topik untuk menangani pesan normal, pilih tipe pesan normal. Jangan memilih tipe lain, seperti ordered message atau transactional message. Ketidaksesuaian ini dapat menyebabkan masalah operasional, seperti hilangnya scheduled/delayed messages selama penggantian node atau migrasi instans.
-
Pada RocketMQ 5.x, jumlah antrian per topik ditetapkan secara otomatis oleh sistem. Anda tidak dapat menyesuaikan atau mengubah jumlah antrian tersebut. Nilai spesifik jumlah antrian juga tidak dapat dilihat melalui konsol atau API.
-
ApsaraMQ for RocketMQ tidak mendukung pembuatan topik global-order secara langsung dan tidak menyediakan channel aplikasi khusus untuk tujuan ini. Untuk mencapai pengiriman pesan dengan urutan global, buat topik FIFO (partitioned order) dan tetapkan Sharding Key yang sama (misalnya, nilai tetap) saat mengirim pesan. Hal ini memastikan bahwa semua pesan diarahkan ke partisi yang sama dan diproses secara berurutan.
-
Demi manajemen sumber daya dan stabilitas, ApsaraMQ for RocketMQ 5.x tidak mendukung pembuatan topik otomatis (termasuk dead letter topic). Anda harus secara eksplisit membuat dead letter topic melalui konsol atau API. Perilaku ini berbeda dari versi open-source RocketMQ yang mendukung pembuatan topik otomatis.
Penagihan
Topik dikenai biaya berbeda berdasarkan metode penagihan instans ApsaraMQ for RocketMQ Anda.
-
Instans Subscription dan pay-as-you-go
Anda dikenai biaya untuk jumlah topik yang melebihi kuota gratis instans Anda. Tidak ada biaya yang dikenakan jika Anda tetap dalam batas kuota gratis. Untuk informasi lebih lanjut, lihat Biaya topik.
-
Instans serverless
Anda dikenai biaya berdasarkan jumlah topik. Untuk informasi lebih lanjut, lihat Biaya topik untuk instans serverless.
Buat topik
Masuk ke ApsaraMQ for RocketMQ console. Di panel navigasi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, seperti China (Hangzhou). Di halaman Instances, klik nama instans yang ingin Anda kelola.
-
Di panel navigasi kiri, klik Topics.
-
Di halaman Topics, klik Create Topic.
-
Di panel Create Topic, masukkan Name dan Description, pilih message type, lalu klik OK.
Anda dapat memilih normal message, ordered message, scheduled/delayed message, atau transactional message. Nama topik harus terdiri dari 1 hingga 60 karakter dan hanya boleh berisi huruf, angka, tanda hubung (-), dan garis bawah (_).
Daftar topik
Masuk ke ApsaraMQ for RocketMQ console. Di panel navigasi kiri, klik Instances.
Di bilah navigasi atas, pilih wilayah, seperti China (Hangzhou). Di halaman Instances, klik nama instans yang ingin Anda kelola.
-
Di panel navigasi kiri, klik Topics.
-
Di halaman Topics, Anda dapat melihat semua topik dalam instans saat ini.
Lihat detail topik
-
Di halaman Topics, temukan topik target dan klik Details pada kolom Actions.
-
Di halaman Topic Details, Anda dapat melihat detail topik tersebut.
Edit topik
-
Di halaman Topics, temukan topik target dan klik Details pada kolom Actions.
-
Di halaman Topic Details, klik tab Basic Information. Lalu, pada bagian Basic Information, klik Edit.
-
Di panel Update Topic, perbarui deskripsi topik dan klik OK.
Hapus topik
-
Menghapus topik akan segera menghentikan produsen dan konsumennya. Metadata dan data pesan topik tersebut akan dihapus secara permanen dan tidak dapat dipulihkan. Lakukan dengan hati-hati.
-
Anda harus menunggu lima menit sebelum dapat membuat topik lain dengan nama yang sama.
-
Di halaman Topics, temukan topik target dan klik Details pada kolom Actions.
-
Di halaman Topic Details, klik tab Basic Information. Lalu, pada bagian Basic Information, klik Delete Topic.
-
Di kotak dialog Note, klik OK.
Quick start
ApsaraMQ for RocketMQ memungkinkan Anda menguji pengiriman pesan normal secara cepat di konsol. Untuk mengirim dan menerima jenis pesan lainnya, gunakan SDK. Untuk informasi lebih lanjut, lihat Ikhtisar referensi SDK.
-
Di halaman Topics, temukan topik yang Message Type-nya adalah normal message, lalu klik Details pada kolom Actions.
-
Di halaman Topic Details, klik Quick Start.
-
Di panel Start Message Production and Consumption, lakukan salah satu tindakan berikut:
-
Console:
Masukkan Message Body, Message Key, dan Message Tag, lalu klik OK.
-
SDK:
Lihat contoh kode untuk berbagai SDK dan ikuti petunjuk untuk mengirim serta menerima pesan.
-
Lihat dashboard
Dashboard menampilkan metrik utama terkait produksi pesan topik dan klien produsen. Untuk informasi lebih lanjut tentang metrik tersebut, lihat dashboard.
-
Di halaman Topics, temukan topik target dan klik Details pada kolom Actions.
-
Di halaman Topic Details, klik tab Dashboard.
Operasi lainnya
Untuk mengimpor dan mengekspor topik, lihat Impor dan ekspor topik.
FAQ
T: Apa yang harus saya lakukan jika muncul InternalError atau pesan yang menunjukkan bahwa MessageType tidak tersedia saat membuat topik menggunakan Alibaba Cloud CLI?
Saat membuat topik menggunakan Alibaba Cloud CLI, parameter MessageType bersifat wajib dan tidak memiliki nilai default. Anda harus secara eksplisit menentukan tipe pesan. Nilai yang valid: NORMAL, FIFO, DELAY. Jika Anda menghilangkan parameter ini, pembuatan topik akan gagal atau mengembalikan InternalError.
T: Apa yang harus saya lakukan jika pemanggilan API OnsTopicStatus mengembalikan error BIZ_RESOURCE_NOT_EXISTS?
Error ini biasanya berarti bahwa topik target tidak ada di instans yang ditentukan. Lakukan langkah-langkah berikut untuk pemecahan masalah:
-
Verifikasi bahwa ID instans dan nama topik yang digunakan dalam pemanggilan API sudah benar.
-
Pastikan bahwa topik target memang ada di instans yang ditentukan.
-
Perhatikan bahwa topik tidak dapat digunakan lintas instans.
T: Bagaimana cara mengkueri catatan operasi dan operator topik RocketMQ yang telah dihapus?
Masuk ke Konsol ActionTrail dan gunakan fitur event query untuk mencari nama event OnsTopicDelete atau ConsoleTopicDelete. Filter hasil berdasarkan wilayah yang sesuai untuk melihat catatan penghapusan dan informasi akun operator.
Log audit disimpan maksimal selama 90 hari. Catatan yang lebih tua dari 90 hari tidak dapat dikueri.
T: Apa yang harus saya lakukan jika muncul error ketidaksesuaian tipe pesan saat beberapa proyek memiliki produsen untuk topik FIFO yang sama?
Error ini tidak terkait dengan keberadaan beberapa proyek secara bersamaan. Penyebab utamanya adalah tipe pesan yang dikonfigurasi pada topik adalah FIFO (ordered messages), tetapi klien mengirim pesan yang diidentifikasi sebagai NORMAL (normal messages). Untuk mengatasi masalah ini:
-
Periksa definisi pesan dan metode pengiriman dalam kode Anda.
-
Pastikan Anda menggunakan API pengiriman pesan FIFO yang benar.
-
Verifikasi bahwa atribut pesan memenuhi persyaratan FIFO.
-
Pastikan bahwa tipe topik dan tipe pesan konsisten.
Dokumen terkait
Anda juga dapat mengelola topik dengan memanggil operasi API berikut: