用于主动/被动故障转移群集的.NET库
我想开发一个连接到某些输入源并处理它读取的消息的应用程序(原则上认为是BizTalk,但不是很重)。为了提高性能和可靠性,我希望能够实现服务的水平扩展,显然是通过利用共享存储(例如DB)来充当消息排队机制。
但是,无法水平扩展访问电子邮件或磁盘文件夹等资源的线程。从该输入源读取时,一次只能运行一个实例。 (进一步的消息处理业务逻辑当然可以驻留在多个节点上)。
这是主动/被动群集的理想选择。一个节点被认为是“活动”并且主动连接到“单实例”资源(例如电子邮件收件箱),而其他节点是“被动”。如果“活动”节点死亡,则其他“被动”节点在它们之间选择新的“活动”节点。
现在的问题是:那里有一个.NET库可以帮助人们实现通常的故障转移群集逻辑吗? (即,实现必要的心跳发送/检测,以及“活动”节点选举过程)。因为我不想重新发明轮子。
从我已经完成的研究中我可以看到:
BizTalk Server原生支持这个功能,但我没有使用BizTalk,因为它太沉重和昂贵(但我想模仿它的这个功能)
Windows Server支持故障转移群集(在某些高端版本中,如Windows Server 2008 Enterprise或Datacenter),但这又是一个昂贵的解决方案(因为每个节点都需要昂贵的许可证)
有很多关于故障转移算法应该如何工作的信息,但我无法在任何地方看到开源实现......(仅限于以高价销售的商业产品)
我知道它可能被认为是先进的和理想的功能,因此它的商业解决方案是昂贵的。这很好 - 如果没有开源实现或库,我会自己开发一个。我只是不想花费它已经存在的努力。
更新12/02/2011:找到SAForum(http://www.saforum.org/link/linkshow.asp?link_id=214720),这是一个发布开放服务可用性概念的开放规范的网站。还有OpenSAF(http://www.opensaf.org/Welcome-to-OpenSAF%E2%84%A2~151213~14944.htm),以及SAForum规范的开源C ++实现。看起来很全面,但非常沉重。我需要花费大量时间来完成规范和文档。它还涵盖了不仅仅是故障转移,为完全可扩展的分布式系统(通知,分布式事件,锁,集群管理等)提供规范......仍然没有任何.NET实现的迹象。
没有找到相关结果
已邀请:
1 个回复
锯康