2013-03-03 34 views
2

服務器A和B位於兩個不同的物理位置 - 每個位置都有一個RabbitMQ實例。連接地點的網絡非常糟糕,完全不可靠。應用程序的具體要求是放置在服務器A隊列上的消息在服務器B上鏡像,反之亦然。RabbitMQ通過不可靠網絡的跨數據中心消息傳遞

不可靠的網絡似乎在郵件傳遞的可靠性方面造成了巨大的破壞 - 鏟子插件是我目前正在使用的,但它似乎在奇怪的場合丟棄郵件。我只能假設消息在被正確傳送到目標隊列之前正在從源隊列中消失,但日誌中沒有任何內容表明這是發生了什麼

是否有更好的方法來實現此隊列鏡像在這樣一個不可靠的網絡上?我已經考慮完全放棄隊列,轉而採用更加同步的方法(也許是http api),但是如果沒有理解是否有更好的方法在片狀網絡連接上實現鏡像隊列或者如何實現鏡像隊列我可以更準確地確定問題所在。

+0

我很驚訝地聽到鏟子插件正在丟棄消息,或者你可以看看聯邦插件:http://www.rabbitmq.com/federation.html – kzhen 2013-03-03 22:40:03

+0

shovel config會有幫助 – Karsten 2013-03-07 22:21:04

回答

1

鏟的設計考慮到了失敗。確保ack_mode剷鬥配置設置爲on_confirm。這種方式消息不會從源代理消失,直到完全確認爲傳遞到目標代理。看到ref