Service Fabric Failover Manager
作者:潘罡 (Van Pan)@ Microsoft
什么是Failover Manager
我们回到Service Fabric系统架构图。

Failover Manager是Reliability Subsystem其中的一部分核心组件。它被设计为SF的一个Service。你可以在Service Fabric Explorer中看到这个服务。
它主要负责以下功能:
- 维护全局可用的Node及Service视图
- 和Placement and Load Balancer (PLB) 以及 Reconfiguration Agent (RA)紧密工作。(PLB会在后续章节进行介绍。RA在上一节CM中有过介绍,主要负责在Node中应用配置变动)
- 创建Failover Units以及Replicas
- 如果发生故障,负责Failover Replicas。(比如选举Replica成为Primer)
- 管理SF 升级
- 管理Node失效
- 如果发生灾难,负责重建系统状态
Failover Manager由以下部分组成
- Global Failover Unit Map (GFUM)
- Node 缓存
- Service 缓存
- Failover Unit 缓存
- 内建Failover Unit 缓存
- State Machine
- State 升级
- 重新配置
- Placement
- Replica 移动
GFUM介绍
Node 缓存
Node缓存维护了所有Node的以下信息
- Node Id
- Node Name
- Upgrade Domain
- Capacity
- 失效/激活状态
Servic缓存
Service 缓存维护了以下信息
- Service 列表
- Service Type 列表
- Application 列表
- Application 当前升级状态
Failover Unit缓存
Failover Unit 缓存维护了以下信息
- Failover Unit以及Replica列表
- Service查找表
工作流程举例
我们用创建一个Service的例子,以下SF部件将协同工作。
Client –> Gateway –> CM –> Naming Service –> FM –> RA
在上一节中,我们已经介绍了CM和Naming Service之间是如何工作的,下面我们详细介绍FM内部如何工作。
详细步骤:
- 增加Service命令到达FM
- FM向Service 缓存添加Service信息
- FM向Failover Unit 缓存添加Failover Unit
- FM更新PLB
- PLB 向FM返回新的Placement
- FM返回增加Service命令执行结果
- FM向Failover Unit 缓存创建Replica信息
- FM通知RA向Node中添加Replica
其他信息
因为FM的特性以及存储的信息,以下PS命令是在FM中执行的。
Get-ServiceFabricNode
Get-ServiceFabricService
Get-ServiceFabricPartition
Get-ServiceFabricReplica
Service Fabric Failover Manager的更多相关文章
- Service Fabric Cluster Manager
作者:潘罡 (Van Pan)@ Microsoft 我们回到Service Fabric最底层的话题,谈谈Service Fabric是怎么工作的. 首先,我们回到下面的文档,看看Service F ...
- Service Fabric SfDevCluster目录从默认的C盘移动
管理员权限打开Powershell CD\ 回车 CD "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup" ...
- 拥抱Service Fabric —— 目录
理解分布式 经典分布式系统设计 云时代分布式系统演进 Service Fabric基础概念 Node, Application, Service, Partition/Replicas Partiti ...
- Service Fabric Placement and Load Balancing
作者:潘罡 (Van Pan)@ Microsoft 什么是PLB (Placement and Load Balancing) 介绍FM的上文中,我们提到了PLB. 这个组件和FM协同工作,为FM提 ...
- service fabric docker 安装
1. 镜像拉取 docker pull microsoft/service-fabric-onebox 2. 配置docker(daemon.json) { "ipv6": tru ...
- Service Fabric 群集在Service Replica过多的情况下报错问题
首先 Service Fabric 群集是正常的,部署一些服务过后也能正常运行,但一旦部署的服务过多后,且每个服务不止一个Partition,就有可能让群集状态为Error,但其实服务还是在正常运行的 ...
- ServiceFabric极简文档-1.1 附属文件:规划和准备 Service Fabric 独立群集部署
准备好要充当节点的计算机 下面是要添加到群集的每台计算机的建议规格: 至少 16 GB RAM 至少 40 GB 可用磁盘空间 4 核或更高规格的 CPU 所有计算机与安全网络连接 Windows S ...
- 【Azure 微服务】Service Fabric, 使用ARM Template方式来更新SF集群的证书(Renew SF Certificate)
问题描述 因证书过期导致Service Fabric集群挂掉(升级无法完成,节点不可用)一文中,描述了因为证书过期而导致了SF集群不可用,并且通过命令dd-AzServiceFabricCluster ...
- Azure Service Fabric 开发环境搭建
微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...
随机推荐
- flex布局时,内容区域自适应高度
页面元素高度固定,中间的元素需要撑满屏幕,或者内容多时显示滚动条时,我们要把父元素设置为height:100vh <div class="parent"> <di ...
- 函数式编程与React高阶组件
相信不少看过一些框架或者是类库的人都有印象,一个函数叫什么creator或者是什么什么createToFuntion,总是接收一个函数,来返回另一个函数.这是一个高阶函数,它可以接收函数可以当参数,也 ...
- 08慕课网《进击Node.js基础(一)》事件events
引用events模块中的EventEmitter 事件的监听和发射 相同的事件发射数量有限,可以通过setMaxListeners设置峰值 var EventEmitter = require('ev ...
- sprint站立会议
索引卡: 工作认领: 时间 ...
- Software-Defined Networking A Comprehensive Survey(一)
传统网络:1 复杂,难于管理 2 很难实现根据之前定义的方案进行配置,3 对于缺陷.变化不能够再次进行配置 4 控制和数据平面绑定在一起,使许多缺陷难于解决 SDN网络:通过打破传统网络垂直整合,从底 ...
- "1001. A+B Format (20)" 解题报告
Github : git@github.com:Circlecos/object-oriented.git PDF Of Markdown : "1001. A+B Format (20)& ...
- IDE调研之二
Eclipse和Jetbrains的IntelliJ IDEA对比: Eclipse工具 在Eclipse中,可以最大化控制台.通过双击标签或者Ctrl+M快捷键就可以实现,但是在IntelliJ I ...
- cmd命令行安装,删除Windows证书(certgmr的简单使用)
在管理证书的时候需要用到certmgr工具. 在cmd中执行certmgr会弹出证书管理的工具,但是不能用命令行去管理证书,需要额外的工具 cermgr.exe:下载链接 https://pan.ba ...
- mac下面安装redis
本文只记录了在homebrew下面安装redis的过程,过程比较简单,作为自己以后翻阅用吧, 首先安装homebrew,打开终端,在终端下面允许下面的命令(不要用root用户): /usr/bin/r ...
- Vue 小组件input keyup.enter绑定
<div id="todo-list-example"> <input v-model="newTodoText" v-on:keyup.en ...