ApsaraMQ for RabbitMQ adalah layanan pesan yang menerapkan protokol AMQP 0-9-1 dan dibangun di atas arsitektur penyimpanan terdistribusi berbasis ketersediaan tinggi (HA). Layanan ini kompatibel dengan klien RabbitMQ open source. Dibandingkan dengan RabbitMQ open source, ApsaraMQ for RabbitMQ mengatasi masalah stabilitas umum seperti akumulasi pesan dan split-brain, serta menawarkan keunggulan layanan pesan berbasis cloud, termasuk konkurensi tinggi, penerapan terdistribusi, dan skalabilitas fleksibel. Topik ini membandingkan ApsaraMQ for RabbitMQ dengan RabbitMQ open source dari segi fitur, stabilitas, kinerja, exchange, dan antrian untuk membantu Anda memahami kemampuan ApsaraMQ for RabbitMQ.
Untuk informasi selengkapnya tentang ApsaraMQ for RabbitMQ, lihat Manfaat.
Fitur
Item | ApsaraMQ for RabbitMQ | RabbitMQ Open Source |
Protokol | AMQP 0-9-1 | AMQP 0-9-1, AMQP 1.0, STOMP, MQTT, HTTP(S), dan WebSocket. |
Dukungan SDK klien | Mendukung SDK open source untuk semua bahasa dan versi. | SDK open source. |
Pesan terjadwal | Menyediakan presisi tingkat detik. Kompatibel dengan plugin x-delayed-message dan metode time to live (TTL). Untuk informasi selengkapnya, lihat Pesan tertunda. | Diimplementasikan menggunakan plugin atau metode kedaluwarsa TTL pesan dan transfer. |
Pesan transaksional | Tidak didukung. | Didukung. |
Pesan terurut | Didukung. Untuk informasi selengkapnya, lihat Konsumsi pesan secara terurut. | Didukung. |
Prioritas pesan | Hanya didukung oleh instans khusus. | Didukung. |
Mekanisme pengiriman ulang pesan | Pesan dikirim ulang jika tidak diakui dalam periode tertentu. Untuk informasi selengkapnya tentang periode waktu habis dan jumlah pengiriman ulang, lihat Kebijakan pengiriman ulang. | Tidak menyediakan mekanisme pengiriman ulang pesan. Pesan bermasalah tidak dapat dilewati selama konsumsi, sehingga mencegah pemrosesan pesan baru. Hal ini dapat menyebabkan akumulasi pesan, masalah memori, dan gangguan layanan. |
Nama pengguna dan kata sandi |
| Nama pengguna dan kata sandi kustom. |
Izin |
| Pengelolaan izin open source. |
Kemampuan observasi: Dasbor |
Untuk informasi lebih lanjut, lihat Dasbor. | Mendukung dua solusi berikut:
|
Kemampuan observasi: Jejak pesan |
Untuk informasi selengkapnya, lihat Jejak pesan. | Informasi jejak pesan disimpan dalam file log berbasis teks di server. Hal ini membuat kueri dan identifikasi masalah menjadi tidak efisien. |
Layanan dan performa
Item | ApsaraMQ for RabbitMQ | RabbitMQ Open Source |
Jumlah maksimum transaksi per detik (TPS) kluster | Tidak ada batas atas. ApsaraMQ for RabbitMQ menggunakan penerapan kluster terdistribusi tanpa master. Kluster dapat diskalakan secara horizontal ke luar atau ke dalam. | Memiliki batas atas. Penskalaan keluar bergantung pada peningkatan spesifikasi perangkat, yang terbatas. |
TPS maksimum untuk satu antrian | Tidak ada batas atas. ApsaraMQ for RabbitMQ mendukung skalabilitas horizontal untuk satu antrian. Tidak memiliki batasan kinerja atau kapasitas terkait konkurensi. | Memiliki batas atas. Kinerja satu antrian dibatasi oleh kinerja satu node tunggal. |
Koneksi | Tidak ada batas atas. Jumlah koneksi yang dapat ditangani oleh instans ApsaraMQ for RabbitMQ meningkat seiring penskalaan kluster. Kinerja tidak terpengaruh oleh peningkatan jumlah koneksi. | Memiliki batas atas. Jumlah koneksi untuk satu mesin dibatasi oleh kinerjanya dan tidak dapat diskalakan keluar. |
Pesan terjadwal | Presisi tingkat detik, kinerja tinggi, dan siap pakai. | Penggunaannya rumit. |
Ketersediaan layanan dan keandalan data |
| Diimplementasikan menggunakan antrian mirror atau antrian quorum. Implementasi ini rentan terhadap masalah split-brain. |
Kapasitas akumulasi pesan | Mempertahankan kinerja tinggi meskipun terjadi akumulasi pesan dalam jumlah besar. Operasi normal kluster tidak terpengaruh. | Akumulasi pesan dalam jumlah besar dapat dengan mudah menyebabkan masalah memori, yang dapat mengakibatkan gangguan layanan. |
Elastisitas |
| Kapasitas satu mesin merupakan batas atas untuk kapasitas konkurensi kluster. Penskalaan keluar mengharuskan Anda meningkatkan spesifikasi mesin atau membagi kluster. |
Sistem inspeksi | Mendeteksi dan memperbaiki masalah seperti deadlock dan gangguan secara otomatis. | Tidak tersedia. |
Pertukaran dan antrian
Tabel 1. Exchange
Item | ApsaraMQ for RabbitMQ | RabbitMQ sumber terbuka |
Tipe pertukaran | Mendukung tipe direct, fanout, headers, topic, x-delayed-message, dan x-consistent-hash. | Mendukung tipe direct, fanout, headers, topic, x-delayed-message, dan x-consistent-hash. |
Persistensi | Mendukung konfigurasi persisten dan non-persisten. | Mendukung konfigurasi persisten dan non-persisten. |
Penghapusan otomatis | Didukung. | Didukung. |
Internal | Didukung. | Didukung. |
Pertukaran alternatif | Didukung. | Didukung. |
Pertukaran hash konsisten | Didukung. | Didukung. |
Tabel 2. Antrian
Item | ApsaraMQ for RabbitMQ | RabbitMQ Open Source |
Tipe antrian | Tidak perlu konfigurasi. Ini adalah kluster HA terdistribusi. | Diperlukan konfigurasi.
|
Node | Tidak perlu konfigurasi. Layanan ini bebas operasi dan pemeliharaan (O&M). | Diperlukan konfigurasi. Anda dapat memilih node. |
Kebijakan percobaan ulang | Pesan dikirim ulang jika terjadi waktu habis konsumsi. Untuk informasi selengkapnya tentang kebijakan pengiriman ulang, lihat Kebijakan pengiriman ulang. | Tidak tersedia kebijakan pengiriman ulang berdasarkan waktu habis. |
Persistensi | Mendukung konfigurasi persisten dan non-persisten. | Mendukung konfigurasi persisten dan non-persisten. |
Panjang maksimum | Tidak perlu konfigurasi. Mendukung akumulasi pesan dalam jumlah besar. | Diperlukan konfigurasi untuk mencegah masalah memori dan gangguan akibat akumulasi pesan berlebihan. |
Panjang maksimum byte | ||
Panjang maksimum dalam memori | ||
Byte maksimum dalam memori | ||
Batas pengiriman | Tidak perlu konfigurasi. Ini adalah bidang statis dengan nilai default 16. Untuk informasi selengkapnya tentang mekanisme pengiriman ulang pesan, lihat Kebijakan pengiriman ulang. | Diperlukan konfigurasi. |
Pertukaran surat mati | Didukung. | Didukung. |
Kunci rute surat mati | Didukung. | Didukung. |
Konsumen aktif tunggal | Didukung. Untuk informasi selengkapnya, lihat Konsumsi pesan secara terurut. | Didukung. |