我正在开发Windows服务(.NET,C#)。其中一个非功能性要求是确保此Windows服务的高可用性。我知道在故障转移群集上安装此Windows服务将使其具有高可用性。要在群集上安装此服务,是否需要在此服务中编写任何特定代码?我听说过群集感知服务,但是我没有遇到任何解释如何开发群集感知Windows服务的文章。是否真的需要将Windows服务安装到群集上?
答案 0 :(得分:2)
Microsoft故障转移群集服务可实现这种高可用性,而无需您将复杂的心跳编码到服务中。故障转移群集服务将为您进行管理。
的更多信息对于Windows服务,除了writing your windows service之外,您通常不需要做其他事情。就是说,如果您需要从代码中了解环境,使用本地资源(例如IP地址/磁盘等),则可能需要在代码中使用Failover Cluster API。但是,我见过的大多数简单服务都没有无需修改即可调用集群API,并且可以直接安装到配置了正确资源组的,配置正确的故障转移集群中。
查看Microsoft关于writing Cluster Aware applications的指南。
访问Creating a failover cluster以获得帮助和服务,群集角色类型应为“通用服务”。
干杯, cbuzzsaw
答案 1 :(得分:1)
首先,这个问题非常广泛,但这是我的两分钱。
这取决于服务。
如果同时执行多个服务实例并没有打破它的目的,那么你就不需要做任何事情,如果只有一个服务被执行那么你必须协调这些服务实例(udp广播消息可能?)只有一个活动,并且在活动的实例停止启动另一个实例。
群集只是一堆具有相同目的的机器(是的,有很多东西,但对于这种情况,比较就足够了),所以想想就好像你在本地网络上运行该服务一样在多台机器中。