如何使用.NET在MSCS群集节点之间进行协调/通信

时间:2011-06-16 15:13:41

标签: .net windows-services cluster-computing ibm-mq

我必须开发一个应该在主动/主动群集上运行的.NET Windows服务应用程序。

Windows服务实例(群集节点中的许多实例中的一个实例)应该侦听IBM Websphere MQ,并根据每个服务实例上的负载将队列项分发到所有群集节点(包括分发服务器节点)。当主节点发生故障时,辅助节点上的另一个服务实例应该接管分发任务。此外,分发服务器节点应该能够在所有节点上控制Windows服务中TaskScheduler实例的并发级别。为此,我应该能够在没有DB表或其他队列的情况下在集群节点之间进行通信。

我用Google搜索,发现有C/C++ Platform SDK可用。但是,是否有任何.NET API可用于检查听力和在群集服务器内的节点之间执行内部通信?或者,如果您可以建议我实施这一最佳方法,那将非常有帮助。感谢。

1 个答案:

答案 0 :(得分:1)

对于这种情况,可能有比Windows群集更好的平台,但是因为你在这里询问了有关Windows群集的问题:

MSCS / WSFC集群API实际上并没有为相当有限的集群数据库(实际上只是一个复制的注册表项)之外的进程内通信提供机制。但您可以使用群集API /工具来托管协调程序进程并提供高可用性。

最简单的方法是为协调器构建一个普通的Windows服务,然后使用内置的“通用服务”群集资源/应用程序类型来监控它。这将允许您为协调器分配IP地址,协调器将在群集周围跟随它。请注意,移动协调器服务将具有破坏性,因此如果节点崩溃承载协调器,则在幸存节点上启动时会出现停机。

我真的没有理由让处理代理群集感知到。只需在每个节点上将它们作为服务运行,然后让协调员监控哪些是在线的。