2010-08-05 25 views
10

RabbitMQ varsayılan olarak kümelenmeyi destekler, ancak sıralar çoğaltılmaz ve oluşturuldukları düğümle ilişkilendirilir. Şimdi RabbitMQ'yi belgeledikleri DRBD çözümü dışında yüksek oranda kullanılabilir hale getirmenin yollarını arıyorum, çünkü aktif sunucunun aşağıya inmesini beklemek dışında hiçbir şey yapmadan tüm sunucuyu ayırmak için bir kaynak israfına benziyor.RabbitMQ kuyrukları nasıl yüklenir?

İki sıra olduğu bir kurulum yapmayı düşünüyorum. Bir ileti yayınlandığında, RabbitMQ kümesinin iletiyi iki sıradan birine (hangisi doluysa) göndermesini istiyorum. Yayıncının, sıradaki bir sıraya yayınlamaya çalıştığı ve yayıncının diğer sırayla tekrar deneyebileceği bir hata mesajı alacağını biliyorum, ancak bunun küme seviyesinde otomatik olarak yapılıp yapılamayacağını merak ediyorum. Bunu işlemek için istemci kodu yazmalıyım. Bu yapılabilir mi?

cevap

5

Alternate Exchanges'a bir göz atın.

Temel olarak sizin için ne istediniz, ancak sıralar yerine değişimler. Bu fikir, belirtilen bir alternatif exchange ile bir exchange'e yayınlamak olacaktır (bunu RabbitMQ istemcilerinin herhangi biriyle yapabilirsiniz). Eğer mesaj birinciye iletilebiliyorsa, olacaktır. Değilse (erişilemediği için veya ona bağlı sıralar olmadığından), alternatif kullanılır.

11

Son zamanlarda RabbitMQ aktif/etkin yerel destek ekledi. http://www.rabbitmq.com/ha.html

+0

Bu nasıl bir Alternatif Değişim sonra daha iyi olurdu? – guiomie

+0

@guiomie, Alternatif Değişim'de, eğer ana düğüm düşerse, tüm mesajlar kaybolur. Etkin/aktif yapılandırma, ana mesaja gönderildiğinde her mesajı yedek sunucuya kopyalayacaktır. –

4

Yüksek kullanılabilirlik aka "yansıtılmış" kuyrukları Tavşan HA için altın standarttır.