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内部如何工作。

详细步骤:

  1. 增加Service命令到达FM
  2. FM向Service 缓存添加Service信息
  3. FM向Failover Unit 缓存添加Failover Unit
  4. FM更新PLB
  5. PLB 向FM返回新的Placement
  6. FM返回增加Service命令执行结果
  7. FM向Failover Unit 缓存创建Replica信息
  8. FM通知RA向Node中添加Replica

其他信息

因为FM的特性以及存储的信息,以下PS命令是在FM中执行的。

Get-ServiceFabricNode
Get-ServiceFabricService
Get-ServiceFabricPartition
Get-ServiceFabricReplica

时间: 2024-10-09 20:07:34

Service Fabric Failover Manager的相关文章

Service Fabric SfDevCluster目录从默认的C盘移动

管理员权限打开Powershell CD\ 回车 CD "C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup" 回车 比如新目录为 E:\SfDevCluster .\DevClusterSetup.ps1 -PathToClusterDataRoot E:\SfDevCluster\Data -PathToClusterLogRoot E:\SfDevCluster\Log 回车 清理SfDevCluster文件夹:

开发者为何对Service Fabric爱不释手?值得关注!

有了它,人人都可开发高可用高伸缩应用.今天小编就为大家介绍一款开发者的"利器"--Service Fabric . 在介绍它之前,先来了解一下它的背景. Service Fabric 是一款应用程序平台,可用于构建基于微服务的应用程序.其核心部分是一个分布式系统平台,用于构建可扩展的可靠应用.在便于封装可部署代码的同时,还内置了微服务最佳实践案例. 快速上市:通过 Service Fabric,开发人员可将重点放在创建可为应用程序增加商业价值的功能上,从而避免了为在基础结构中处理可靠性

拥抱Service Fabric —— 目录

理解分布式 经典分布式系统设计 分布式系统演进 Service Fabric基础概念 Node Type和Node Application Stateful Service Stateless Service Actor Service Fabric System Azure Service Fabric Azure Virtual Machine Scaleset Azure Load Balancer 开发Service Fabric应用 创建Azure Service Fabric 简单样

Service Fabric基本概念:Partition/Replicas示例

作者:张鼎松 (Dingsong Zhang) @ Microsoft 在上一节的结尾简单介绍了Service Fabric中分区Partitions和复制replicas的概念,本节主要以示例的形式来具体说明这个抽象概念在Service Fabric中的工作方式. 1. 分区Partitions和复制replicas 一个service可以包含多个分区Partition,Service Fabric通过使用分区作为扩展的机制来将工作分布到不同的service实例上. 一个分区Partition

在 Linux 上创建第一个 Service Fabric Java 应用程序

先决条件 开始之前,请安装 Service Fabric SDK.Azure CLI,并在 Linux 开发环境中设置开发群集. 如果使用 Mac OS X,则可使用 Vagrant 在虚拟机中设置 Linux 开发环境. 此外还需配置 Azure CLI 2.0(推荐)或 XPlat CLI,以便部署应用程序. 创建应用程序 Service Fabric 应用程序包含一个或多个服务,每个服务都在提供应用程序功能时具有特定角色. 适用于 Linux 的 Service Fabric SDK 包含

Service Fabric下删除实例并注销应用

Service Fabric下删除实例并注销应用: 以应用名称:Application1为例 1.打开PowerShell 2.连接集群: Connect-ServiceFabricCluster -ConnectionEndpoint localhost:19000 3.删除实例: Remove-ServiceFabricApplication -ApplicationName fabric:/Application1 –force 4.注销应用: Unregister-ServiceFabr

【Service Fabric】小白入门记录 本地Service Fabric集群安装及设置

本篇内容是自学自记,现在我还不知道Service Fabric究竟是怎么个入门法,反正按照入门教程先进行本地Service Fabric集群的安装,万里路始于足下,要学习总得先把环境装好了才能开始学习是不? 首先是先决条件,具体可见 https://docs.microsoft.com/zh-cn/azure/service-fabric/service-fabric-quickstart-dotnet#prerequisites,按照条件将所有必需的SDK安装完毕后,我们可以在windows菜

微服务之Service Fabric 系列 (一)

参考 微软官方文档  service fabric 百家号   大话微服务架构之微服务框架微软ServiceFabric正式开源 一.概述 1.概念 Azure Service Fabric 是一款分布式系统平台,可方便用户轻松打包.部署和管理可缩放的可靠微服务和容器. Service Fabric 还解决了开发和管理云本机应用程序面临的重大难题. 开发人员和管理员不需解决复杂的基础结构问题,只需专注于实现苛刻的任务关键型工作负荷,即那些可缩放.可靠且易于管理的工作负荷. Service Fab

如何在本地数据中心安装Service Fabric for Windows集群

概述 首先本文只是对官方文档(中文,英文)的一个提炼,详细的安装说明还请仔细阅读官方文档. 虽然Service Fabric的官方名称往往被加上Azure,但是实际上(估计很多人不知道)Service Fabric可以安装到本地数据中心或者任意公有云上,这不官方文档就有一章专门讲如何安装到AWS的内容. 所以现在为了区分,一般把在Azure上提供的开箱即用的PaaS称之为Azure Service Fabric,而把本地安装的称之为Service Fabric Standalone. 同时,Se