gpt4 book ai didi

azure - 检测Azure实例的崩溃

转载 作者:行者123 更新时间:2023-12-03 17:36:17 26 4
gpt4 key购买 nike

我想检测我的Azure角色实例崩溃的事实。就我而言,检测意味着我的角色的另一个实例收到有关崩溃的通知。请查看下面说明的我的想法或提出其他解决方案。

我提出的想法利用了Azure队列中的项目处理时间有限这一事实。

  • 配置Azure队列。角色的所有实例都侦听此队列。
  • 配置角色实例以具有内部端点
  • 当实例A启动时,它将消息发布到队列中。该消息包含实例A的ID,A的内部端点的IP,应将此消息转发回A的标记。
  • 最有可能该消息终止在另一个实例B上。B将通过内部端点将MessageId和PopReceipt转发给A。实例A使用此ctr http://msdn.microsoft.com/en-us/library/dn451949.aspx创建CloudQueueMessage对象。
  • 实例A开始无限期更新接收消息的可见性超时。从Azure队列的角度来看,此消息将被处理很长时间。在第一个更新中,A删除了“转发此消息”标记。
  • 如果实例A崩溃,它将停止延长处理时间。该消息将很快自动显示给其他实例。
  • 实例C提取消息并了解崩溃的消息A:消息包含实例A的ID,并且没有“forward-this-message”标记。
  • 如果实例A正常停止,则将其队列消息标记为已处理。
  • 最佳答案

    这一切似乎都令人费解。

    就个人而言,我将回过头来查看当实例崩溃时需要知道的原始假设,并考虑如何处理该信息。我倾向于乐观的解决方案(即假设成功并处理失败),而不是悲观的解决方案(即假设失败以便提供确保成功的机制)。后者的一个问题是,无论如何,您都将不得不处理未声明的实例崩溃-所以为什么不将其设置为默认行为。那就是在实例上调用操作-并处理发生的任何故障。

    例如,如果我想在另一个实例的内部端点上调用操作,则将对所有其他实例进行负载平衡,并在检测到失败的实例时尝试对另一个实例进行操作。 Ryan Dunn现在拥有古老的post,除其他外,它还针对内部端点进行负载平衡。

    我的基本观点是,将消息从一个实例传递到另一个实例时,很难稳健地执行这种编排。可能的故障点太多了。最好提出一个更直接解决基本需求的解决方案。简单的解决方案几乎总是比更复杂的解决方案更可取。

    关于azure - 检测Azure实例的崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19515913/

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