2011-06-16 62 views
3

我必須開發一個應運行在主動/主動集羣上的.NET Windows服務應用程序。如何使用.NET在MSCS集羣節點之間進行協調/通信

Windows服務實例(羣集節點中的許多實例中的一個實例)應偵聽IBM Websphere MQ,並根據每個服務實例的負載將隊列項分配到所有羣集節點(包括分發器節點)。當主節點發生故障時,輔助節點上的另一個服務實例應接管分發任務。此外,分發者節點應該能夠在所有節點上控制Windows Service中的TaskScheduler實例的併發級別。爲此,我應該能夠在不具有數據庫表或其他隊列的情況下在羣集節點之間進行通信。

我使用Google搜索,發現有一個C/C++ Platform SDK可用。但是,是否有任何.NET API可用於檢查listenbeat並在集羣服務器內的節點之間執行內部通信?或者,如果您可以建議我實施這一方法的最佳方法將非常有幫助。謝謝。

回答

1

還有比Windows羣集這可能是更好的平臺,但既然你問有關Windows羣集這裏是我的看法:

的MSCS/WSFC集羣API並沒有真正提供內部進程通信的機制超越相當有限的集羣數據庫(實際上只是一個複製的註冊表項)。但是,您可以使用羣集API /工具來承載協調程序進程並提供高可用性。

最簡單的方法是爲您的協調器建立一個正常的Windows服務,然後使用內置的「Generic Service」羣集資源/應用程序類型來監控它。這將允許您將IP地址分配給協調器,以便在集羣后面跟隨它。請注意,移動協調器服務將具有破壞性,因此,如果節點崩潰,並且正在託管協調器,則在正常運行的節點上啓動時會出現停機。

我真的沒有看到任何理由讓處理代理羣集知道。只需在每個節點上將它們作爲服務運行,並讓協調器監視哪些在線。