问题描述

发现 Service Fabric 的节点状态异常,如出现 DisablingWarning,或者 RemoveNode的情况,并且持续很长时间都没有变化(2小时以上)。如何来缓解这种问题呢?

问题解答

面对这样的情况,首先需要进入每一个节点中,查看对应的 Warning 信息。如果Warning 中包含具体的信息,就根据内容尝试缓解问题。如果消息不能明确指出问题所在,则可以尝试通过 节点右边的 Restart 按钮来重启节点。

比如截图中的消息 'System.FM' reported Warning for property 'State'. Fabric node is taking longer than expected to deactivate.,关闭 Fabric 节点所耗的时间比预期的要长,并且节点状态一直显示 Disabling。表示节点已经Block了。Service Fabric 自身已经无法完成修复工作,需要手动接入。

修复Service Fabric中Application错误

当通过Service Fabric Explorer中的Restart也无法对此情况有任何帮助时,就需要查看集群的状态,应用是否存在错误。

比如截图中,Service Fabric中的应用出现Error, 消息显示  Partition is quorum loss. As the replicas come up, partition should recover from the quorum loss. 应用Partition丢失,当Replicas被选中成为Primary后,Partition将从Quorum Loss的情况中恢复。但是由于SF的应用设置的QuorumLossWaitDuration 的时间戳为infinite(无限)。所以错误就无法完成自动修复。

需要通过如下命令来修改QuorumLossWaitDuration的值

Update-ServiceFabricService -Stateful -ServiceName "fabric:/<Application Name, need replace>" -TargetReplicaSetSize 5 -MinReplicaSetSize 5 -ReplicaRestartWaitDuration 10 -QuorumLossWaitDuration 60 -Force

修复Service Fabric节点错误

只有当SF中的应用信息已经被修复后,就可以通过以下几种常规的手段来Restart,Replace 节点:

1)通过 Service Fabric Explorer工具,在节点右侧点击“Restart”按钮重启节点

2)进入Service Fabric的VMSS门户页面,选中问题节点后,可以执行删除,重启,重置等按钮。

也可以使用PowerShell指令,如 Remove-ServiceFabricNode,Restart-ServiceFabricNode,Disable-ServiceFabricNode 等指令完成相同的操作。

