ApsaraMQ for RocketMQ adalah layanan messaging terdistribusi yang dirancang untuk komunikasi asinkron antar aplikasi. Layanan ini beroperasi di beberapa pusat data dalam setiap Wilayah Alibaba Cloud, sehingga penerbitan dan langganan pesan tetap tersedia meskipun salah satu pusat data mengalami gangguan.
Kasus penggunaan umum meliputi:
Penguraian keterkaitan asinkron — Pisahkan layanan hulu dari pemrosesan hilir agar setiap komponen dapat diskalakan secara independen. Misalnya, sistem pesanan menerbitkan event penempatan pesanan, dan layanan hilir (pembayaran, inventaris, pengiriman) berlangganan serta memprosesnya sesuai jadwal masing-masing.
Pengiriman event yang andal — Kirimkan event pesanan, notifikasi pembayaran, atau pembaruan inventaris dengan jaminan at-least-once.
Eksekusi tugas terjadwal — Picu aksi hilir pada waktu tertentu atau setelah penundaan hingga 40 hari. Misalnya, kirimkan pengingat pembayaran 30 menit setelah pengguna menempatkan pesanan.
Transaksi terdistribusi — Koordinasikan operasi multi-layanan menggunakan pesan transaksional yang menyediakan konsistensi akhir. Penulisan database lokal dan pengiriman pesan akan sama-sama berhasil atau sama-sama dikembalikan (rollback).
Diagram berikut menunjukkan arsitektur fitur secara keseluruhan.

