问题描述

发现 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. HUBUCTF 2022新生赛Writeup

    既然是母校,那一定要好好对待~    2024-01-13 22:42:34 WEB  [HUBUCTF 2022 新生赛]checkin 题目链接:checkin 原题 <?php show_ ...

  2. TienChin-课程管理-课程更新接口

    更改包名 将之前的 entity 更改为 domain: 将之前的 validator 包当中的校验分组接口移动到 common 模块当中,因为其它模块也需要使用就放到公共当中进行存储. 更改完毕之后 ...

  3. 华为云虚拟IP申请

    在上一篇文章当中我们搭建好了我们的 Nginx,这节呢,我们主要就是搭建我们的 Keepalive 与 Haproxy,搭建之前我们首先不要将我们华为云上面的弹性公网IP给取消了后续在取消,这次我介绍 ...

  4. 14.6 Socket 应用结构体传输

    当在套接字编程中传输结构体时,可以将结构体序列化为字符串(即把结构体的所有成员打包成一个字符串),然后将字符串通过套接字传输到对端,接收方可以将字符串解析为结构体,然后使用其中的成员数据.这种方法通常 ...

  5. SSM整合思维(随手记)

    整合方向(整合思路): 用Spring去整合SpringMVC和Mybatis. 一.先创建Spring项目测试运行成功后,再创建SpringMVC项目再单独测试SpringMVC项目如果运行成功后即 ...

  6. webpack与其常见loader加载器使用方式

    webpack是什么 webpack是前端项目工程化的具体解决方案. 主要功能:提供了友好的前端模块化开发支持,支持代码压缩混淆(去除空格和注释,让文件体积更小),处理浏览器端JS的兼容性(将箭头函数 ...

  7. 零基础入门学习Java之多线程

    多线程 话不多说,看代码 1.什么是多线程 众所周知CPU单线程的东西,也就是说在同一时间内程序只能去做一件事情,但很多时候比如说多人买票.龟兔赛跑.游戏开发等都需要在同一时间内完成多个东西,因此就有 ...

  8. 2.列表--《Python编程:从入门到实践》

    2.1 列表   列表由一系列按特定顺序排列的元素组成.在Python中,用方括号([])来表示列表,并用逗号来分隔其中的元素. bicycles = ['trek', 'cannondale', ' ...

  9. Series基础

    目录 创建Series对象 1) 创建一个空Series对象 2) ndarray创建Series对象 3) dict创建Series对象 4) 标量创建Series对象 访问Series数据 1) ...

  10. Centos7 和 Centos8 升级内核

    从yum安装kernel-ml 对于Centos7 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install htt ...