PS: 特别注意,当操作的节点为种子节点(Seed Node), 不能直接删除,需要先Disable后,然Seed Node转移到其他节点,然后删除。操作方式可见:(如何转移Service Fabric集群中的种子节点(Seed Node):https://www.cnblogs.com/lulight/p/13691999.html 

参考资料

ServiceFabrichttps://docs.microsoft.com/en-us/powershell/module/servicefabric/?view=azureservicefabricps

【Azure 微服务】面对Service Fabric中节点状态不正常(Disabling/Warning/RemoveNode)的几种尝试解决方案的更多相关文章

  1. 【Azure 微服务】Service Fabric中微服务在升级时,遇见Warning - System.Collections.Generic.KeyNotFoundException 服务无法正常运行

    问题描述 使用.Net Framework 4.5.2为架构的Service Fabric微服务应用,在升级后发布到Azure Fabric中,服务无法运行.通过Service Fabric Expl ...

  2. 【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)

    问题描述 因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricCluster ...

  3. 微服务之Service Fabric 系列 (一):概览、环境安装

    参考 微软官方文档  service fabric 百家号   大话微服务架构之微服务框架微软ServiceFabric正式开源 一.概述 1.概念 Azure Service Fabric 是一款分 ...

  4. 【Azure微服务 Service Fabric 】如何转移Service Fabric集群中的种子节点(Seed Node)

    注意:在对Service Fabric的节点做操作之前,请务必确认是否是种子节点(Seed Node)且当前节点的数量是否与SF的持久层要求的数量一致. 可靠性级别是 Service Fabric 群 ...

  5. 【Azure微服务 Service Fabric 】因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)

    问题描述 创建Service Fabric时,证书在整个集群中是非常重要的部分,有着用户身份验证,节点之间通信,SF升级时的身份及授权认证等功能.如果证书过期则会导致节点受到影响集群无法正常工作. 当 ...

  6. 【Azure微服务 Service Fabric 】Service Fabric中应用开启外部访问端口及微服务之间通过反向代理端口访问问题

    问题描述 1) 当成功的在Service Fabric集群中部署了应用后,如何来访问呢?如果是一个Web服务,它的URL又是什么呢? 2) 当Service Fabric集群中,服务之间如需要相互访问 ...

  7. 如何把遗留的Java应用托管在Service Fabric中

    一.概述 众所周知,微服务化尤其对遗留系统进行微服务化一般采用"Lift and Shift"的模式进行. Service Fabric作为一个微服务托管平台,不仅仅可以在上面跑. ...

  8. 浅谈服务治理、微服务与Service Mesh(三) Service Mesh与Serverless

    作为本系列文章的第三篇(前两篇<浅谈服务治理.微服务与Service Mesh(一)Dubbo的前世今生>,<浅谈服务治理.微服务与Service Mesh(二) Spring Cl ...

  9. 【Azure微服务 Service Fabric 】在SF节点中开启Performance Monitor及设置抓取进程的方式

    前提条件 当我们观察到SF中某一个节点出现CPU不正常的情况,但是由于不能肉眼长期观察,所以可以通过开启Performance Monitor的方式来获取每一个进程的%Processer Time的方 ...

  10. 【Azure 微服务】基于已经存在的虚拟网络(VNET)及子网创建新的Service Fabric并且为所有节点配置自定义DNS服务

    问题描述 创建新的Service Fabric集群,可以通过门户,Powershell命令,或者是ARM模板.但是通过门户和PowerShell命令时,创建的SF集群都会自动新建一个虚拟网络而无法使用 ...

随机推荐

  1. 02uni-app v-for循环列表 v-if的使用

    onLoad onShow onHide函数的使用## 这三个函数的使用 // 监听页面的加载 参数e是上一个页面传递过来的参数 参数是一个对象 如果没有为空{} onLoad(e) { consol ...

  2. ShardingSphere

    目录 1.ShardingSphere分表与分库分表 2.ShardingSphere分库分表查询 3.自定义分片算法实现range查询 4.SPI扩展机制概述 5.stand通过SPI实现range ...

  3. GPT大语言模型引爆强化学习与语言生成模型的热潮、带你了解RLHF。

    GPT大语言模型引爆强化学习与语言生成模型的热潮.带你了解RLHF. 随着 ChatGPT 的爆火,强化学习(Reinforcement Learning)和语言生成模型(Language Model ...

  4. 由刷题学习 heapq

    今日一题是 面试题 17.14. 最小K个数 https://leetcode-cn.com/problems/smallest-k-lcci/ 还好 提示 0 <= len(arr) < ...

  5. 如何在Visual Studio新C++项目中调用之前配置过的库?

      本文介绍在Visual Studio软件中调用C++各种配置.编译完毕的第三方库的方法.   在撰写C++代码时,如果需要用到他人撰写的第三方库(例如地理数据处理库GDAL.矩阵运算库Armadi ...

  6. 【scikit-learn基础】--模型持久化

    模型持久化(模型保存与加载)是机器学习完成的最后一步.因为,在实际情况中,训练一个模型可能会非常耗时,如果每次需要使用模型时都要重新训练,这无疑会浪费大量的计算资源和时间. 通过将训练好的模型持久化到 ...

  7. 沿SVG路径的颜色渐变

    原生的渐变方法 在SVG中提供的原生渐变方法有两种,分别为线性渐变linearGradient和径向渐变radialGradient.我们以一个稍微复杂的路径来作为模板,为其添加两种渐变效果: < ...

  8. Power BI 13 DAY

    分组依据 在PQ下对维度进行汇总,并对其他字段进行不同的计算方式,就需要使用分组依据 将下表中已"店名"为维度对重复店名作排重处理,对"单号"字段进行计数计算, ...

  9. JS leetcode 反转字符串 题解分析

    壹 ❀ 引 今天做的一道题非常简单,原题来自leetcode第344题反转字符串,题目如下: 编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出. 不要给另外 ...

  10. google recaptcha 谷歌人机身份验证超详细使用教程,前端/后端集成说明

    壹 ❀ 引 在日常页面交互中,验证码使用是极为频繁的,登录注册验证,非机器人操作验证等等,它遍布于每一个网站.说到验证码实现,Goole Recaptcha是一个非常不错的选择,那么希望通过本文的使用 ...