分布式(极客)

高性能、可扩展、高可用、低资源占用
在这里插入图片描述

1. 协调与同步

互斥访问共享资源

集中式管理
协商(分布式算法)
令牌环
在这里插入图片描述

分布式选主

    Bully算法(节点id大的是主,MongoDB的选举(id是时间戳))
    Raft算法(民主投票,多的赢,Google 开源的 Kubernetes)
    ZAB 算法(具有优先级的民主投票,相较于 Raft 算法的投票机制,ZAB 算法增加了通过节点 ID 和数据 ID 作为参考进行选主,节点 ID 和数据 ID 越大,表示数据越新,优先成为主。)

在这里插入图片描述

分布式共识(记账)

在这里插入图片描述

分布式事务

    二阶段、三阶段、消息最终一致(BASE对acid的弱化)

在这里插入图片描述

分布式锁

    redis(setnxex)
    zookeeper(需要频繁地添加和删除节点,所以性能不如基于缓存实现的分布式锁)

在这里插入图片描述

2. 资源(硬件资源)管理和负载调度

集中式结构(看)

在这里插入图片描述

(系统内所有的业务也均先由中央服务器处理。多个节点服务器与中央服务器连接,并将自己的信息汇报给中央服务器,由中央服务器统一进行资源和任务调度)看

非集中式(看)

在这里插入图片描述

(Gossip协议,是最终一致性协议,https://cloud.tencent.com/developer/article/1662426)
redis,分片(哈希槽),高可用(主备)
Cassandra(与redis区别,每个节点仅代表一个hash值)

单体调度

为用户任务寻找合适的服务器这个过程,在分布式领域中叫作调度,就是任务和分布式系统中的空闲资源直接进行匹配调度
在这里插入图片描述

两层调度(资源调度和任务调度分开)

在这里插入图片描述
在这里插入图片描述

共享状态调度

3. 分布式计算

分而治之(Map reduce)

(Map reduce,如统计人口总数分为统计各个省的然后汇总,每个任务执行相同的步骤)类似java中的Fork-Join)

Stream

(实时性任务,持续的数据,实时推荐,不提供存储的能力)(看storm的原理)

Actor

(分布式并行计算模型,类似于对象,包括状态、行为和消息,与对象不同的是异步,消息保存着调用信息)
Erlang
Akka

流水线

(大任务拆分,不同步骤不同的线程执行,拆分的是步骤)

4. 分布式通信(看22)

同步通信

    远程调用(RPC,如dubbo)

异步通信

(异步,类似的是观察者模式,观察者模式是同步)
发布订阅(mq)

5. 分布式存储

CAP(P分区容错性,分布式环境网络等导致分区不可避免,因此要保证CP或AP)

在这里插入图片描述

数据分片

在这里插入图片描述

数据复制(让主备数据库保持一致的技术)

在这里插入图片描述
半同步复制中,对于未回复数据更新结果的节点,主节点强制更新其信息

缓存

在这里插入图片描述

6. 高可靠

负载均衡

在这里插入图片描述

流量控制

在这里插入图片描述在 Sentinel 中,关于流量控制有两种方式:一种是通过并发线程数进行流量控制,另一种是通过 QPS 指标进行流量控制。

故障隔离

线程隔离(线程池)
进程隔离
资源隔离(容器隔离Docker,虚拟机隔离,主机隔离,机房隔离)
在这里插入图片描述

故障恢复

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值