我知道 Network Load Balancing
和 Failover Clustering
我们可以制作被动服务高度可用。但是 呢?活跃的应用程序 ?
示例:我的一个应用程序以固定的时间间隔从外部资源中检索一些内容。我想象过以下场景:
当我考虑解决方案#3 时,我想知道什么应该是公共(public)资源。我曾想过在数据库中创建一个表,我们可以使用它来获取全局锁。
这是最好的解决方案吗?人们通常如何做到这一点?
顺便说一句,它是在 Windows Server 2008 上运行的 C# .NET WCF 应用程序
最佳答案
对于此类问题,他们发明了消息队列。想象一下,当您的集群应用程序都监听消息队列(集群自身:-))时的情况。在某个时间点,一个实例会收到您的初始命令来下载您的外部资源。如果成功,您的实例会刷新消息,而是发布另一条消息,以便稍后执行时间等于“运行时间”+“间隔”。但万一实例在处理过程中死亡,这不是问题。消息在队列中回滚(超时后),其他实例可以拾取它。一点事务,一点消息队列
我在世界的 Java EE 方面,因此可以帮助您了解编码细节
关于.net - 如何让主动服务高可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2655933/