IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 任务调度系统演化与选型 -> 正文阅读

[系统运维]任务调度系统演化与选型

当软件需要支持高可用,此时需要对计算单元进行冗余,对系统的高可用复杂度进行处理,演化出各种对复杂度的处理方式。

0. 起点:从单机到双机-决策者引入

当场景如下:无论在哪台机器上进行计算,同样的算法和输入数据,产出的结果都是一样的,所以将计算从一台机器迁移到另外一台机器,对业务并没有什么影响。以最简单的单机变双机为例进行分析。先来看一个单机变双机的简单架构示意图。
在这里插入图片描述
如图所示:

  • 需要增加一个任务分配器,选择合适的任务分配器也是一件复杂的事情,需要综合考虑性能、成本、可维护性、可用性等各方面因素。
  • 任务分配器和真正的业务服务器之间有连接和交互,需要选择合适的连接方式,并且对连接进行管理。例如,连接建立、连接检测、连接中断后如何处理等。
  • 任务分配器需要增加分配算法。例如,常见的双机算法有主备、主主,主备方案又可以细分为冷备、温备、热备。

任务分配器需要保证高可用,通过备份手段达到系统的高可用。

1. 高可用状态决策

状态决策主要分为以下方式:

  • 独裁式
  • 协商式
  • 民主式

1.1 独裁式

独裁式决策指的是存在一个独立的决策主体,称它为“决策者”,负责收集信息然后进行决策;所有冗余的个体,称它为“上报者”,都将状态信息发送给决策者。
在这里插入图片描述

独裁式的决策方式不会出现决策混乱的问题,因为只有一个决策者,但问题也正是在于只有一个决策者。当决策者本身故障时,整个系统就无法实现准确的状态决策。如果决策者本身又做一套状态决策,那就陷入一个递归的死循环了。
缺点:显而易见,单机问题无法做决策。

1.2 协商式

协商式决策指的是两个独立的个体通过交流信息,然后根据规则进行决策,最常用的协商式决策就是主备决策。
在这里插入图片描述
这个架构的基本协商规则可以设计成:

  1. 2 台服务器启动时都是备机。
  2. 2 台服务器建立连接。
  3. 2 台服务器交换状态信息。
  4. 某 1 台服务器做出决策,成为主机;另一台服务器继续保持备机身份。

协商式决策的架构不复杂,规则也不复杂,其难点在于,如果两者的信息交换出现问题(比如主备连接中断),此时状态决策应该怎么做。

缺点

  1. 链接断开产生两个主
  2. 如果断开链接备不认为主挂了,导致没有主

1.3 民主式

民主式决策指的是多个独立的个体通过投票的方式来进行状态决策。例如,ZooKeeper 集群在选举 leader 时就是采用这种方式。
在这里插入图片描述

民主式决策和协商式决策比较类似,其基础都是独立的个体之间交换信息,每个个体做出自己的决策,然后按照“多数取胜”的规则来确定最终的状态。

缺点:

  • 民主决策算法比较复杂
  • 脑裂问题

2. 解决脑裂

通过zookeeper进行高可用决策会遇到脑裂问题,主要有以下解决方式。

2.1 基于kill进程的方式实现一致性

当老主由于GC或其他原因超时,备master尝试切换主时,先去登录到老主机器kill掉相关进程,只有成功kill,才去切换状态。
在这里插入图片描述
缺点:有可能无法登录到老机器上,为了一致性牺牲部分可用性,降低了系统可用性

2.2 基于DB实现一致性

通过数据库实现一个masterID,每次竞争都去更新ID。实际上是有了一个中间件。
在这里插入图片描述
这种方式无需两个master联通,提升了一致性。
缺点:每次需要数据更新,校验ID,有一定开销。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-30 19:17:57  更:2022-01-30 19:18:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 7:47:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码