2014-02-11 125 views
0

我有一個非常普遍的問題,正在尋找一個正確的方向。說如果我想建立一個可以在多臺計算機上運行的程序,但希望每個程序與另一臺程序一起工作,我如何才能實現它們之間的通信層?通過雲進行應用程序間通信?

Ex。在芝加哥,伊利諾伊州 機A正在運行

機B在休斯頓

機C在聖迭戈運行CA

他們都服務於一個功能,但它的工作作爲一個團隊來讓它運行做得更快。

機器A打開並準備就緒,但需要檢查機器B和C是否準備就緒。 一旦所有機器都打開並相互檢查,然後他們開始。有一些類型的問題,他們都選擇了工作,並完成。因爲他們必須知道不要做另一臺電腦/線程已經在工作的工作。

我從來沒有處理過與計算機間的溝通,所以我真的不知道從哪裏開始。我正在考慮建立一個雲數據庫,他們可以在這裏檢查哪些機器正在做什麼,但看起來非常笨重。我相信有更好的方法來做到這一點。

回答

0

你想在這裏兩個不同的東西。你想要一個他們都定期檢查的發佈/訂閱或主題(http://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern)......如果有人沒有每隔數分鐘/秒檢查一次,他們就會停止工作(假設你想停下來, d必須審覈這一要求)。 您還需要一個簡單的消息隊列(http://en.wikipedia.org/wiki/Message_queue)來選擇工作。

我仍然仔細檢查你是否真的需要在開始工作之前讓它們全部運行。我不會在地理上將它們分開。如果他們只是一個管道中的階段,那就做好幾個隊列,當他們失去工作時他們就會入睡。這是基於消息的體系結構的優勢。將潛在的高滯後過程彼此解耦。嘗試並保持高度依賴的工作位於同一地點。

相關問題