2012-04-16 65 views
0

我有用Node.js編寫的服務和用Ruby編寫的工作者的多個前端。現在的問題是如何讓那些溝通?我需要維護動態的工作人員池來處理負載(當負載上升時產生更多的工作人員),並且消息相當大〜2-3M,因爲我正在通過Node.js前端向用戶上傳的工作人員發送圖像。因爲我想要很好的縮放,所以我想到了一些排隊解決方案,但是我沒有找到任何現有解決方案(或誤解指南),它們將提供:解決方案/架構:隊列還是其他?

  1. 回退機制。我迄今發現的解決方案有單一的故障點 - 消息代理,並且沒有辦法提供回退。
  2. 序列化。所以當代理失敗時,任務不會丟失。
  3. 傳遞大消息的能力。
  4. Ruby和Node.js的簡單API
  5. 一些用於跟蹤隊列大小的API,以便我可以重新排列工作池。
  6. 重量輕。

也許我的做法是錯誤的?也許我不應該使用隊列,但有其他方式?或者有一些符合上述要求的排隊解決方案?

+1

當你說排隊到你的意思是沿着兔子MQ線的東西? – Adrian 2012-04-16 17:17:24

+0

我見過兔子MQ,看起來似乎很適合,但我沒有erlang,也沒有包裝在這麼難以部署的軟件包中。另外,從我一直在閱讀的內容來看,當你需要傳遞大量消息時,它會增加很多延遲。 – Daniel 2012-04-16 18:17:15

回答

1

有趣的文章,我把ZeroMQ隊列的解決方案。非常快速,健壯和輕量級的實現。不得不寫自己的經紀人,但那是唯一的缺點這個解決方案。