SORU
27 EKİM 2011, PERŞEMBE


Performans ZeroMQ, RabbitMQ ve Apache Qpid arasında karşılaştırma

*, RabbitMQ *0 ve Apache Qpid performansını değerlendiriyorum çok yüksek performanslı bir mesaj başvurum için otobüs lazım. Performansını ölçmek için, mesajın bir sıra uygulamaları kullanarak ve aynı makine başka bir işlem çalışan bu 10.000 mesaj tüketmek için 10.000 iletileri söyle yayınlayan bir test programı çalıştırıyorum. O zaman ben ilk kez mesaj yayınlandı ve son alınan mesaj arasında fark kaydeder.

Aşağıda karşılaştırma için kullanılan ayarlar.

  1. RabbitMQ: "" yazın ve varsayılan yapılandırma ile bir sıra değişimi. ikiye bölme özelliğini kullandım Bu RabbitMQ C istemci Kütüphanesi kullandım.
  2. ZeroMQ: yayıncım publises tcp://localhost:port1 ZMQ_PUSH yuva, Benim komisyoncu dinler tcp://localhost:port1 ve yeniden gönderir mesajı tcp://localhost:noktası2 ve benim tüketici dinler tcp://localhost:port2 ZMQ_PULL yuva. Bir komisyoncu yerine eşler arası iletişim eşler ZeroMQ performans karşılaştırma broker kullanan diğer ileti sıra uygulama için adil yapmak için kullanıyorum.
  3. Qpid C mesaj komisyoncu: "" yazın ve varsayılan yapılandırma ile bir sıra değişimi. ikiye bölme özelliğini kullandım Bu Qpid C istemci Kütüphanesi kullandım.

Aşağıdaki performans sonucu:

  1. RabbitMQ: 10,000 mesajları almak için yaklaşık 1 saniye sürer.
  2. ZeroMQ: 15 milli saniye 10,000 mesajlarını alır.
  3. Qpid: 10,000 mesajları almak için yaklaşık 4 saniye sürer.

Soru:

  1. Kimseye mesaj kuyrukları arasında benzer performans karşılaştırma çalıştırmak? O zaman senin ile benim sonuçlar karşılaştırmak gibi.
  2. RabbitMQ Qpid daha iyi performans için ayarlama şansım var mı?

Not:

Testler iki ayrılmış işlemci ile sanal bir makine üzerinde yapıldı. Sonuç farklı bir donanım, ancak MQ ürünlerin göreli performans esas ilgilendiğim için değişebilir.

CEVAP
31 EKİM 2011, PAZARTESİ


RabbitMQ muhtemelen bu mesajları üzerinde kalıcılık yapıyor. Mesaj önceliği veya mesaj ısrar yapmak için başka bir seçeneği ayarlamanız gerekir bence. Performans 10x sonra da artıracak. AMQP bir komisyoncu ile ikinci en az 100 mesaj alamazsınız. OpenAMQ performans için 300K mesaj/saniye var.

AMQPolduhız için tasarlanmış (örneğin rota için iletileri açmak değil) ama ZeroMQ sadece daha iyi şekilde tasarlanmıştır. E. g. bir komisyoncu olmadan düğümleri bağlayarak bir hop kaldırır; daha iyi AMQP client yığınları daha I/O; daha agresif mesaj harmanlama yapar zaman uyumsuz yapar. Belki de zaman geçirdim bina ZeroMQ 60% performans ayarlama girdi. Çok zor bir işti. Daha hızlı kazara değil.

Yapmak isterdim ama çok meşgulüm, bir şey ZeroMQ üstüne AMQP gibi bir komisyoncu yeniden oluşturmaktır. İlk katman vardır: http://rfc.zeromq.org/spec:15. Bütün biraz taşıma ve anlambilim iki kat ayrılır ile RestMS gibi olur yığını. AMQP/0.9.1 (ve anlamsal birlikte) ama önemli ölçüde daha hızlı olarak aynı işlevselliği sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dcigs

    dcigs

    9 EYLÜL 2006
  • MandMEvangelists

    MandMEvangel

    28 Ocak 2008
  • MrOctopi

    MrOctopi

    6 Aralık 2010