gpt4 book ai didi

design-patterns - 故障转移服务的挑战和最佳实践

转载 作者:行者123 更新时间:2023-12-04 07:18:09 24 4
gpt4 key购买 nike

有没有人知道运行 Windows 服务的任何既定最佳实践(在我的情况下,在 .NET 中开发),以便它们将(自动)正确地故障转移到另一台服务器,以实现高可用性目的?

我可以看到这样做的主要方法是在需要时启动辅助服务器(在这种情况下需要监视其他服务器),或者让两个服务一起运行(在这种情况下,他们需要同步他们的工作,以便他们不会尝试做同样的事情)。

此类问题是否有模式或模型?我知道确切的情况会产生很大的不同,但这似乎是一个相当普遍的问题。

谢谢

约翰

最佳答案

这就是对我有用的方法。

从基础架构的角度来看,您需要拥有 2 个集群的 Windows 服务器。 (2 个标准的 Windows Server 机器就可以了,集群部分可以安装和配置,大多数系统管理员应该知道如何做到这一点。)接下来,在集群的两个节点上安装您的服务,并将它们都关闭并设置为 MANUAL启动。接下来,将群集资源添加到您的服务的 Windows 群集管理器,该资源将管理在任何事件节点上打开和关闭您的服务。让 Windows 集群管理您的服务何时运行以及在哪个节点上运行。这是集群服务的简单部分。

从服务的角度来看,您将希望设计您的服务,使其尽可能无状态。这是一种蹩脚的建议,但这实际上取决于您的服务在做什么。在设计中,只需假设在代码生命周期中的某个时刻,它会在最糟糕的时间停止。节点 2 上的服务如何知道从节点 1 停止的地方取货?这是您需要设计的困难部分。根据您的服务正在做什么,您可以将上次完成的任务保留在 db 表或共享数据文件中。您也可以让它从头开始,并在采取行动之前仔细检查该任务是否已完成。

同样,这真的取决于服务需要完成什么。希望这可以帮助。

关于design-patterns - 故障转移服务的挑战和最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com