ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

任务调度系统演化与选型

2022-01-29 23:32:22  阅读:181  来源: 互联网

标签:状态 演化 协商 决策者 决策 选型 分配器 任务调度 双机


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

文章目录

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,有一定开销。

标签:状态,演化,协商,决策者,决策,选型,分配器,任务调度,双机
来源: https://blog.csdn.net/new_bee_01/article/details/122748136

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有