2020年2月13日
摘要: 分治法 基本思想:将一个复杂,难以直接解决的大问题,分割成一些规模较小,可以比较简单的或者直接求解的子问题,这些子问题之间相互独立且与原问题形式相同,递归求解这些子问题,然后将子问题的解合并得到原问题的解。 MR基本原理 基本组件 Master:MRAppMaster,负责分配任务,协调任务的运行, 阅读全文
posted @ 2020-02-13 09:52 BattleScars 阅读(285) 评论(0) 推荐(0) 编辑
  2020年2月12日
摘要: 单体调度 定义 一个集群中只有一个节点运行调度进程,该调度进程负责集群资源管理和任务调度,也就是说单体调度器拥有全局资源视图和全局任务 特征 1. 容易实现对作业的约束并实施全局性的调度策略,因此适合批处理任务和吞吐量较大、运行时间较长的任务 2. 容易进行状态同步,并且很稳定 3. 调度算法全部内 阅读全文
posted @ 2020-02-12 10:27 BattleScars 阅读(3066) 评论(0) 推荐(0) 编辑
摘要: 非集中式结构核心协议:Gossip协议 原理: 每个节点周期性的才能够自己维护的集群节点列表中随机选择k个节点,将自己存储的信息发送给这k个节点,接收到该信息的节点,采用分布式共识原则,对收到的数据和本地数据进行合并,经过几个迭代周期之后,集群中所有节点的数据信息就一致了。 优点: 扩展性,可容错, 阅读全文
posted @ 2020-02-12 10:22 BattleScars 阅读(390) 评论(0) 推荐(0) 编辑
  2020年2月11日
摘要: 集中式结构的概念 由一台或者多台服务器组成中央服务器,多个节点服务器与中央服务器连接。由中央服务器同一进行资源和任务调度。节点服务器之间无需通信和协作,只需要与中央服务器通信协作即可。 集中式结构经典举例 Google Borg Kubernetes Mesos 总结对比 阅读全文
posted @ 2020-02-11 15:34 BattleScars 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 分布式锁的实现方式 数据库 实现方式: 创建一张锁表对临界资源做唯一约束,锁住资源时增加一条记录,释放时删除该记录 优点:容易理解 缺点:容易出现单点故障,死锁等问题,实现复杂,性能低可靠性低 应用场景:并发量低,性能要求低的场景 redis缓存 实现方式:setnx,或者采用官方推荐的方式http 阅读全文
posted @ 2020-02-11 11:23 BattleScars 阅读(387) 评论(0) 推荐(0) 编辑
摘要: 分布式事务的概念 事务 包含一系列操作的,一个有边界的工作序列,有明确的开始和结束标志,且要么被完全执行,要么完全失败 分布式事务 分布式系统中运行的事务,有多个本地事务组合而成 基本特征 原子性,一致性,隔离性和持久性 刚性事务和柔性事务 刚性事务:遵循ACID原则,具有强一致性 柔性事务:根据不 阅读全文
posted @ 2020-02-11 10:28 BattleScars 阅读(409) 评论(0) 推荐(0) 编辑
  2020年2月10日
摘要: 前言 分布式共识的概念 在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达到一致的过程,通过共识机制可以使得分布式系统中多个节点的数据达成一致。分布式共识技术其实就是区块链共识机制的核心 分布式共识与一致性的区别 一致性强调的是结果,共识强调的是达成一致的过程 分布式共识的关键 获得记 阅读全文
posted @ 2020-02-10 15:32 BattleScars 阅读(845) 评论(0) 推荐(0) 编辑
摘要: 分布式选举的原因 分布式系统中需要一个主节点,该节点用于负责对其他节点进行协调和管理。同时主节点的存在能够保证分布式集群数据的一致性。 分布式选举算法 1. Bully算法 选举原则:偏向于让ID更大的节点作为集群的leader 前提条件:假设集群中所有节点都知道其他节点的id 消息类型/节点状态: 阅读全文
posted @ 2020-02-10 14:18 BattleScars 阅读(608) 评论(0) 推荐(0) 编辑
  2020年1月19日
摘要: Counter 计数器是一个累积量度,代表一个单调递增的计数器,其值只能在重新启动时增加或重置为零。 例如,您可以使用计数器来表示已处理请求,已完成任务或错误的数量。 Gauge Gauge是一种度量标准,代表可以任意上下波动的单个数值。通常用于测量值,例如温度或当前的内存使用量,还用于可能上升和下 阅读全文
posted @ 2020-01-19 21:46 BattleScars 阅读(1346) 评论(0) 推荐(0) 编辑
  2020年1月16日
摘要: 总体架构 从下图可见,Neo4j集群由两个不同的角色Core Servers和Read Replicas组成,这两个角色是任何生产部署中的基础,但彼此之间的管理规模不同,并且在管理整个集群的容错性和可伸缩性方面承担着不同的角色。 Core Servers 核心服务器的主要责任是保护数据。 核心服务器 阅读全文
posted @ 2020-01-16 21:52 BattleScars 阅读(6923) 评论(0) 推荐(1) 编辑