任何Windows服务的高可用性模式?

时间:2009-12-15 14:55:34

标签: windows service design-patterns high-availability

场合

我有一个Windows服务,我想高度可用。

我有两个非集群服务器(Windows server 2003标准版)。

问题是:

我有什么选择让我的服务以自动方式高度可用?

我可以想到非对称主从选项,其中包括保持服务在两台机器之间运行,并且它们之间具有通信心跳,因此一个充当主设备和只要主设备没有响应,从设备就会自动接管。

你知道其他任何实现方法吗?

注意:请不要指向this answer,我不会/不会/不能拥有群集。

2 个答案:

答案 0 :(得分:1)

如果您的Windows服务正在托管web / wcf服务,则可以将客户端配置为具有主服务URL和辅助服务URL。然后,您可以修改客户端连接逻辑,以便在与主服务的连接失败时使用辅助服务。

您可以通过添加将执行上述逻辑的路由器服务来透明地执行此操作。基本上代理它所连接的服务的操作。但这增加了另一个故障点,即路由器服务。

最简单的想法是确保在Windows服务上设置服务恢复选项。像这样http://code.google.com/p/daemoniq/wiki/WindowsServiceRecoveryOptions

HTH

答案 1 :(得分:0)

我建议您查看MS Patterns and Practices网站,在那里您可以找到有关此主题的建议(例如http://msdn.microsoft.com/en-us/library/ms998414.aspx