2011-09-21 49 views
3

我正在尋找消息代理API以將其與c​​#一起使用。消息經紀人消費者/生產者在客戶端關閉時重新分配?

通常事情很簡單。我有一臺服務器知道要做什麼工作,我有一些客戶需要這些工作。

而且這裏有特殊的要求,我有:

  • 如果客戶端找到了一份工作,但無法在特定時間內回答,那麼其他客戶端應該做的工作。
  • 多個隊列和優先
  • 如果可能的話,需要有大消息隊列工作(這樣我可以只加載的所有作業有時一個月,而忘記了它
  • 安全的通信將是一件好事。
  • 對於從C#的經紀人談API。多少工作就完成了什麼仍然是辦? 刪除一些工作...
  • 如果另一個經紀人提供的複製將是一件好事。
  • 經紀人需要在運行windows

什麼是不是一個問題:

  • 低延遲(有當消息需要幾分鐘沒問題)

你知不知道這樣的消息代理是免費的嗎?

回答

1

RabbitMQ和其他幾個AMQP實現滿足大部分(如果不是全部)這些要求。

如果消費者死了,沒有發送確認的AMQP代理 將它重新傳遞到其他消費者或,如果沒有可用的 時間,代理將至少等到一個消費者在嘗試重新傳遞之前爲同一隊列註冊 。

+0

謝謝你的回答。RabbitMQ不支持優先級。我現在會嘗試ActiveMQ。 – Chris

+0

可以使用多個隊列來近似優先級。有關如何執行此操作的說明,請參閱http://dougbarth.github.com/2011/07/01/approximating-priority-with-rabbitmq.html –