
分布式
siwluxuefeng
后知后觉
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式:随笔
1.传统的网站结构为单一应用架构,也就是把所有的功能都放在一个项目工程里,部署在一台服务器上。2.当访问量越来越大,我们需要通过不断添加服务器的方式来应对越来越大的访问量,产生了集群;或是将应用拆分成几个不相干的应用部署在不同的服务器上,产生了分布式系统。集群:将相同的程序、功能部署在两台或是多台服务器上,这些服务器对外提供的功能是完全一样的,集群就是通过不同横向扩展增加服务器的方式,以提高服务的能力。分布式系统:将两个或多个程序、功能分别运行在两台或多台主机服务器上,这些服务对外提供的功能并不一转载 2021-03-07 11:15:46 · 162 阅读 · 0 评论 -
分布式概念:流量控制
网络传输中的流量控制,就是让发送方发送数据的速率不要太快,让接收方来得及接收数据,具体的实现方法就是滑动窗口。滑动窗口指的是,在任意时刻,发送方都维持一个连续的允许发送的数据大小,称为发送窗口;接收方也会维持一个连续的允许接收的数据大小,称为接收窗口。每次发送方给接收方发送数据后,必须收到接收方返回的确认消息,发送窗口才可向后移动,发送新的数据。漏桶策略无论用户请求有多少,无论请求速率有多大,“漏桶”都会接收下来,但从漏桶里出来的请求是固定速率的,保证服务器可以处理得游刃有余。当“漏桶.原创 2020-06-05 00:56:54 · 700 阅读 · 0 评论 -
分布式概念:负载均衡
负载均衡可以分为两种:一种是请求负载均衡,即将用户的请求均衡地分发到不同的服务器进行处理;另一种是数据负载均衡,即将用户更新的数据分发到不同的存储服务器(数据分片技术)网络层的角度,通常有基于 DNS、IP 报文等的负载均衡方法;分布式系统层,主要包括轮询策略、随机策略、哈希和一致性哈希等;顺序轮询按服务器序号依次选择处理。加权轮询加权轮询为每个服务器设置了优先级,每次请求过来时会挑选优先级最高的服务器进行处理。优点:实现简单,且对于请求所需开销差不多时,负载均衡效果比较明显。缺点:原创 2020-06-05 00:40:27 · 476 阅读 · 0 评论 -
分布式概念:分布式缓存
缓存技术一般是指,用一个更快的存储设备存储一些经常用到的数据,供用户快速访问。分布式缓存就是指在分布式环境或系统下,把一些热门数据存储到离用户近、离应用近的位置,并尽量存储到更快的设备,以减少远程数据传输的延迟。Redis 分布式缓存原理每个节点都负责一部分数据的存储,同时,每个节点还会进行主备设计来提高 Redis 的可靠性。1.Redis 支持多数据结构。2.Redis 支持持久化。3.Redis 支持主备同步。计算机体系结构缓存由于内存和 CPU 访问速度...原创 2020-06-04 00:56:03 · 3049 阅读 · 0 评论 -
分布式概念:数据复制
数据复制是实现数据可靠性的关键方法。对数据进行备份,以提高数据的可用性和可靠性,而实现数据备份的关键技术就是“数据复制技术”。可以保证存储在不同节点上的同一份数据是一致的。这样当一个节点故障后,可以从其他存储该数据的节点获取数据,避免数据丢失,进而提高了系统的可靠性。主备数据库主备数据库中的数据保持一致。1.比较注重一致性,比如同步复制技术;当用户请求更新数据时,主数据库必须要同步到备数据库之后才可给用户返回,即如果主数据库没有同步到备数据库,用户的更新操作会一直阻塞。这种方式保证了数据的原创 2020-06-04 00:43:50 · 536 阅读 · 0 评论 -
分布式概念:一致性哈希
存储方案选型时,通常会考虑这三个维度数据均匀:(1)不同存储节点中存储的数据要尽量均衡,避免让某一个或某几个节点存储压力过大,而其他节点却几乎没什么数据。(2)用户访问也要做到均衡,避免出现某一个或某几个节点的访问量很大,但其他节点却无人问津的情况。数据稳定:当存储节点出现故障需要移除或者扩增时,数据按照分布规则得到的结果应该尽量保持稳定,不要出现大范围的数据迁移。节点异构性:根据不同存储节点的硬件配置,分配不同权重比例的数据量。哈希是指,将数据按照提前规定好的函数(哈希函数)映射到相应的存原创 2020-06-02 00:35:43 · 358 阅读 · 0 评论 -
分布式概念:分布式存储
把数据分布在多台存储节点上,可以为大规模应用提供大容量、高性能、高可用、高扩展的存储服务。而,分布式存储系统就是其具体实现。分布式存储系统的核心,是将用户需要存储的数据根据某种规则存储到不同的机器上,当用户想要获取指定数据时,再按照规则到存储数据的机器里获取。当用户(即应用程序)想要访问数据 D,分布式操作引擎通过一些映射方式,比如 Hash、一致性 Hash、数据范围分类等,将用户引导至数据 D 所属的存储节点获取数据。数据根据数据的特征,这些不同的数据通常被划分为三类:结构化数.原创 2020-06-02 00:27:00 · 1142 阅读 · 0 评论 -
分布式概念:CAP理论
C 代表 Consistency,一致性,是指所有节点在同一时刻的数据是相同的,即更新操作执行结束并响应用户完成后,所有节点存储的数据会保持相同。A 代表 Availability,可用性,是指系统提供的服务一直处于可用状态,对于用户的请求可即时响应。P 代表 Partition Tolerance,分区容错性,是指在分布式系统遇到网络分区的情况下,仍然可以响应用户的请求。网络分区是指因为网络故障导致网络不连通,不同节点分布在不同的子网络中,各个子网络内网络正常。CAP 理论指的就是,在分布式系统中原创 2020-06-01 14:04:42 · 335 阅读 · 0 评论 -
分布式概念:通信之消息队列(RocketMQ)
比如用户注册,注册完成后发送通知邮件。如果不使用消息队列:1.检查用户注册信息的合法性,如果合法则将注册信息写入数据库中,若不合法,直接返回,流程结束;2.将用户注册信息写入数据库后,给用户发送通知邮件,以告知用户注册的相关信息,比如注册账号等信息。注册消息写入数据库和发送通知邮件这两个组件间是直接交互,且是同步通信方式。那么,从用户提交注册到收到响应,需要等系统完成这两个步骤。引入消息队列作为注册消息写入数据库和发送通知邮件这两个组件间的中间通信者,那么这两个组件就可以实现异步通信..原创 2020-05-31 17:23:46 · 295 阅读 · 0 评论 -
分布式概念:通信之发布订阅(kafka)
发布订阅的三要素是生产者、消费者和消息中心生产者负责产生数据放到消息中心,消费者向消息中心订阅自己感兴趣的消息,当发布者推送数据到消息中心后,消息中心根据消费者订阅情况将相关数据推送给对应的订阅者。发布订阅的基本工作原理生产者可以发送消息到消息中心,而消息中心通常以主题(Topic)进行划分,每条消息都会有相应的主题,消息会被存储到自己所属的主题中,订阅该主题的所有消费者均可获得该消息进行消费。假设生产者 1 发布一个 Topic 相关数据或消息,消费者 1~3 均订阅了该 Topi原创 2020-05-31 16:47:21 · 702 阅读 · 0 评论 -
分布式概念:通信之远程调用(RPC)
本地调用,是进程内函数之间的相互调用;远程调用,是进程间函数的相互调用,是进程间通信 IPC(Inter-Process Communication)的一种方式。通过远程调用,一个进程可以看到其他进程的函数、方法等。本地过程调用(Local Procedure Call,LPC),是指运行在同一台机器上的进程之间的互相通信,即在多进程操作系统中,运行的不同进程之间可以通过 LPC 进行函数调用。远程过程调用(Remote Procedure Call,RPC),是指不同机器中运行的进程之间的相互通信原创 2020-05-31 16:16:04 · 719 阅读 · 0 评论 -
分布式概念:分布式计算(MapReduce、Stream、Actor、流水线)
Map Reduce 模式(海量数据的处理)核心思想:将一个复杂的、难以直接解决的大问题,分割成一些规模较小的、可以比较简单的或直接求解的子问题,这些子问题之间相互独立且与原问题形式相同,递归地求解这些子问题,然后将子问题的解合并得到原问题的解。MapReduce 分为 Map 和 Reduce 两个核心阶段,其中 Map 对应“分”,即把复杂的任务分解为若干个“简单的任务”执行;Reduce 对应着“合”,即对 Map 阶段的结果进行汇总。MapReduce 主要包括以下三种组件:Ma原创 2020-05-31 11:25:12 · 1219 阅读 · 0 评论 -
分布式概念:集中式架构(Mesos、Kubernets)与非集中式结构(Redis)
集中式结构由一台或多台服务器组成中央服务器,系统内所有的业务也均先由中央服务器处理。多个节点服务器与中央服务器连接,并将自己的信息汇报给中央服务器,由中央服务器统一进行资源和任务调度:中央服务器根据这些信息,将任务下达给节点服务器;节点服务器执行任务,并将结果反馈给中央服务器。Google BorgBorg 是 Google 内部使用的集群管理系统,采用了典型的集中式结构,负责提交、调度、开始、重启和管理 Google 运行在其上的所有应用。Kubernetes是Borg的一个开源版本K.原创 2020-05-31 10:37:53 · 1055 阅读 · 0 评论 -
分布式概念:调度(任务和资源匹配的过程)
调度,为用户任务寻找合适的服务器这个过程,在分布式领域中叫作调度。单体调度任务和分布式系统中的空闲资源直接进行匹配调度。一个集群中只有一个节点运行调度进程,该节点对集群中的其他节点具有访问权限,可以搜集其他节点的资源信息、节点状态等进行统一管理,同时根据用户下发的任务对资源的需求,在调度器中进行任务与资源匹配,然后根据匹配结果将任务指派给其他节点。单体调度器拥有全局资源视图和全局任务,可以很容易地实现对任务的约束并实施全局性的调度策略。所有节点的资源以及用户的任务均由中央服务器统一管理和调原创 2020-05-31 11:03:48 · 1681 阅读 · 0 评论 -
分布式概念:分布式锁(分布式互斥的一种实现方式)
分布式系统中,多个节点都需要访问一个临界资源,但是同一时刻只能有一个节点可以访问,为了解决这个问题就是要通过分布式互斥来实现;分布式锁就是实现分布式互斥的一种实现方式。锁是实现多线程同时访问同一共享资源,保证同一时刻只有一个线程可访问共享资源所做的一种标记。分布式锁是指分布式环境下,系统部署在多个机器中,实现多进程分布式互斥的一种锁。为了保证多个进程能看到锁,锁被存在公共存储(比如 Redis、数据库等三方存储中),以实现多个进程并发访问同一个临界资源,同一时刻只有一个进程可访问共享资源,确保数据的一致原创 2020-05-27 13:24:01 · 1701 阅读 · 0 评论 -
分布式概念:分布式事务(通过分布式消息来确保事务最终一致性)
分布式事务,就是在分布式系统中运行的事务,由多个本地事务组合而成。例子:对于网上购物的每一笔订单来说,电商平台一般都会有两个核心步骤:一是订单业务采取下订单操作,二是库存业务采取减库存操作。通常,这两个业务会运行在不同的机器上,甚至是运行在不同区域的机器上。针对同一笔订单,当且仅当订单操作和减库存操作一致时,才能保证交易的正确性。也就是说一笔订单,只有这两个操作都完成,才能算做处理成功,否则处理失败。事务的特征 ACID特征:原子性(Atomicity):全部执行成功和全部不执行。一致性(Con原创 2020-05-27 00:32:44 · 350 阅读 · 0 评论 -
分布式概念: 分布式共识(多个节点达到一致性的过程)
分布式共识就是在多个节点均可独自操作或记录的情况下,使得所有节点针对某个状态达成一致的过程。一致性是指,分布式系统中的多个节点之间,给定一系列的操作,在约定协议的保障下,对外界呈现的数据或状态是一致的。共识是指,分布式系统中多个节点之间,彼此对某个状态达成一致结果的过程。分布式共识技术,是区块链技术共识机制的核心。分布式在线记账方法中,没有银行这样的一个集中方,而是由上述 5 台服务器来记录该笔交易。但是,这 5 台服务器均是有各自想法的个体,都可以自主操作或记录,那么如何保证记录的交...原创 2021-01-12 19:56:12 · 1998 阅读 · 0 评论 -
分布式概念:分布式选举(选举主节点)
分布式选举主节点,在一个分布式集群中负责对其他节点的协调和管理。分布式选举的算法序号选举的算法( Bully 算法)核心思想选取 ID 最大的节点作为主节点。在 Bully 算法中,节点的角色有两种:普通节点和主节点。初始化时,所有节点都是平等的,都是普通节点,并且都有成为主的权利。但是,当选主成功后,有且仅有一个节点成为主节点,其他所有节点都是普通节点。当且仅当主节点故障或与其他节点失去联系后,才会重新选主。Bully 算法在选举过程中,需要用到以下 3 种消息:Election 消息,原创 2020-05-26 00:05:54 · 2245 阅读 · 0 评论 -
分布式概念:分布式互斥(临界资源访问)
分布式互斥(Distributed Mutual Exclusion),被互斥访问的共享资源就叫作临界资源(Critical Resource)。集中式算法:每个程序在需要访问临界资源时,先给协调者发送一个请求。如果当前没有程序使用这个资源,协调者直接授权请求程序访问;否则,按照先来后到的顺序为请求程序“排一个号”。如果有程序使用完资源,则通知协调者,协调者从“排号”的队列里取出排在最前面的请求,并给它发送授权消息。拿到授权消息的程序,可以直接去访问临界资源。一个程序完成一次临界资源访问,需要如下原创 2020-05-25 14:00:00 · 1184 阅读 · 0 评论