Topik ini menjelaskan definisi, hubungan model, atribut internal, batasan perilaku, dan catatan penggunaan pesan di ApsaraMQ for RocketMQ.
Definisi
Pesan adalah unit terkecil dalam transmisi data di ApsaraMQ for RocketMQ. Produsen mengemas muatan (payload) dan atribut tambahan dari data bisnis ke dalam sebuah pesan, lalu mengirimkannya ke broker ApsaraMQ for RocketMQ. Broker kemudian meneruskan pesan tersebut ke konsumen berdasarkan semantik yang relevan.
Model pesan ApsaraMQ for RocketMQ memiliki fitur-fitur berikut:
Imutabilitas
Pesan merupakan suatu event yang telah dihasilkan. Setelah dibuat, isi pesan tidak berubah meskipun melewati saluran transmisi. Pesan yang diterima konsumen bersifat read-only.
Persistensi
Secara default, ApsaraMQ for RocketMQ menyimpan pesan secara persisten dalam bentuk file pada broker ApsaraMQ for RocketMQ, sehingga memastikan pesan dapat dilacak dan dipulihkan jika terjadi kegagalan sistem.
Hubungan model
Gambar berikut menunjukkan posisi pesan dalam model domain ApsaraMQ for RocketMQ.
Pesan diinisialisasi oleh produsen dan dikirim ke broker ApsaraMQ for RocketMQ.
Pesan disimpan dalam antrian sesuai urutan penerimaannya oleh broker ApsaraMQ for RocketMQ.
Konsumen memperoleh dan mengonsumsi pesan dari broker ApsaraMQ for RocketMQ berdasarkan hubungan langganan mereka.
Atribut internal
Atribut sistem
Nama topik
Definisi: Nama topik tempat pesan tersebut berada. Nama topik bersifat unik secara global dalam satu kluster. Untuk informasi selengkapnya, lihat Topik.
Nilai: Diperoleh dari antarmuka SDK.
Nama Topik Lite
Definisi: Nama lite topik tempat pesan tersebut berada. Jika jenis topik adalah Lite, nama tersebut bersifat unik secara global dalam topik tersebut. Untuk informasi selengkapnya, lihat Model lite topik.
Nilai: Diperoleh dari antarmuka SDK.
Antrian pesan
Definisi: Antrian tempat pesan disimpan. Untuk informasi selengkapnya, lihat Antrian pesan.
Nilai: Ditentukan dan diisi oleh broker.
Offset pesan
Definisi: Posisi pesan dalam antriannya. Untuk informasi selengkapnya, lihat Kemajuan konsumsi.
Nilai: Ditentukan dan diisi oleh broker. Nilai yang valid: 0 hingga Long.Max.
ID pesan
Definisi: Pengidentifikasi unik suatu pesan. Setiap ID pesan bersifat unik secara global dalam kluster.
Nilai: Dihasilkan secara otomatis oleh klien produsen. ID pesan merupakan string 32 karakter yang terdiri dari angka dan huruf kapital.
(Opsional) Daftar kunci indeks
(Opsional) Tag filter
Definisi: Tag yang digunakan untuk memfilter pesan. Konsumen dapat memfilter pesan berdasarkan tag agar hanya menerima pesan yang memiliki tag tertentu.
Nilai: Ditentukan oleh klien produsen.
Batasan: Anda hanya dapat menentukan satu tag untuk satu pesan.
(Opsional) Waktu terjadwal
Definisi: Dalam skenario pengiriman terjadwal, ini adalah stempel waktu dalam milidetik saat pesan dikirimkan. Untuk informasi selengkapnya, lihat Pesan terjadwal dan tertunda.
Nilai: Ditentukan oleh produsen pesan.
Batasan:
Instans Edisi Standar dengan langganan dan bayar sesuai penggunaan, serta instans Serverless Edisi Standar dan Edisi Profesional: Maksimal 7 hari.
Instans Edisi Profesional dan Edisi Platinum dengan langganan dan bayar sesuai penggunaan: Maksimal 40 hari.
Untuk informasi selengkapnya, lihat Kuota dan batasan.
Waktu pengiriman pesan
Definisi: Stempel waktu lokal dalam milidetik pada klien produsen saat pesan dikirim.
Nilai: Diisi oleh klien produsen.
Catatan: Jam klien mungkin berbeda dengan jam broker. Waktu pengiriman pesan didasarkan pada jam klien.
Stempel waktu retensi pesan
Definisi: Stempel waktu lokal dalam milidetik pada broker ApsaraMQ for RocketMQ saat pesan disimpan.
Untuk pesan terjadwal dan pesan transaksional, waktu retensi pesan adalah waktu broker yang ditampilkan kepada konsumen saat pesan mulai berlaku.
Nilai: Diisi oleh broker.
Catatan: Jam klien mungkin berbeda dengan jam broker. Waktu retensi pesan didasarkan pada jam broker.
Jumlah percobaan ulang konsumsi
Definisi: Jumlah kali broker ApsaraMQ for RocketMQ mengirim ulang pesan setelah konsumsi gagal. Jumlah percobaan ulang bertambah 1 setelah setiap upaya percobaan ulang. Untuk informasi selengkapnya, lihat Percobaan ulang konsumsi.
Nilai: Ditandai oleh broker. Jumlah percobaan ulang adalah 0 untuk upaya konsumsi pertama. Setelah kegagalan konsumsi, jumlah percobaan ulang untuk upaya percobaan ulang pertama adalah 1.
Atribut kustom untuk pesan
Muatan pesan
Muatan pesan
Definisi: Muatan (payload) dari pesan bisnis.
Nilai: Diserialisasi dan dikodekan oleh produsen, lalu ditransmisikan sebagai larik byte biner.
Batasan: Untuk informasi selengkapnya, lihat Batasan parameter.
Batasan perilaku
Ukuran pesan tidak boleh melebihi batas atas. Jika ukuran pesan melebihi batas tersebut, pengiriman pesan akan gagal.
Batas maksimum ukuran pesan default adalah sebagai berikut:
Pesan normal dan pesan terurut: 4 MB
Pesan transaksional, pesan terjadwal, dan pesan tertunda: 64 KB
Catatan penggunaan
Transmisi berlebihan tidak disarankan untuk satu pesan tunggal.
Sebagai middleware perpesanan, ApsaraMQ for RocketMQ dirancang untuk mentransmisikan data event bisnis. Kami menyarankan Anda mengontrol ukuran data satu pesan. Pesan yang terlalu besar dapat meningkatkan beban pada lapisan transportasi jaringan dan tidak ideal untuk fitur-fitur seperti percobaan ulang dan pembentukan lalu lintas (traffic shaping).
Jika transmisi berlebihan diperlukan dalam lingkungan produksi, kami menyarankan Anda membagi pesan berdasarkan ukuran tetap atau menggunakan metode penyimpanan file.
Imutabilitas pesan
Pada broker ApsaraMQ for RocketMQ versi 5.x, pesan bersifat imutabel. Konsumen memperoleh tampilan pesan read-only.
Karena versi 3.x dan 4.x tidak memiliki batasan imutabilitas, Anda harus menginisialisasi ulang pesan jika ingin meneruskannya.