Azure Service Fabric

4
请帮我了解,在Azure Service Fabric中是否有延迟取消服务的选项?我在Fabric中托管了一个微服务应用程序,它分布在不同节点上的实例中。如果我尝试从门户中停用/取消服务,服务Fabric能否内部检查是否正在进行任何实例的事务?如果已经启动,它会等待完成吗?另外想知道,如果Microsoft没有提供这样的服务,我们是否有任何PowerShell命令来检查实例状态?
谢谢。

除了tyadams的答案之外,我们发现将RunAsync方法中给出的cancellationToken的引用复制并在所有异步方法中使用非常有用。这样,当Fabric关闭服务时,我们至少可以优雅地关闭任何活动。 - Peter Lea
1个回答

3
我假设你所说的“从门户中取消/注销服务”是指通过Service Fabric Explorer web应用程序(可能是从门户中的链接跟随而来)删除服务。如果我错了,请纠正我。
直接回答您的问题,框架在服务删除过程中不会等待正在进行中的操作完成。服务的每个副本都将失去其读取和写入权限,导致所有正在进行的操作失败。我们没有提供一种方式来暂停此步骤,以允许当前打开的事务完成,例如。
我们不提供此意义的原因是,服务删除预计是罕见或永久性的,并且延迟删除最后一个操作并不会启用任何其他场景。无论哪种情况,如果客户端正在尝试对正在被删除的服务执行操作,则:
1. 由于删除竞争和吊销读取/写入权限,最后一个客户端操作可能会失败。 2. 由于服务不再存在,每个后续客户端操作都将失败。
期望的是,任何客户端或依赖服务在删除他们依赖的服务之前应已更新或删除,因为您正在做出永久决定,即此服务不再存在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接