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