Jenis pesan
ApsaraMQ for RocketMQ menyediakan empat jenis pesan. Pilih jenis yang sesuai dengan kebutuhan pengiriman dan pengurutan Anda.
Pesan Normal
Pesan Normal adalah pesan yang tidak memiliki fitur khusus di ApsaraMQ for RocketMQ. Pesan ini berbeda dari pesan berfitur, seperti pesan terjadwal, pesan tertunda, pesan terurut, dan pesan transaksional.
Pesan terjadwal dan pesan tertunda
ApsaraMQ for RocketMQ memungkinkan produsen mengirimkan pesan pada titik waktu tertentu atau setelah periode waktu tertentu. Periode waktu maksimum adalah 40 hari.
Pesan terurut
ApsaraMQ for RocketMQ memungkinkan konsumen mengonsumsi pesan sesuai urutan pengirimannya.
Pesan transaksional
ApsaraMQ for RocketMQ menyediakan fitur transaksi terdistribusi yang mirip dengan X/Open XA untuk memastikan konsistensi transaksi akhir dari transaksi terdistribusi.
Pesan Normal
Pesan standar tanpa batasan pengurutan atau waktu. Gunakan pesan normal untuk komunikasi asinkron tujuan umum, seperti meneruskan data log, mendistribusikan notifikasi, atau menguraikan panggilan layanan mikro.
Untuk detail selengkapnya, lihat Pesan Normal.
Pesan terjadwal dan tertunda
Kirimkan pesan pada timestamp tertentu (terjadwal) atau setelah penundaan tertentu (tertunda). Jendela penjadwalan maksimum adalah 40 hari.
Skenario khas:
Kirimkan pengingat 30 menit setelah pengguna menempatkan pesanan.
Picu pekerjaan Batch pada waktu tertentu setiap hari.
Untuk detail selengkapnya, lihat Pesan terjadwal dan pesan tertunda.
Pesan terurut
Menjamin bahwa konsumen menerima pesan dalam urutan persis seperti saat diterbitkan. Gunakan pesan terurut ketika urutan penting—misalnya, memproses event perubahan database atau mengeksekusi alur kerja multi-langkah di mana setiap langkah bergantung pada langkah sebelumnya.
Untuk detail selengkapnya, lihat Pesan terurut.
Pesan transaksional
Mengimplementasikan transaksi terdistribusi berdasarkan model X/Open XA. Pesan transaksional menghubungkan operasi database lokal dengan pengiriman pesan—keduanya berhasil atau keduanya dikembalikan (rollback)—sehingga memberikan konsistensi akhir lintas layanan.
Untuk detail selengkapnya, lihat Pesan transaksional.
Perbandingan jenis pesan
Tabel berikut membandingkan mode transmisi dan performa antar jenis pesan.
| Jenis pesan | Transmisi sinkron andal | Transmisi asinkron andal | Transmisi satu arah | Transmisi multi-thread | Performa |
|---|---|---|---|---|---|
| Pesan Normal | Ya | Ya | Ya | Ya | Tertinggi |
| Pesan transaksional | Ya | Ya | Ya | Ya | Tertinggi |
| Pesan terjadwal dan tertunda | Ya | Ya | Ya | Ya | Tertinggi |
| Pesan terurut partisi | Ya | Tidak | Tidak | Tidak | Tinggi |
Pengiriman dan keandalan
Pengiriman at-least-once
Setiap pesan dikirimkan minimal sekali. Karena ApsaraMQ for RocketMQ menggunakan arsitektur terdistribusi, pengiriman duplikat dapat terjadi—misalnya, setelah restart konsumen atau gangguan jaringan. Rancang logika konsumen Anda agar bersifat idempoten sehingga memproses pesan yang sama dua kali tidak menyebabkan inkonsistensi data.
Untuk praktik terbaik, lihat Idempotensi pesan.
Retry pesan
Ketika konsumen gagal memproses pesan dan mengembalikan respons retry, ApsaraMQ for RocketMQ mengirim ulang pesan tersebut berdasarkan kebijakan retry yang dikonfigurasi.
Untuk detail selengkapnya, lihat Retry pesan.
Antrian surat mati (dead-letter queue)
Pesan yang telah habis semua upaya retry dipindahkan ke antrian surat mati. Periksa dan proses ulang pesan-pesan tersebut nanti tanpa memengaruhi alur pesan normal.
Untuk detail selengkapnya, lihat Antrian surat mati.
Filtering pesan
Tetapkan tag atau atribut ke pesan saat penerbitan, lalu atur kondisi filter pada kelompok konsumen. Broker mengevaluasi setiap pesan terhadap filter tersebut dan hanya mengirimkan pesan yang cocok, sehingga mengurangi lalu lintas jaringan dan beban pemrosesan yang tidak perlu.
Untuk detail selengkapnya, lihat Filtering pesan.
Model konsumsi
Pengelompokan konsumsi
Dalam mode pengelompokan, sebuah pesan hanya perlu diproses oleh satu konsumen dalam kelompok konsumen. Gunakan mode ini untuk beban kerja yang diseimbangkan (load-balanced), di mana setiap pesan hanya perlu ditangani sekali.
Konsumsi siaran
Dalam mode siaran, setiap konsumen dalam kelompok menerima salinan setiap pesan, sehingga menjamin setiap pesan dikonsumsi oleh setiap konsumen minimal sekali. Gunakan mode ini ketika semua instans memerlukan data yang sama, seperti invalidasi cache atau pembaruan konfigurasi.
Untuk detail kedua mode tersebut, lihat Pengelompokan konsumsi dan konsumsi siaran.
Reset offset konsumen
Atur ulang offset konsumen untuk melewati pesan yang terakumulasi (dengan memindahkan ke offset terbaru) atau untuk memproses ulang pesan historis (dengan memindahkan ke titik waktu sebelumnya).
Untuk detail selengkapnya, lihat Atur ulang offset konsumen.
Protokol akses
ApsaraMQ for RocketMQ mendukung dua protokol akses. Pilih berdasarkan kebutuhan performa dan lingkungan jaringan Anda.
| Protokol | Keunggulan | Bahasa yang didukung |
|---|---|---|
| TCP | Lebih khusus, andal, dan stabil dibandingkan akses berbasis HTTP. | Java, C, C++, .NET |
| HTTP | API RESTful yang mudah digunakan dan menyediakan kemampuan akses lintas jaringan yang kuat. | Java, C++, .NET, Go, Python, Node.js, PHP |
Untuk detail SDK TCP, lihat Catatan rilis SDK TCP. Untuk penggunaan HTTP, lihat Akses HTTP.
Anda dapat men-deploy aplikasi Anda pada instans Elastic Compute Service (ECS) Alibaba Cloud, infrastruktur Anda sendiri, perangkat seluler, atau perangkat IoT untuk terhubung ke ApsaraMQ for RocketMQ guna mengirim dan menerima pesan. Pengembang lokal juga dapat mengakses ApsaraMQ for RocketMQ melalui Internet.
Kemampuan observabilitas
Kueri pesan
Cari pesan tertentu berdasarkan ID pesan, kunci pesan, atau topik. Gunakan kueri pesan untuk memverifikasi status pengiriman atau men-debug masalah pemrosesan.
Untuk detail selengkapnya, lihat Kueri pesan.
Jejak pesan
Lacak jalur lengkap sebuah pesan dari produsen ke broker hingga ke konsumen. Jejak pesan membantu mengidentifikasi lokasi kegagalan atau penundaan dalam pipeline pengiriman.
Untuk detail selengkapnya, lihat Kueri jejak pesan.
Dasbor
Lihat metrik produksi, konsumsi, dan akumulasi berdasarkan instans, topik, atau kelompok. Dasbor menyediakan tampilan terpadu mengenai kesehatan messaging di seluruh lingkungan Anda.
Untuk detail selengkapnya, lihat Dasbor.
Pemantauan dan peringatan
Konfigurasikan peringatan pada metrik kelompok konsumen untuk mendeteksi keterlambatan atau kegagalan konsumsi. Terima notifikasi ketika akumulasi pesan melebihi ambang batas, sehingga masalah dapat ditangani sebelum memengaruhi layanan hilir.
Untuk detail selengkapnya, lihat Pemantauan dan peringatan.
Alat manajemen
Konsol web
Kelola topik, kelompok, dan instans melalui konsol berbasis browser. Konsol ini juga mendukung kueri pesan, pencarian jejak pesan, dan konfigurasi pemantauan.
Untuk detail selengkapnya, lihat Panduan pengguna.
OpenAPI
Integrasikan operasi manajemen ApsaraMQ for RocketMQ ke dalam tooling atau pipeline otomatisasi Anda sendiri menggunakan OpenAPI.
Untuk detail selengkapnya, lihat Referensi API.