我需要發送事件給多個客戶端。目前,我正在使用在WCF中使用命名管道實現的Pub-Sub \ Observer模式解決方案。發送事件給多個客戶端
如果我想將事件發送到Web服務器或Linux機器,我的解決方案將無法工作。我可以選擇更通用的解決方案嗎?
我需要發送事件給多個客戶端。目前,我正在使用在WCF中使用命名管道實現的Pub-Sub \ Observer模式解決方案。發送事件給多個客戶端
如果我想將事件發送到Web服務器或Linux機器,我的解決方案將無法工作。我可以選擇更通用的解決方案嗎?
我喜歡http://redis.io/爲我的pubsub需求,它是多平臺,許多語言支持它,很容易綁定,並且快速地獄。 Redis也是一個關鍵/值存儲引擎,並具有一些其他方便的數據存儲功能,因此您可能會發現其他用途,以便在Windows和Linux進程之間交換更多永久性數據。
如果您正在尋找更多性能,還有http://www.zeromq.org/這將爲您提供一個非常靈活和強大的消息結構層來處理,但對於大多數情況下它可能是矯枉過正。
我猜測消息服務器或企業服務總線是你所需要的,假設你願意離開WCF和命名管道。
消息服務器通常是相當無關大約平臺,有(其中hexist在另一個答案推薦)幾個可用的開放和自由的替代品,如RabbitMQ,Apache ActiveMQ和ZeroMQ。這些服務器(涉及到ZeroMQ的定義問題)提供了幾種使用消息進行集成的不同方式,包括pub/sub。
企業服務巴士通常比較複雜,但也比較靈活。他們通常支持消息轉換,複雜的路由甚至協調。在這裏也有幾種不同的開放和免費的替代品,例如Mule,Apache Synapse和Mass Transit。
我還沒有使用所有上述替代方法,但我認爲如果您只需要尋找消息傳遞,那麼RabbitMQ可以滿足您的需求,並且如果您還需要一些漂亮的服務總線功能,請添加MassTransit(用.NET編寫)。
我可以補充一下,「企業集成模式」一書是關於通用和健壯集成模式主題的極佳參考。 –
+1推薦ZeroMQ! :-) –