Tavşanların kuyrukları bellekte bulunur ve bu nedenle bunu bir veritabanına uygulamaktan çok daha hızlı olacaktır. (İyi) özel bir mesaj kuyruğu da kısma / akış kontrolü ve çiftleri adlandırmak için farklı yönlendirme algoritmaları seçme yeteneği gibi sıra ile ilişkili temel özellikleri sağlamalıdır (tavşan bunları ve daha fazlasını sağlar). Projenizin boyutuna bağlı olarak, mesaj geçirme bileşenini veritabanınızdan ayrı olarak da isteyebilirsiniz, böylece bir bileşen ağır yük yaşıyorsa, diğerinin çalışmasını engellemesi gerekmez.
Bahsettiğiniz sorunlara gelince:
Veritabanı Buzy ve düşük performans gösteren tutarak yoklama : RabbitMQ kullanarak, üretici olabilir itmek çok daha fazla ölçülebilir yoklama daha hangi tüketicilere güncellemeler. Veriler, yalnızca gerektiğinde tüketiciye gönderilir ve bu da savurgan kontrollere olan ihtiyacı ortadan kaldırır.
tablanın kilitlenmesi -> tekrar düşük performans: Kilitlenecek masa yok: P
milyonlarca görev sırası -> yine yoklama düşük performans gösterir: Yukarıda belirtildiği gibi, Rabbitmq RAM'de bulunduğu için daha hızlı çalışacak ve akış kontrolü sağlayacaktır. Gerekirse, RAM bittiğinde iletileri geçici olarak saklamak için diski de kullanabilir. 2.0'dan sonra, Tavşan RAM kullanımında önemli ölçüde iyileşti. Kümeleme seçenekleri de mevcuttur.
AMQP ile ilgili olarak, gerçekten harika bir özellik "değişim" ve diğer borsalara yönlendirme yeteneği olduğunu söyleyebilirim. Bu size daha fazla esneklik sağlar ve ölçekleme sırasında çok kullanışlı olabilecek çok çeşitli ayrıntılı yönlendirme tipolojileri oluşturmanıza olanak tanır. İyi bir örnek için bkz:
(kaynak: springsource.com )
ve: http://blog.springsource.org/2011/04/01/routing-topolojiler-for-performans-and-scalability-with-rabbitmq/
Son olarak, redis ile ilgili olarak, evet, bir mesaj komisyoncusu olarak kullanılabilir ve iyi yapabilir. Ancak, Rabbitmq, redis'ten daha fazla mesaj kuyruğu özelliğine sahiptir, çünkü rabbitmq baştan sona tam özellikli kurumsal düzeyde özel bir mesaj kuyruğu olacak şekilde inşa edilmiştir. Öte yandan Redis, öncelikle bellek içi bir anahtar / değer deposu olarak yaratıldı (şimdi bundan çok daha fazlasını yapıyor olsa da, İsviçre çakısı olarak da adlandırılır). Yine de, daha küçük boyutlu projeler için Redis ile iyi sonuçlar elde eden birçok insanı okudum / duydum, ancak daha büyük uygulamalarda pek fazla şey duymadım.
Uzun oylama sohbet uygulamasında kullanılan yeniden kullanım örnekleri: http://eflorenzano.com/blog/2011/02/16/technology-behind-convore/