2012-04-28 26 views
0

我正在尋找一種有效的方法來處理在我的機器上運行的多個進程之間的多對多通信。多對多進程間通信,沒有中央集線器

我的要求是:

  • 沒有一箇中央樞紐(如沒有中央的過程,將消息路由)
  • 所有流程必須能夠將消息發送
  • 的全部工序均由通知時一個新的消息(來自任何其他進程)可用

我寧願有一個命名的基於管道的解決方案(例如,基於文件系統的解決方案)。

+0

爲什麼你有沒有中央樞紐的要求?你究竟想要做什麼?你爲什麼喜歡命名管道? – svick 2012-04-28 10:03:38

+0

兩者都是客戶的要求,實際上..缺乏中央樞紐的動機是增加了健壯性 – Andrea 2012-04-28 17:33:05

回答

2

您可以嘗試使用帶有對等連接綁定的Windows Communication Foundation(WCF)(NetPeerTcpBinding)。你基本上可以在它上面創建一個分散的消息總線。它基於TCP,但當它位於同一臺計算機上時,它的速度相當快,因此它適用於進程間通信(雖然技術上命名管道可以實現更快的吞吐量和更好的延遲,但僅適用於對性能非常敏感的應用程序)。

請參閱「Peer-to-Peer Programming with WCF」以獲取有關該主題的介紹。

+0

感謝您的回答!我一直在看文檔,看起來不錯。現在我需要實現我的自定義解析器(保持節點在本地機器內搜索並加速完整的網絡發現)。你有什麼資源嗎? – Andrea 2012-04-28 17:36:00

+0

@安德烈亞:對不起,沒有。我還沒有使用過NetPeerTecpBinding。 – 2012-04-28 21:14:44