分布式技术原理与算法解析
文章平均质量分 93
分布式学习笔记,欢迎阅读。
海陆云
请洒潘江,各倾陆海云尔
展开
-
串联分布式核心技术
串联分布式核心技术前言铁路局发布火车票用户查询火车票用户购买火车票总结前言先以购买火车票的流程,串联分布式核心技术。购买火车票的流程三大核心步骤:铁路局向购票系统发布火车票;用户通过系统查询火车票,找到需要的火车票后购买;购票系统给用户响应,完成购票。这个流程看似简单,但涉及了很多知识。铁路局发布火车票铁路局发布火车票的过程,主要涉及分布式数据存储的知识,包括存储系统三要素、 数据分布和数据复制等技术。铁路局向购票系统发布火车票的过程,主要是将火车票信息发送到服务器集群进行存储,原创 2021-12-28 21:41:02 · 31906 阅读 · 0 评论 -
分布式集群中网络分区问题
分布式集群中网络分区问题前言如何判断是否发生了网络分区?集中式架构的网络分区形态非集中式架构中的网络分区形态网络分区最微妙的地方在哪里?网络分区出现概率较高的场景是什么?网络分区有哪些常见的处理方法?方法一:通过 Static Quorum 处理网络分区方法二:通过 Keep Majority 处理网络分区方法三:通过设置仲裁机制处理网络分区方法四:基于共享资源的方式处理网络分区总结前言网络分区就是其中的一种故障类型。通常情况下,网络分区指的是在分布式集群中,节点之间由于网络不通,导致集群中节点形原创 2021-12-28 20:52:05 · 34997 阅读 · 1 评论 -
分布式高可用:故障恢复
分布式高可用:故障恢复前言故障类型故障检测故障恢复分布式故障检测原理故障恢复策略知识扩展:固定心跳检测和基于历史心跳信息预测故障的策略,各有什么特点呢?总结前言故障隔离的目的是对故障组件进行隔离,以避免其影响系统中的其他组件,尽可能保证分布式系统的可用性。在分布式系统中,故障在所难免,发生故障后仅仅进行隔离还远远不够,还需要进行故障恢复。比如,现在集群中有 3 个节点,节点 1 故障后,对节点 1 进行隔离,如果节点 2、节点 3 紧接着故障了,又隔离了这两个节点。整个集群就无法继续提供服务了。原创 2021-12-27 21:56:42 · 29859 阅读 · 0 评论 -
分布式高可用:故障隔离
分布式高可用:故障隔离前言什么是故障隔离?分布式故障隔离策略线程级隔离进程级隔离资源隔离故障隔离策略综合对比知识扩展:从用户角度看,有哪些常用的故障隔离方案?总结前言分布式系统高可靠技术,包括分布式负载均衡和流量控制。除了高可靠,在实际生产中,分布式系统的高可用也极其重要。比如,在双十一的抢购高峰期,如果分布式系统不能满足高可用的特性,那么当大量用户同时抢购时就可能导致系统崩溃,无法提供服务,导致大量用户流失。故障隔离和恢复机制这两项关键技术,保证分布式系统的高可用。什么是故障隔离?故障隔离原创 2021-12-27 21:14:00 · 32415 阅读 · 0 评论 -
分布式高可靠:流量控制
分布式高可靠:流量控制前言什么是流量控制?分布式系统流量控制策略漏桶策略令牌桶策略两种策略对比Sentinel 流量控制工作原理知识扩展:什么是拥塞控制?它与流量控制的区别是什么?总结前言分布式高可靠中的负载均衡的核心在于,将用户请求均匀分配到多个处理服务器处理,以解决单个服务器的单点瓶颈问题。但如果用户请 求数非常多的话,即便实现了负载均衡,服务器能力达到上限,还是无法处理所有的用户请求。比如,类似双十一、双十二的秒杀场景,用户流量突增时,即使做了负载均衡,仍然会感受到点击抢购时,需要等待较长的原创 2021-12-27 00:09:28 · 32431 阅读 · 0 评论 -
分布式高可靠:负载均衡
分布式高可靠:负载均衡前言什么是负载均衡?服务请求的负载均衡方法轮询策略顺序轮询加权轮询随机策略哈希和一致性哈希策略对比分析知识扩展:如果要考虑请求所需资源不同的话,应该如何设计负载均衡策略呢?总结前言分布式可靠性相关的知识,包括负载均衡、 流量控制、故障隔离和故障恢复。 负载均衡是分布式可靠性中非常关键的一个问题或技术,在一定程度上反映了分布式系统对业务处理的能力。比如,早期的电商抢购活动,当流量过大时,可能就会发现有些地区可以购买,而有些地区因为服务崩溃而不能抢购。这其实就是系统的负载均衡出现了原创 2021-12-26 22:49:05 · 33690 阅读 · 0 评论 -
分布式数据:缓存技术
分布式数据:缓存技术前言什么是分布式缓存?Redis 分布缓存原理Memcached 分布式缓存原理对比分析知识扩展:除了分布式存储中的缓存,还有计算机体系结构和网络中的缓存, 它们又分别是什么呢?总结前言分布式存储中“货架”的关键技术——缓存技术。 在计算机领域的各个方面,缓存都非常重要,是提升访问性能的一个重要技术。从单个计算机的体系结构来看,内存和处理器速度差异很大,如果不采用缓存技术,处理器的性能会受到很大的限制。 计算机应用如果不采用缓存技术,对于每个请求,应用都要与后台数据库做一次交互原创 2021-12-26 20:12:56 · 30032 阅读 · 0 评论 -
分布式数据复制技术
分布式数据复制技术前言什么是数据复制技术?数据复制技术原理及应用同步复制技术原理及应用异步复制技术原理及应用半同步复制技术原理及应用三种数据复制技术对比知识扩展:在半同步复制技术中,对于未回复数据更新结果的节点,如何解决数据不一致或冲突呢?总结前言数据分布(也称数据分片)技术,主要用于构建数据索引, 是实现“导购”功能的关键技术。数据分布的本质是,将原数据集划分为多个数据子集,以存储到不同的地方,在一定程度上体现了数据的可用性和可靠性(一个存储节点故障,只影响该存储节点的数据)。数据分片和数据复制原创 2021-12-26 19:28:04 · 29697 阅读 · 0 评论 -
数据分布方式:哈希与一致性哈希
数据分布方式:哈希与一致性哈希前言数据分布设计原则数据分布方法哈希一致性哈希带有限负载的一致性哈希带虚拟节点的一致性哈希四种数据分布方法对比知识扩展:数据分片和数据分区,有何区别?总结前言分布式存储系统的三个要素:顾客、导购和货架。导购实现了分布式数据存储系统中数据索引的功能,包括存储数据时确定存储位置,以及获取数据时确定数据所在位置。在分布式系统中,实现数据索引或数据分布常用的方法是哈希和一致性哈希。数据分布设计原则数据分布主要是数据分片。数据分片技术解决了确定数据位置的问题,可以按照数据特原创 2021-12-26 15:32:28 · 29196 阅读 · 0 评论 -
分布式数据存储系统:三要素
分布式数据存储系统:三要素前言什么是分布式数据存储系统?分布式数据存储系统三要素顾客:生产和消费数据导购:确定数据位置货架:存储数据知识扩展:业界主流的分布式数据存储系统有哪些?总结前言CAP 理论指出,在分布式系统中,不能同时满足一致性、可用性和分区容错性,指导了分布式数据存储系统的设计。随着数据量和访问量的增加,单机性能已经不能满足用户需求,分布式集群存储成为一种常用方式。把数据分布在多台存储节点上,可以为大规模应用提供大容量、高性能、高可用、 高扩展的存储服务。而分布式存储系统就是其具体实现原创 2021-12-26 14:19:41 · 29910 阅读 · 0 评论 -
分布式数据存储系统:CAP理论
分布式数据存储:CAP理论前言什么是 CAP?CAP 选择策略及应用保 CA 弃 P保 CP 弃 A保 AP 弃 C对比分析知识扩展:CAP 和 ACID 的“C”“A”是一样的吗?总结前言分布式系统处理的关键对象是数据,而数据其实是与用户息息相关的。CAP 理论指导分布式系统的设计,以保证系统的可用性、数据一致性等特征。比如电商系统中, 保证用户可查询商品数据、保证不同地区访问不同服务器查询的数据是一致的等。什么是 CAP?假设某电商,在北京、杭州、上海三个城市建立了仓库,同时建立了对应的服务原创 2021-12-26 13:26:02 · 28831 阅读 · 0 评论 -
分布式体系架构与分布式计算相关问题
分布式体系架构相关问题分布式体系结构集中式架构中,Master 如何判断 Slave 是否存活呢?Slave 故障的两类情况:Slave 进程退出;Slave 所在服务器宕机或重启了。如下图所示,假设 Master 节点与 3 个 Slave 节点相连。Master 与 Slave 之间画了两条线,实线旁写的是 TCP 长连接,虚线旁写的是心跳。因为 Master 与 Slave 之间的监控关系是固定的,因此用两种机制协同来判断 Slave 是否存活。Slave 进程的退出:TCP 长连接原创 2021-12-26 11:45:47 · 29264 阅读 · 0 评论 -
分布式通信:消息队列
分布式通信:消息队列前言什么是消息队列?消息队列工作原理RocketMQ 消息队列原理及工作机制知识扩展:发布订阅和消息队列模式都支持系统解耦,两者是否一致呢?总结前言发布订阅是发布者产生数据到消息中心,订阅者订阅自己感兴趣的消息,消息中心根据订阅者的订阅情况, 将相关消息或数据发送给对应的订阅者。在实际使用场景中,还有一种常用的通信方式,是将消息或数据放到一个队列里,谁需要谁就去队列里面取。在分布式领域中,这种模式叫“消息队列”。什么是消息队列?电子论文订阅的例子中,出版社或会议方将论文发布原创 2021-12-26 00:45:13 · 29984 阅读 · 0 评论 -
分布式通信:发布订阅
分布式通信:发布订阅前言什么是发布订阅?发布订阅的基本工作原理点对点模式发布订阅模式。Kafka 发布订阅原理及工作机制分区和消费组的原理和作用BrokerConsumer发布订阅实践应用知识扩展:观察者模式和发布订阅模式的区别是什么?总结前言分布式通信中的远程调用的核心是在网络服务层封装了通信协议、序列化、传输等操作,让用户调用远程服务如同进行本地调用一样。 通过网络服务层的封装实现了不同机器上不同进程之间的直接通信,因为是直接通信,所以通过线程阻塞的方式实现同步调用比较容易,因此通常被用于同步调原创 2021-12-26 00:00:39 · 30367 阅读 · 0 评论 -
分布式通信:远程调用
分布式通信:远程调用前言什么是远程调用?远程调用的原理及应用RPC 的原理及应用RMI 的原理及应用RPC 与 RMI 对比分析知识扩展:远程过程调用存在同步和异步吗?总结前言分布式的本质就是多进程协作,共同完成任务。要协作自然免不了通信。分布式通信技术模块中分布式通信中的远程调用。什么是远程调用?以电商购物平台为例,每一笔交易都涉及订单系统、支付系统及库存系统,假设三个系统分别部署在三台机器 A、B、C 中独立运行,订单交易流程如下所示:用户下单时,调用本地(机器 A)的订单系统进行下单;原创 2021-12-25 13:22:00 · 30086 阅读 · 0 评论 -
分布式计算模式:流水线
分布式计算模式:流水线前言什么是流水线模式?流水线计算模式流水线计算模式的原理实践: 构建机器学习流水线知识扩展:流水线模式和 MapReduce 模式中,都有将大任务拆分为多个子任务,两者的区别是什么?总结前言在现实生活中,经常出现这样的情况,前一个任务的结果是另外一个任务的输入。比如工厂生产一瓶饮料,首先需要往瓶子里装上饮料,待饮料装满后,再封口。如果装饮料和封口分别为子任务,那么前一个任务(装饮料)结束后才可以开始第二个任务(封口)。类似这样的作业,就是流水线作业。在分布式领域中解决类似具有原创 2021-12-25 12:06:50 · 30032 阅读 · 0 评论 -
分布式计算模式:Actor
分布式计算模式:Actor前言什么是 Actor?Actor 计算模式Actor 工作原理Actor 关键特征Actor 模型的应用知识扩展:Akka 中 Actor 之间的通信可靠性是通过 Akka 集群来保证的,那么 Akka 集群是如何检测节点故障的呢?总结前言MapReduce 和 Stream 虽然这两种计算模式对数据的处理方式不同,但都是以特定数据类型(分别对应静态数据和动态数据)作为计算维度。从计算过程或处理过程的维度,有两种分布式计算模式,Actor 和流水线。分布式计算的本质就是原创 2021-12-24 23:50:10 · 29216 阅读 · 0 评论 -
分布式计算模式:Stream
分布式计算模式:Stream前言什么是 Stream?Stream 工作原理Storm 的工作原理知识扩展:流计算和批量计算的区别是什么?总结前言分布式计算模式中的 MapReduce 模式的核心思想是,将大任务拆分成多个小任务,针对这些小任务分别计算后,再合并各小任务的结果 以得到大任务的计算结果。这种模式下任务运行完成之后,整个任务进程就结束了,属于短任务模式。但任务进程的启动和停止是一件很耗时的事儿,因此 MapReduce 对处理实时性的任务就不太合适了。实时性任务主要是针对流数据的处理原创 2021-12-24 21:14:24 · 29285 阅读 · 0 评论 -
分布式计算模式:MapReduce
分布式计算模式:MapReduce前言什么是分而治之?分治法的原理抽象模型MapReduce 工作原理MapReduce 实践应用知识扩展:Fork-Join 计算模式是什么意思呢?总结前言两层调度时提到,Mesos 的第二层调度是由 Framework 完成的。这里的 Framework 通常就是计算框架,比如 Hadoop、Spark 等。用户基于这些计算框架,可以完成不同类型和规模的计算。Hadoop 这个框架主要用于解决海量数据的计算问题。海量数据分成多个进程,每个进程计算一部分,然后汇总原创 2021-12-23 22:38:32 · 31074 阅读 · 0 评论 -
分布式事务与分布式锁相关问题
分布式事务的相关问题2PC 和 3PC 的第一步到底是不是“类似”的?2PC 的第一步投票(voting)阶段中,参与者收到事务执行询问请求时,就执行事务但不提交;而 3PC 却写着在 PreCommit 阶段执行事务不提交。2PC 和 3PC 的第一步,说它们类似,是指它们均是通过协调者,来询问参与者是否可以正常执行事务操作,参与者也都会给协调者回复。在 2PC 中,如果所有参与者都返回结果后,会进入第二阶段,也就是提交阶段,也可以说是执行阶段,根据第一阶段的投票结果,进行提交或取消。在原创 2021-12-23 21:39:15 · 29639 阅读 · 0 评论 -
分布式调度架构:共享状态调度
分布式调度架构:共享状态调度前言什么是共享状态调度?共享状态调度设计Omega 调度架构Omega 共享调度工作原理知识扩展:单体调度、两层调度和共享调度的区别是什么?总结前言在两层调度架构中,第二层调度只知道集群中的部分资源,无法进行全局最优调度。是否有办法解决全局最优调度的问题呢?解决办法是共享状态调度。什么是共享状态调度?集群中需要管理的对象主要包括两种:资源的分配和使用状态;任务的调度和执行状态;在单体调度中,这两种对象都是由单体调度器管理的,因此可以比较容易地保证全局状态的原创 2021-12-22 22:57:05 · 29610 阅读 · 0 评论 -
分布式调度架构:两层调度
分布式调度架构:两层调度前言什么是两层调度?两层调度设计两层调度架构资源分配算法最大最小公平算法主导资源公平算法。对比这两种调度算法知识扩展:两层调度如何保证不同的业务不会互相干扰?总结前言单体调度的核心是,所有节点的资源以及用户的任务均由中央服务器统一管理和调度。因此,中央服务器很容易成为单点瓶颈,会直接导致其支持的调度规模和服务类型受限。于是两层调度就出现了什么是两层调度?在单体调度架构中,中央服务器的单点瓶颈问题,会限制调度的效率和支持的任务类型。中央服务器的性能会限制调度的效率很好理解原创 2021-12-22 22:07:20 · 29945 阅读 · 0 评论 -
分布式调度架构:单体调度
分布式调度架构:单体调度 前言什么是单体调度?单体调度设计Borg 调度设计Borg 调度算法知识扩展:多个集群 / 数据中心如何实现单体调度呢?总结前言通过云资源管理的集中式架构和非集中式架构,可以看出分布式系统架构的目的是,将多个服务器资源管理起来,寻找合适的服务器去执行用户任务。衡量一个服务器是否合适会涉及很多条件或约束,比如在一些场景下,任务存在优先级,需要执行多个任务的时候,通常需要满足优先级高的任务优先执行的条件。但在这些条件中,服务器资源能够满足用户任务对资源的诉求是必须的。原创 2021-12-21 23:32:12 · 23291 阅读 · 0 评论 -
分布式体系结构:非集中式结构
分布式体系结构:非集中式结构前言什么是非集中式结构?Akka 集群Redis 集群Cassandra 集群对比分析知识扩展:如何优化 Gossip 协议中的重复消息问题?总结前言虽然很多云上的管理都采用了集中式结构,但是这种结构对中心服务器性能要求很高,而且存在单点瓶颈和单点故障问题。为了解决这个问题,分布式领域中又出现了非集中式结构,也叫作分布式结构。什么是非集中式结构?在非集中式结构中,服务的执行和数据的存储被分散到不同的服务器集群,服务器集群间通过消息传递进行通信和协调。在非集中式结构原创 2021-12-21 21:52:23 · 22964 阅读 · 0 评论 -
分布式体系结构:集中式结构
分布式体系结构:集中式结构前言什么是集中式结构?经典集中式结构Google BorgKubernetesMesos分析对比知识扩展:Mesos 是如何支持容器部署的?总结前言云上的资源丰富,可以尽可能地把更多的服务器组织起来,作为一个统一的资源,为多个用户提供服务。而如何组织,就是分布式体系结构的范畴了。很多场景下,请求都会汇总到一台服务器上,由这台服务器统一协调请求和其他服务器之间的关系。这种由一台服务器统一管理其他服务器的方式,就是分布式体系结构中的集中式结构(也称为 Master/Slave原创 2021-12-21 17:45:45 · 30013 阅读 · 0 评论 -
分布式技术引爆人工智能
分布式技术引爆人工智能前言什么是人工智能?数据处理分布式模型训练什么是分布式模型训练?数据分布式训练模型分布式训练混合模型训练总结前言以人工智能技术为例,了解分布式技术的应用及其重要性。什么是人工智能?2016 年 3 月,Google AlphaGo 与围棋世界冠军李世石进行围棋人机大战,以 4 比 1 的总分获胜。至此,人工智能技术被推向了高潮。现在,人工智能已经广泛渗入到了我们的生活中,比如手机拍照美化、人脸识别、平安城市、自然语言处理、语音识别等。人工智能就是机器模拟人的思维。目前,对原创 2021-12-21 16:41:24 · 29697 阅读 · 0 评论 -
分布式的锁
分布式的锁前言为什么要使用分布锁?分布式锁的三种实现方法及对比基于关系型数据库实现分布式锁基于缓存实现分布式锁基于 ZooKeeper 实现分布式锁三种实现方式对比知识扩展:如何解决分布式锁的羊群效应问题?总结前言分布式互斥的同一临界资源同一时刻只能被一个程序访问的问题,在解决分布式互斥的算法中,介绍了如何协调多个进程获取权限和根据权限有序访问共享资源,“获得访问权限的进程可以访问共享资源,其他进程必须等待拥有该权限的进程释放权限”。但是,在访问共享资源时,这个权限是如何设置或产生的,以及设置或产生原创 2021-12-21 15:08:18 · 29660 阅读 · 0 评论 -
分布式事务
分布式事务前言什么是分布式事务?如何实现分布式事务?基于 XA 协议的二阶段提交方法三阶段提交方法基于分布式消息的最终一致性方案三种实现方式对比知识扩展:刚性事务与柔性事务总结前言对于网上购物的每一笔订单来说,电商平台一般都会有两个核心步骤:订单业务采取下订单操作,库存业务采取减库存操作。通常这两个业务会运行在不同的机器上,甚至是运行在不同区域的机器上。针对同一笔订单,当且仅当订单操作和减库存操作一致时,才能保证交易的正确性。一笔订单只有这两个操作都完成,才能算做处理成功,否则处理失败。原创 2021-12-21 13:54:38 · 29336 阅读 · 0 评论 -
分布式选举
分布式选举前言为什么要有分布式选举?分布式选举的算法长者为大:Bully 算法民主投票:Raft 算法具有优先级的民主投票:ZAB 算法三种选举算法的对比分析知识扩展:为什么“多数派”选主算法通常采用奇数节点,而不是偶数节点呢?总结前言集群一般是由两个或两个以上的服务器组建而成,每个服务器都是一个节点。例如,数据库集群提供了读写功能,管理集群提供了管理、故障恢复等功能。对于一个集群来说,多个节点到底是怎么协同,怎么管理的呢。比如,数据库集群,如何保证写入的数据在每个节点上都一致呢?选一个“领导”来原创 2021-12-21 11:34:21 · 29574 阅读 · 0 评论 -
分布式互斥
分布式互斥前言什么是分布式互斥?如何才能让分布式系统里的程序互斥地访问临界资源霸道总裁:集中式算法民主协商:分布式算法轮值 CEO:令牌环算法知识扩展:有适合大规模系统中的分布式互斥算法吗?总结前言如何让分布在不同计算机上的程序具有“团队精神”,如何让程序通过协作共同去达成一个业务目标。什么是分布式互斥?你正在一家餐厅使用自助咖啡机泡制咖啡,突然有个人过来挪走了你的杯子,开始泡制他自己的咖啡。你耐着性子等他操作完,继续泡制自己的咖啡。结果你开始没多久,他又回来中断了你泡制咖啡的过程。相信要不了几原创 2021-12-21 02:14:57 · 29691 阅读 · 0 评论 -
分布式系统的指标
分布式系统的指标前言分布式系统的指标性能(Performance)资源占用(Resource Usage)可用性(Availability)可靠性可扩展性(Scalability)不同场景下分布式系统的指标总结前言分布式系统的指标可以用来具体地衡量一个分布式系统。分布式系统的指标从分布式技术的起源可以看出,分布式系统的出现就是为了用廉价的、普通的机器解决单个计算机处理复杂、大规模数据和任务时存在的性能问题、资源瓶颈问题,以及可用性和可扩展性问题。分布式的目的是用更多的机器,处理更多的数据和更复杂原创 2021-12-20 22:00:27 · 29308 阅读 · 0 评论 -
分布式的演变
分布式的演变前言分布式起源单兵模式:单机模式游击队模式:数据并行或数据分布式集团军模式:任务并行或任务分布式分布式是什么?总结前言从理解分布式的发展驱动因素开始,探寻它的本质,了解分布式的起源,是如何从单台计算机发展到分布式的,进而深入理解什么是分布式。为了方便更好地理解这个演进过程,不考虑多核、多处理器的情况,假定每台计算机都是单核、单处理器的。分布式起源单兵模式:单机模式1946 年情人节发布的 ENIAC 是世界上的第一台通用计算机,它占地 170 平米重达 30 吨,每秒可进行 500原创 2021-12-20 21:19:42 · 29252 阅读 · 0 评论