2016-04-30 110 views
0

如果以下問題已得到解答,或者如果它不夠具體,我很抱歉,我對羣集應用程序的主題完全陌生,因此我正在尋找一個起點。如何羣集應用程序

我的目標是編寫一個軟件,它將執行各種不同的任務,主要是在遠程服務器上啓動其他軟件。該軟件需要計算當前需要這些其他軟件的實例數量,然後必須以某種方式告訴遠程服務器啓動新的實例。

雖然請求新實例的軟件不能不可用或崩潰,但這就是爲什麼我要將它分發到多個服務器上,然後協調這些實例同時工作並接管是否有任何實例崩潰,整個系統有一定的彈性。

應用程序本身應該可以通過REST API或通過TCP連接到達,而我更喜歡前者。如果你知道任何框架可以幫助我,我會很高興,如果你能讓我知道。

問候

PS:我已經看到,Spring提供了分佈式系統的一些支持,但我不能確定是否會真的幫助我的任務。

+0

IMO這個問題太廣泛了。有許多方法可以做到這一點,許多圖書館/框架選項等等(「集羣分析」,順便說一句,是完全不同的。在實際的編程問題出現之前,傳輸機制是完全不相關的。) –

回答

0

讓我將你的問題到部分

  1. 您希望您的應用程序做一些任務
  2. 你的應用是多用於高可用性的目的
  3. 你需要某種一種機制的你應用程序進行通信和傳遞消息
  4. 您希望您的應用程序可以訪問(REST API或TCP)最好是REST

那麼你的第一個3個問題的答案就是不能自己實現所有這些,而是​​使用分佈式緩存來達到你的目的。分佈式緩存或內存數據網格本質上是羣集的,併爲生產環境提供了高可用性。儘管如此,Scalabiilty對你來說還是有好處的。

您可以做的是部署儘可能多的應用程序,並使用緩存/ IMDG來提供高可用性和平臺/媒體,供您使用來協調操作。諸如寫入程序鎖之類的功能可以確保沒有兩個應用程序正在執行相同的任務或超過所需的任務。

最後,關於爲您的應用程序創建可訪問的REST API,只需將您的應用程序部署爲基於Web的應用程序,並使用下面的分佈式緩存。

披露:我爲Alachisoft工作。內存中分佈式緩存提供程序。我們有兩個產品,一個用於Linux,另一個用於.Windows,.NET和Java應用程序以及來自兩種語言的對象都是可以互換的。 TayzGrid和NCache的功能

相關問題