Windows Azure-具有博客租约竞争条件的领导者选举

Windows Azure-具有博客租约竞争条件的领导者选举,azure,singleton,azure-storage-blobs,Azure,Singleton,Azure Storage Blobs,我在云设计模式()中查看领导人选举模式。它使用的方法在其他地方也有描述()并且在关于堆栈溢出()的至少一个问题中提到过 一般来说,选举过程归结为争夺Blob存储租约的过程。租约本身是独占的,因此在给定的时间点上只有一个进程可以保存它。在领导者选举模式中,租约最初是在预定义的时间段(15到60秒)内获得的,并由持有租约的进程上运行的后台线程续订 我想知道的是,这个解决方案是否不受可能的竞争条件的影响。如果由于某种原因,当前的领导者无法及时更新锁定(大量负载、网络延迟),那么分布式系统中的另一个进程

我在云设计模式()中查看领导人选举模式。它使用的方法在其他地方也有描述()并且在关于堆栈溢出()的至少一个问题中提到过

一般来说,选举过程归结为争夺Blob存储租约的过程。租约本身是独占的,因此在给定的时间点上只有一个进程可以保存它。在领导者选举模式中,租约最初是在预定义的时间段(15到60秒)内获得的,并由持有租约的进程上运行的后台线程续订

我想知道的是,这个解决方案是否不受可能的竞争条件的影响。如果由于某种原因,当前的领导者无法及时更新锁定(大量负载、网络延迟),那么分布式系统中的另一个进程是否可能认为它也是领导者

据我所知,该方法在EventProcessorHost中用于事件中心分区租用

编辑:


我认为这解释了如何确保在分区的情况下,没有两个进程都认为它们是领导者。简而言之,该算法假设进程在发现无法更新锁后立即停止。如果它试图在租约到期前将锁续签足够长的时间,则不会有其他进程可以获取锁。

阅读您共享的链接,它们会列出这些问题。你必须采取额外的措施。另外:这个问题本身并不能很好地解决问题,因为它需要每个人浏览链接并阅读其他信息,甚至弄清楚你到底在问什么。你能给我一个我分享的链接中提到这个问题的具体部分吗?我可能遗漏了什么,但我找不到有人提到它。你指的是什么样的额外措施?大卫:说得好。刚才添加了对上述模式的概述