Antrian kelinci berada dalam memori dan karenanya akan jauh lebih cepat daripada mengimplementasikannya dalam database. Antrian pesan berdedikasi (baik) juga harus menyediakan fitur-fitur terkait antrian yang penting seperti pembatasan / kontrol aliran, dan kemampuan untuk memilih algoritme perutean yang berbeda, untuk menyebutkan pasangan (kelinci menyediakan ini dan banyak lagi). Bergantung pada ukuran proyek Anda, Anda mungkin juga ingin komponen lewat pesan terpisah dari database Anda, sehingga jika satu komponen mengalami beban berat, itu tidak perlu menghambat operasi yang lain.
Adapun masalah yang Anda sebutkan:
polling menjaga basis data dan berkinerja rendah : Menggunakan Rabbitmq, produsen dapat mendorong pembaruan kepada konsumen yang jauh lebih berkinerja daripada polling. Data hanya dikirim ke konsumen ketika perlu, menghilangkan kebutuhan untuk pemeriksaan yang boros.
mengunci meja -> lagi berkinerja rendah: Tidak ada meja untuk dikunci: P
jutaan baris tugas -> sekali lagi polling berkinerja rendah: Seperti disebutkan di atas, Rabbitmq akan beroperasi lebih cepat karena berada di RAM, dan menyediakan kontrol aliran. Jika perlu, ia juga dapat menggunakan disk untuk menyimpan sementara pesan jika kehabisan RAM. Setelah 2.0, Rabbit telah meningkatkan penggunaan RAM secara signifikan. Opsi pengelompokan juga tersedia.
Berkenaan dengan AMQP, saya akan mengatakan fitur yang sangat keren adalah "pertukaran", dan kemampuannya untuk merutekan ke pertukaran lain. Ini memberi Anda lebih banyak fleksibilitas dan memungkinkan Anda untuk membuat beragam tipologi perutean yang rumit yang bisa sangat berguna saat melakukan penskalaan. Untuk contoh yang baik, lihat:
(sumber: springsource.com )
dan: http://blog.springsource.org/2011/04/01/routing-topologies-for-performance-and-scalability-with-rabbitmq/
Akhirnya, dalam hal redis, ya, itu dapat digunakan sebagai pialang pesan, dan dapat melakukannya dengan baik. Namun, Rabbitmq memiliki lebih banyak fitur antrian pesan daripada redis, karena rabbitmq dibangun dari bawah ke atas untuk menjadi antrian pesan khusus tingkat perusahaan yang berfitur lengkap. Redis di sisi lain terutama diciptakan untuk menjadi toko-nilai kunci dalam memori (meskipun itu jauh lebih dari itu sekarang; bahkan disebut sebagai pisau tentara swiss). Meski demikian, saya sudah membaca / mendengar banyak orang yang mencapai hasil yang baik dengan Redis untuk proyek berukuran lebih kecil, tetapi belum banyak mendengar tentang hal itu dalam aplikasi yang lebih besar.
Berikut adalah contoh redis yang digunakan dalam implementasi obrolan polling panjang: http://eflorenzano.com/blog/2011/02/16/technology-behind-convore/