全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Pesan

更新时间:Nov 11, 2025

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

  1. Pesan diinisialisasi oleh produsen dan dikirim ke broker ApsaraMQ for RocketMQ.

  2. Pesan disimpan dalam antrian sesuai urutan penerimaannya oleh broker ApsaraMQ for RocketMQ.

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

Jenis pesan

  • Definisi: Jenis suatu pesan.

  • Nilai: Diperoleh dari antarmuka SDK. ApsaraMQ for RocketMQ mendukung jenis-jenis pesan 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 sekelompok pesan, sehingga memastikan pesan dikirimkan sesuai urutan 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, yang memastikan konsistensi transaksional antara pembaruan database dan panggilan pesan.

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

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

  • Definisi: Kunci indeks untuk suatu pesan. Anda dapat menetapkan kunci untuk mengkategorikan pesan dan mengambilnya dengan cepat.

  • Nilai: Ditentukan oleh klien produsen.

(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

Atribut kustom

  • Definisi: Informasi tambahan yang dapat dikustomisasi oleh produsen.

  • Nilai: Ditentukan oleh produsen pesan sebagai pasangan kunci-nilai berupa string.

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.

  • Contoh yang benar:

    Message m = Consumer.receive();
    Message m2= MessageBuilder.buildFrom(m);
    Producer.send(m2);
  • Contoh yang salah:

    Message m = Consumer.receive();
    m.update();
    Producer.send(m);