Azure 服务结构
Posted
技术标签:
【中文标题】Azure 服务结构【英文标题】:Azure Service Fabric 【发布时间】:2015-12-04 22:39:07 【问题描述】:请帮助我知道,天蓝色服务结构中是否有任何选项可以延迟取消配置?我有一个托管在结构中的微服务应用程序,该应用程序分布在其实例的不同节点中。如果我试图从门户中解除/取消提供服务,服务结构是否可以在内部检查任何事务是否正在进行任何实例,如果它被使用,它会等待完成吗?也想知道,如果微软不提供这样的服务,我们是否有任何powershell命令来检查实例状态?
谢谢
【问题讨论】:
除了 tyadams 回答之外,我们发现复制对提供给 RunAsync 方法的 cancelToken 的引用并在我们所有的异步方法中使用它很有用。所以至少我们可以在结构关闭服务时优雅地关闭任何活动。 【参考方案1】:我假设“从门户取消/取消提供服务”是指通过 Service Fabric Explorer Web 应用程序删除服务(可能通过门户中的链接)。如有错误请指正。
为了直接回答您的问题,框架在服务删除期间不会等待进行中的操作完成。该服务的每个副本都将失去其读取和写入权限,从而导致所有正在进行的操作失败。我们不提供在此步骤中暂停的方法,例如,允许完成当前打开的交易。
我们不提供此语义的原因是,服务删除预计很少见或永久存在,并且为最终操作延迟删除不会启用任何其他方案。无论哪种情况,如果客户端尝试对正在删除的服务进行操作,则:
-
最后一次客户端操作可能会因为删除竞速和撤销读/写权限而失败
由于服务不再存在,每个后续客户端操作都会失败
或
-
由于删除延迟,最后客户端操作将成功
由于服务不再存在,每个后续客户端操作都会失败
期望任何客户端或依赖服务在删除它们所依赖的服务之前应该已经更新或删除,因为您正在永久决定该服务不应再存在。
【讨论】:
以上是关于Azure 服务结构的主要内容,如果未能解决你的问题,请参考以下文章