当前位置:  开发笔记 > 编程语言 > 正文

Service Fabric停用(暂停)vs Deactivate(重启)?

如何解决《ServiceFabric停用(暂停)vsDeactivate(重启)?》经验,为你挑选了1个好方法。

当我登录到Service Fabric Explorer并尝试禁用操作系统升级的节点时,我会看到两个选项:

停用(暂停)

停用(重启)

有人能告诉我区别吗?



1> masnider..:

服务织物具有可以让你管理节点(在C#这些都是DeactivateNodeAsync和ActivateNodeAsync,在PS他们启用/禁用-ServiceFabricNode)的API.首先,大部分是来自人们管理自己的集群遗留下来的,应该是相比,当你运行你自己的集群,常用于在Azure托管服务面料集群环境中使用.无论哪种方式,当停用节点时,有几个不同的选项,我们称之为Intents.

您可以将这些视为代表在不同情况下使用的节点上日益严重的操作,并使用它们与Service Fabric进行通信,以便对节点执行的操作.

四种不同的选择是:

    暂停 - 有效地"暂停"节点:其上的服务将继续运行,但是除非它们自身失败,否则任何服务都不应移入或移出节点,或者除非需要将服务移动到节点以防止中断或不一致.

    重新启动 - 这会将所有内存中的有状态和无状态服务移出节点,然后关闭(关闭)任何持久性服务(如果可以安全地执行此操作,否则我们将构建备用服务器).

    RemoveData - 这将关闭节点上的所有服务,如果安全需要,再次建立备件.用户有责任确保如果节点确实返回,则它返回空.

    RemoveNode - 这将关闭节点上的所有服务,如果安全需要,再次首先构建备件.在这种情况下,虽然您特别告诉SF该节点没有回来.SF执行额外检查以确保正在删除的节点不是SeedNode(当前负责维护底层群集的节点之一).除此之外,这与RemoveData相同.

现在让我们谈谈你何时使用它们.如果您想要调试给定的服务,进程,机器等,并且希望在查看它时不要更改(尽可能可能),则暂停是最常见的.如果你去诊断服务的一些行为只是为了确定我们刚刚把它移到你身上,那会有点尴尬.当出于某种原因想要将所有工作负载移出节点时,将使用重新启动(这是我们看到的最常见的).例如,Service Fabric在升级节点上的Service Fabric位时使用它 - 首先我们通过intent restart重新启动节点,然后在关闭和升级之前等待它完成(所以我们知道你的服务没有运行)我们在该节点上的代码.RemoveData是您知道节点被取消配置并且不会返回的地方(比如硬盘驱动器将被换出,或硬件被完全删除),或者您知道如果节点回来它就是特定的是空的(说你正在重新拍摄机器).Restart和RemoveData之间的区别在于,对于重新启动,我们知道节点将返回,因此我们保持对该节点上的副本的了解.对于持久性副本,这意味着我们不必立即再次构建副本.但对于RemoveData,我们知道副本不会返回,因此需要在确认节点可以安全重启之前立即构建任何备用.RemoveNode构建在RemoveData之上,并且是一个额外的指示器,表明您没有具体计划将此节点恢复.由于保持SeedNode的重要性,如果要删除的节点当前是种子,SF将无法通过调用.如果您确实要删除该特定节点,则可以重新配置群集以使用其他节点作为种子.您希望使用RemoveData与RemoveNode的一个示例是,如果您缩小群集,则应明确调用RemoveNode,因为您希望节点不要回来并且想要确保您'重新选择正确的集群,以便底层集群不会崩溃.

一旦完成操作(无论是什么)并且您想要重新启用该节点,相应的调用就是激活/启用.重新启动节点不会导致它自动重新启用.因此,如果您已完成软件修补程序(或任何导致您使用intent Restart的任何内容),并且您希望将服务再次放置在节点上,则可以使用相应的节点名称调用Enable/Activate.

作为停用/禁用呼叫的示例,请在此处查看PS API文档

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有