2011-02-11 28 views
2

我想了解更多關於編程消息應用程序和使用消息隊列。像qpid,亞馬遜隊列等東西你能指點我的一些應用程序(最好是C++,如果可能的話,開源),所以我可以瞭解更多。使用消息隊列的應用程序的好例子

另外,你能告訴我一般的指導方針,可以用來決定是否不使用消息隊列。我對這種僅僅爲了「冷靜」的因素而感到有趣,但我認爲這對未來可能是有益的。

回答

5

RabbitMQ是我最熟悉的Message Queue。它像qpid一樣實現AMQP。 AMQP是一種廣泛接受的線路協議,並且有許多客戶端庫可用,例如C++,Java,Ruby,.Net,Python等。

如果分佈式服務是片狀的並且不總是在線,那麼可以使用岩石固定的消息隊列來保存消息。這些消息隨後在分佈式服務恢復時發佈。

如果分佈式服務的延遲時間較短,並且客戶端服務生成的分佈式服務所能處理的請求量更多,則隊列將保留這些消息,直到分佈式服務可以處理它們,同時允許客戶端進行不受限制的處理。

如果需要將請求分發到多個服務,交換機將會處理重要的細節,例如將消息一次傳遞給每個分佈式服務一次。

當您需要對遠程服務進行同步調用時,我不推薦使用消息隊列。消息隊列本質上是異步的。

+0

非常好的解釋。謝謝。 – Rodney 2011-02-11 21:57:42

0

不是編程語言,但是當您使用消息隊列編程時,它是一個有用的工具,它是Promela/Spin。它旨在識別可能由分佈式系統產生的死鎖或其他併發問題。當然,看看它可以幫助識別的問題會讓你對你可能遇到的問題有所瞭解。

0

不確定它寫的是什麼,但Eclipse IDE似乎有某種消息隊列系統。每當它忙(閱讀,滯後...很多),你會看到一條消息,說「在用戶操作之前執行空白」。 Eclipse是開源的。我不知道在哪裏下載源代碼..但我相信它隨安裝 - http://www.eclipse.org/downloads/。最新版本是3.6(helios)