ActiveMQ vs RabbitMQ vs ZeroMQ artıları ve eksileri ile herhangi bir deneyim duymak isteriz. Diğer ilginç mesaj kuyrukları hakkında bilgi de kabul edilir.
ActiveMQ vs RabbitMQ vs ZeroMQ artıları ve eksileri ile herhangi bir deneyim duymak isteriz. Diğer ilginç mesaj kuyrukları hakkında bilgi de kabul edilir.
Yanıtlar:
Edit: Benim ilk cevap AMQP güçlü bir odak vardı. Konu hakkında daha geniş bir görüş sunmak için yeniden yazmaya karar verdim.
Bu 3 mesajlaşma teknolojisinin dağıtılmış sistemler oluşturmak için farklı yaklaşımları vardır:
RabbitMQ , AMQP protokolünün (Apache Qpid ile birlikte) önde gelen uygulamalarından biridir. Bu nedenle, bir aracı mimarisi uygular, yani iletiler istemcilere gönderilmeden önce merkezi bir düğümde kuyruğa alınır. Yönlendirme, yük dengeleme veya kalıcı mesaj kuyruğu gibi gelişmiş senaryolar sadece birkaç kod satırında desteklendiğinden, bu yaklaşım RabbitMQ'nun kullanımını ve dağıtımını kolaylaştırır. Bununla birlikte, merkezi düğüm gecikme süresi eklediğinden ve mesaj zarfları oldukça büyük olduğundan, daha az ölçeklenebilir ve "daha yavaş" hale getirir.
ZeroMq , finans dünyasında bulabileceğiniz gibi yüksek verim / düşük gecikme senaryoları için özel olarak tasarlanmış çok hafif bir mesajlaşma sistemidir. Zmq birçok gelişmiş mesajlaşma senaryosunu destekler, ancak RabbitMQ'nun aksine, çerçevenin çeşitli parçalarını (örneğin, soketler ve cihazlar) birleştirerek bunların çoğunu kendiniz uygulamanız gerekir. Zmq çok esnektir ancak mesaj göndermekten daha karmaşık bir şey yapmadan önce kılavuzun 80 sayfasını veya daha fazlasını (Zmq kullanmasanız bile dağıtılmış sistem yazan herkes için okumayı öneririm) incelemeniz gerekir. 2 akran arasında.
ActiveMQ orta zeminde. Zmq gibi, hem broker hem de P2P topolojileri ile konuşlandırılabilir. RabbitMQ gibi, gelişmiş senaryoları uygulamak daha kolaydır, ancak genellikle ham performans pahasına. Bu mesajlaşma İsviçre çakısı :-).
Son olarak, tüm 3 ürün:
Neden Sparrow , Starling , Kestrel , Amazon SQS , Beanstalkd , Kafka , IronMQ'yu kaçırdınız ?
Message Queue Sunucuları
Mesaj kuyruğu sunucuları Erlang (RabbitMQ), C (beanstalkd), Ruby (Starling veya Sparrow), Scala (Kestrel, Kafka) veya Java (ActiveMQ) olarak mevcuttur. Kısa bir genel bakışı burada bulabilirsiniz
serçe
Sığırcık
Kerkenez
RabbitMQ
Apache ActiveMQ
Beanstalkd
Amazon SQS
Kafka
ZMQ
EagleMQ
IronMQ
Bunun bizim için yararlı olacağını umuyorum. kaynak
Bilmek istediğinizden daha fazla bilgi:
http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes
Pavlus'un yorumda eklediklerini ayrıntılarıyla anlatmak. Yukarıda belirtilen sayfa 2010 yılından sonra, yani bir tutam tuz ile okumak öldü. 3 yılda çok şey değiştirildi.
Bu gerçekten sizin kullanım durumunuza bağlıdır.
0MQ'nun ActiveMQ veya RabbitMQ ile karşılaştırılması adil değildir. ActiveMQ ve RabbitMQ, kurulum ve yönetim gerektiren Mesajlaşma Sistemleridir. ZeroMQ'dan çok daha fazlasını sunuyorlar. Gerçek kalıcı Kuyrukları, İşlem Desteği vb. Var.
ZeroMQ hafif bir mesaj odaklı soket uygulamasıdır. İşlem içi asenkron programlama için de uygundur. ZeroMQ üzerinde bir "Kurumsal Mesajlaşma Sistemi" çalıştırmak mümkündür, ancak kendi başınıza çok şey uygulamanız gerekir.
Yani:
ActiveMQ, RabbitMQ, Websphere MQ ve MSMQ "Kurumsal Mesaj Kuyrukları" dır.
ZeroMQ, mesaj yönelimli bir IPC Kütüphanesidir.
Burada RabbitMQ ve ActiveMQ arasında bir karşılaştırma var . Kutudan çıktığı gibi, ActiveMQ mesaj iletimini garanti edecek şekilde yapılandırılmıştır - bu da daha az güvenilir mesajlaşma sistemlerine kıyasla izlenimi yavaşlatabilir. İsterseniz performans yapılandırmasını her zaman değiştirebilir ve en azından diğer mesajlaşma sistemleri kadar iyi performans elde edebilirsiniz. En azından bu seçeneğin var. Forumlar ve ölçeklendirme, performans ve yüksek kullanılabilirlik için yapılandırma için ActiveMQ SSS hakkında birçok bilgi var. Ayrıca, STMP gibi diğer kablo formatlarıyla birlikte, spesifikasyon tamamlandığında ActiveMQ AMQP 1.0'ı destekleyecektir.
ActiveMQ için bir başka artı da bir Apache projesidir, bu yüzden geliştirici topluluğunda çeşitlilik vardır - ve bir şirkete bağlı değildir.
ActiveMQ veya RabbitMQ kullanmadım ama ZeroMQ kullandım. ZeroMQ ve ActiveMQ vb. Arasında gördüğüm en büyük fark, 0MQ'nun aracısız ve mesaj teslimi için güvenilirliğe sahip olmamasıdır. Birçok mesajlaşma desenini, nakliyeyi, platformu ve dil bağlantısını destekleyen kullanımı kolay bir mesajlaşma API'si arıyorsanız, 0MQ kesinlikle bir göz atmaya değer. Tam bir mesajlaşma platformu arıyorsanız 0MQ faturaya uymayabilir.
0MQ'nun nasıl kullanılabileceğine dair çok sayıda örnek için www.zeromq.org/docs:cookbook adresine bakın .
Ben başarılı bir elektrik kullanımını izleme uygulamasında mesaj geçişine 0MQ kullanarak (bkz http://rwscott.co.uk/2010/06/14/currentcost-envi-cc128-part-1/ )
Ben zeroMQ kullanıyorum. Basit bir mesaj geçiş sistemi istedim ve bir komisyoncunun komplikasyonuna ihtiyacım yok. Ayrıca büyük bir Java yönelimli kurumsal sistem istemiyorum.
Hızlı, basit bir sistem istiyorsanız ve birden fazla dili desteklemeniz gerekiyorsa (C ve .net kullanıyorum) o zaman 0MQ'ya bakmanızı tavsiye ederim.
ActiveMQ hakkında sadece 2 sent ekleyebilirim, ancak bu en popülerlerden biri olduğu için:
Yazmak istediğiniz dil önemli olabilir. ActiveMQ'nun çoğu için bir istemcisi olmasına rağmen, C # uygulaması Java Kitaplığı ile karşılaştırıldığında tam değildir.
Bu, bazı temel işlevlerin kesintili olduğu anlamına gelir (bazı durumlarda başarısız ... başarısızlık protokolü, yeniden dağıtım desteği yok) ve diğerleri sadece orada değil. .NET, proje için o kadar önemli görünmediğinden, geliştirme oldukça yavaştır ve herhangi bir yayın planı yoktur. Gövde genellikle kırılır, bu yüzden bunu düşünürseniz, bir şeyler yapmak istiyorsanız projeye katkıda bulunmayı düşünebilirsiniz.
Sonra bir sürü güzel özelliğe sahip ActiveMQ var ama bazı çok garip sorunlar da var. Stabilite nedeniyle activemq'in Fuse (Progress) sürümünü kullanıyoruz, ancak o zaman bile akılda tutmak istediğiniz birkaç tuhaf "hata" var:
Her şeyden önce, sorunlarıyla yaşayabiliyorsanız, oldukça güzel bir ürün:
A) .NET kullanırken aktif olarak yer almaktan korkmayın
B) java ;-)
Http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/ adresinde verilen RabbitMQ ActiveMQ ve QPID'in özelliklerinin ve performanslarının bir karşılaştırması vardır.
Şahsen yukarıdaki üçünün hepsini denedim. RabbitMQ bana göre en iyi performans, ancak yük devretme ve kurtarma seçeneklerine sahip değil. ActiveMQ en çok özelliğe sahiptir, ancak daha yavaştır.
Güncelleme: HornetQ da bakabileceğiniz bir seçenek, JMS Şikayeti, JMS tabanlı bir çözüm arıyorsanız ActiveMQ'dan daha iyi bir seçenek.
AMQP, Qpid ve ZeroMQ ile ilgili ilk deneyimimi burada yazdım: http://ron.shoutboot.com/2010/09/25/is-ampq-for-you/
Benim öznel görüşüm AMQP gerçekten kalıcı mesajlaşma tesislerine ihtiyacınız varsa ve komisyoncu bir darboğaz olabilir çok endişe değil iyi olduğunu. Ayrıca, C ++ istemcisi şu anda AMQP için eksik (Qpid desteğimi kazanmadı; ancak ActiveMQ istemcisinden emin değilim), ancak belki de devam ediyor. ZeroMQ başka türlü olabilir.
Bu blog yazısının yorumlarında, Twitter'ın kendi mesaj kuyruğunu yazması hakkında ilginç olabilecek bazı tartışmalar var .
Steve, ActiveMQ, RabbitMQ, vb. Gibi kapsamlı yük ve stres testleri yaptı. ActiveMQ aslında oldukça yavaş (Kestrel'den çok daha yavaş), RabbitMQ sürekli olarak çok fazla üretici ve çok az tüketici ile çöküyor.
Muhtemelen başlangıçta Twitter benzeri bir yükünüz olmayacak :)
Çok az uygulama ActiveMQ kadar ayarlama yapılandırmasına sahiptir. ActiveMQ'yu öne çıkaran bazı özellikler şunlardır:
Yapılandırılabilir Önceden getirme boyutu. Ayarlanabilir diş açma. Yapılandırılabilir yük devretme. Üreticilere yapılandırılabilir idari bildirim. ... ayrıntılar:
Abie, hepsi sizin kullanım durumunuza geliyor. Bir başkasının kullanım durumunun hesabına güvenmek yerine, kullanım durumunuzu rabbitmq-tartışma listesine göndermekten çekinmeyin. Twitter sormak size bazı yanıtlar alacak. En iyi dileklerimle, alexis
ZeroMQ aka 0MQ hakkında, zaten bildiğiniz gibi, size saniyede en fazla mesaj alacak olanı (son kontrol ettiğimde ref sunucusunda saniyede yaklaşık 4 milyon idi), ancak zaten bildiğiniz gibi, dokümantasyon mevcut değil. Nasıl kullanılacağına bakılmaksızın, sunucuları nasıl başlatacağınızı bulmakta zorlanacaksınız. Sanırım kısmen bu yüzden kimse henüz 0MQ hakkında katkıda bulunmadı.
İyi eğlenceler!
Ticari uygulamalarla da ilgileniyorsanız, Nirvana'ya kanallarımdan bakmalısınız .
Nirvana, Finansal Hizmetler sektöründe büyük ölçekli düşük gecikmeli ticaret ve fiyat dağıtım platformları için yoğun olarak kullanılmaktadır.
Kurumsal, web ve mobil etki alanlarında çok çeşitli istemci programlama dilleri için destek vardır.
Kümeleme yetenekleri son derece gelişmiş ve şeffaf HA veya yük dengeleme sizin için önemliyse bir göz atmaya değer.
Nirvana indirmek için ücretsizdir.