拉钩教育高薪训练营学习笔记——分布式理论与分布式架构设计理论
1. 分布式架构介绍
分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通
信和协调的系统。
通俗的理解,所谓分布式系统,就是一个业务拆分成多个子业务,分布在不同的服务器节点,共同
构成的系统称为分布式系统,同一个分布式系统中的服务器节点在空间部署上是可以随意分布的,这些服务器可能放在不同的机柜中,也可能在不同的机房中,甚至分布在不同的城市。
1.1 分布式与集群的区别
集群: 多个服务器做同一个事情
分布式: 多个服务器做不同的事情
1.2 分布式系统特性
1. 分布性:空间中随机分布。这些计算机可以分布在不同的机房,不同的城市,甚至不同的国家。
2. 对等性:分布式系统中的计算机没有主/从之分,组成分布式系统的所有节点都是对等的。
3. 并发性:同一个分布式系统的多个节点,可能会并发地操作一些共享的资源,诸如数据库或分布式存储。
4. 缺乏全局时钟:既然各个计算机之间是依赖于交换信息来进行相互通信,很难定义两件事件的先后顺序,缺乏全局时终控制序列
5. 故障总会发生:组成分布式的计算机,都有可能在某一时刻突然间崩掉。分的计算机越多,可能崩掉一个的几率就越大。如果再考虑到设计程序时的异常故障,也会加大故障的概率。
6. 处理单点故障单点SPoF(Single Point of Failure):某个角色或者功能只有某一台计算机在支撑,在这台计算机上出现的故障是单点故障。
1.3 分布式系统面临的问题
通信异常
网络本身的不可靠性,因此每次网络通信都会伴随着网络不可用的风险(光纤、路由、DNS等硬件
设备或系统的不可用),都会导致最终分布式系统无法顺利进行一次网络通信,另外,即使分布式
系统各节点之间的网络通信能够正常执行,其延时也会大于单机操作,存在巨大的延时差别,也会
影响消息的收发过程,因此消息丢失和消息延迟变的非常普遍。
网络分区
网络之间出现了网络不连通,但各个子网络的内部网络是正常的,从而导致整个系统的网络环境被
切分成了若干个孤立的区域,分布式系统就会出现局部小集群,在极端情况下,这些小集群会独立
完成原本需要整个分布式系统才能完成的功能,包括数据的事务处理,这就对分布式一致性提出非
常大的挑战。
节点故障
节点故障是分布式系统下另一个比较常见的问题,指的是组成分布式系统的服务器节点出现的宕机或"僵死"现象,根据经验来说,每个节点都有可能出现故障,并且经常发生.
三态
分布式系统每一次请求与响应存在特有的“三态”概念,即成功、失败和超时。
重发
分布式系统在发生调用的时候可能会出现 失败 超时 的情况. 这个时候需要重新发起调用.
幂等
一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同
场景1:
场景2:
场景3:
2. 分布式理论
2.1 数据一致性
什么是分布式数据一致性
分布式数据一致性,指的是数据在多份副本中存储时,各副本中的数据是一致的。
副本一致性
一致性分类
单调读一致性:如果一个进程已经读取到一个特定值,那么该进程不会读取到该值以前的任何值。
单调写一致性: 系统保证对同一个进程的写操作串行化。
一致性模型图:
2.2 CAP定理
一致性(C-Consistency)
可用性(A-Availability)
允许网络丢失从一个节点发送到另一个节点的任意多条消息,即不同步. 也就是说,G1和G2发送给对方的任何消息都是可以放弃的,也就是说G1和G2可能因为各种意外情况,导致无法成功进行同步,分布式系统要能容忍这种情况。
接下去,client请求的是G2服务器,由于G2服务器的数据是v0,所以client得到的数据是v0
结论: 很明显,G1返回的是v1数据,G2返回的是v0数据,两者不一致。其余情况也有类似推导,也就是说CAP三者不能同时出现。
CAP三者如何权衡
2.3 BASE理论
3.分布式一致性协议
3.1 两阶段提交协议(2PC)
两阶段提交协议
2PC执行流程
成功执行事务事务提交流程
发送提交请求:协调者向所有参与者发出 commit 请求。
事务询问:协调者向所有的参与者发送事务内容,询问是否可以执行事务提交操作,并开始等待各参与者的响应。
2PC 优点缺点
3.2 三阶段提交协议(3PC)
三阶段提交协议
三阶段提交升级点(基于二阶段):
三个阶段详解
2PC对比3PC
3.3 NWR协议
3.4 Gossip 协议
什么是Gossip 协议
Gossip原理
通信方式
2. Pull
与 Pull 类似,只是多了一步,A 再将本地比 B 新的数据推送给 B,B 则更新本地
优缺点
3.5 Paxos协议
什么是Paxos
在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。Paxos算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性。
如何解决2PC和3PC的存在的问题呢?
2. 步骤-引入主协调者,以他的命令为基准
Basic Paxos相关概念
basic paxos流程
Basic Paxos流程图
Acceptor失败时的basic Paxos
Proposer失败时的basic Paxos
针对活锁问题解决起来非常简单: 只需要在每个Proposer再去提案的时候随机加上一个等待时间即可
Multi-Paxos流程图
2. 第二次流程-直接由Leader确认
Multi-Paxos角色重叠流程图
3.6 Raft协议
什么是Raft协议
Raft相关概念
3.7 Lease机制
什么是Lease机制
Lease是颁发者对一段时间内数据一致性的承诺;
分布式系统中,如何确认一个节点是否工作正常?如果有5副本1-5。其中1号为主副本
2. 会在剩下的副节点中选取一当主节点
2. 出现网络问题
4. 如果到01:10时间,主节点会进行续约操作,然后在下发新的Lease
5. 如果主节点宕机,其他节点申请Lease也会失败,承认主节点存在
6. 副节点申请Lease,申请成功. 因为Lease过期
lease的容错
4.分布式系统设计策略
4.1 心跳检测
累计失效检测机制
4.2 高可用
2. 互备模式
互备模式指两台主机同时运行各自的服务工作且相互监测情况。在数据库高可用部分,常见的互备是MM模式。MM模式即Multi-Master模式,指一个系统存在多个master,每个master都具有read-write能力,会根据时间戳或业务逻辑合并版本
3. 集群模式
高可用HA下"脑裂问题"
1. 什么是脑裂.
4.3 容错性
问题描述:
那这种问题有什么好办法解决呢?
4.4 负载均衡
5. 分布式架构服务调用
5.1 服务调用
5.2 实现方式
RPC 框架
2. Hessian
3. Dubbo
4. gRPC
5.3 跨域调用
常见的解决方案
6.分布式服务治理
6.1 服务协调
6.2 服务削峰
为什么要削峰
流量削峰方案
削峰从本质上来说就是更多地延缓用户请求,以及层层过滤用户的访问需求,遵从“最后落地到数据库的请求数要尽量少”的原则。
在这里,消息队列就像“水库”一样,拦截上游的洪水,削减进入下游河道的洪峰流量,从而达到减免洪水灾害的目的。
分层过滤的核心思想
通过在不同的层次尽可能地过滤掉无效请求。
6.3 服务降级
降级策略
分级降级
结合服务能否降级的优先原则,并根据台风预警(都属于风暴预警)的等级进行参考设计,可将分布式服务架构的所有服务进行故障风暴等级划分为以下四种:
6.4 服务限流
什么是服务限流
多维度限流
限流算法
存在问题:
3. 限流算法-漏桶
4. 限流算法-令牌桶
6.5 服务熔断
举例说明:
像这种调用链路的连锁故障,叫做雪崩。
熔断机制
在这种时候,就需要我们的熔断机制来挽救整个系统。
熔断不可能是永久的。当经过了规定时间之后,服务将从熔断状态回复过来,再次接受调用方的远程调用。
熔断机制实现
6.6 服务链路追踪
随着服务的越来越多,对调用链的分析会越来越复杂。它们之间的调用关系也许如下:
链路跟踪具备的功能
2. 各个调用环节的性能分析
3. 数据分析
通过可视化分布式系统的模块和他们之间的相互联系来理解系统拓扑。点击某个节点会展示这个模块的详情,比如它当前的状态和请求数量。
链路跟踪设计原则
链路跟踪Trace模型
链路跟踪系统实现:
7.架构设计基本原则
7.1 开闭原则
开闭原则的定义
开闭原则的作用
开闭原则的实现方法
7.2 单一职责原则
单一职责原则的定义
单一职责原则的优点
7.3 接口隔离原则
接口隔离原则的定义
接口隔离原则的优点
接口隔离原则的实现方法
7.4 里氏替换原则
里氏替换原则的定义
里氏替换原则的作用
里氏替换原则的实现方法
7.5 依赖倒置原则
依赖倒置原则定义
依赖倒置原则的作用
7.6 迪米特法则
迪米特法则的定义
迪米特法则的优点
迪米特法则的实现方法
7.7 合成复用原则
合成复用原则的定义
合成复用原则的重要性
合成复用原则的实现方法
拉钩教育高薪训练营学习笔记——分布式理论与分布式架构设计理论相关推荐
- 拉钩教育高薪训练营学习笔记
Tomcat请求处理过程 Tomcat是什么? Tomcat是一个Http服务器(能够接收并且处理Http请求,所以Tomcat是一个Http服务器) HTTP服务器接收到请求之后把请求交给Servl ...
- 拉勾教育Java训练营学习感受/学习笔记--MyBatis
拉勾教育Java训练营学习感受/学习笔记–MyBatis 文章目录 拉勾教育Java训练营学习感受/学习笔记--MyBatis 1.普通jdbc操作流程以及问题 1.1 流程 1.2 问题 2.自定义 ...
- 架构方面学习笔记(3)-前端架构设计
2022.02.08 今天读了一篇关于前端整洁架构的设计,因此对其中的内容进行了一些整理以及我自己的思考,后续阅读<领域驱动设计>后可以加入更多的内容. References: 前端领域的 ...
- 系统工程(SE)学习笔记(四)——系统架构设计
TOC 在法求学时,一位教授告诉我,架构为什么是architecture?因为它有点像art.对于这个稍微有点"冷"的笑话,我第一个联想到的就是香港中银大厦,在我看来,中银大厦的外 ...
- 单例设计模式(拉勾教育大数据学习笔记)
单例设计模式的概念: 在某些特殊场合中,一个类对外提供且只提供一个对象时,这样的类叫做单例类,而设计单例的流程和思想叫做单例设计模式. 单例设计模式的实现流程: 1. 私有化构造方法,使用privat ...
- 拉勾教育大数据高薪训练营学习心得与笔记(开启属于自己的The Way To God)
目录 改变/坚持/努力/成神 一.Before The Way To Lagou 1.个人经历 2.认识拉钩 3.选择拉钩 4.心里话!!! 二.After The Way To Lagou 1.课程 ...
- python 下载拉钩教育AES加密视频
说在前面: 下面我们要爬取的是拉钩教育课程上面的视频,课程已经购买过了.但是由于没有提供缓冲和下载视频的功能,所以就打算把视频通过python给下载下来,以下的文章都是参考博友的,自己总结下并学习学习 ...
- 05_01_拉钩教育课程管理系统之一:项目介绍
任务一 项目介绍与后台系统搭建 1. 项目架构 1.1 项目介绍 拉钩教育后台管理系统,是提供给拉钩教育的相关业务人员使用的一个后台管理系统, 业务人员可以在这个后台管理系统中,对课程信息.讲师信 ...
- Python爬虫实现全自动爬取拉钩教育视频
ps:改良之后的多线程版本在最后 背景 大饼加了不少技术交流群,之前在群里看到拉钩教育平台在做活动,花了1块钱买了套课程.比较尴尬的是大饼一般都会在上下班的路中学习下(路上时间比较久)而这个视频无法缓 ...
- 算法训练营学习笔记1
算法训练营学习笔记 贪心算法 心算法总是做出当前最好的选择,期望通过局部最优选择得到全局最优的解决方案.从问题的初始解开始,一步歩地做出当前最好的选择,逐步逼近问题的目标,尽可能得到最优解: 贪心本质 ...
最新文章
- 网易云音乐:基于分布式图学习PGL的推荐系统优化之路
- SSM中抛出异常 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoad
- 【设计模式】设计模式C++编程实现之观察者模式(ObserverPattern)
- Namomo Spring Camp Div2 Week1 - 第三次打卡
- mini2440_x35 ubuntu下使用dnw进行传送文件
- 【算法】剑指 Offer 61. 扑克牌中的顺子 【重刷】
- Python安装时import matplotlib.pyplot as plt报错
- 关于unity导出FBX文件
- 修改VMware硬盘序列号SN
- 次世代游戏建模这7问
- Win10问题篇:解决AMD家CPU机械,固态硬盘混用导致的卡顿(爆音)问题。
- Docker所在目录以及查询正在运行容器的所在位置
- 电商项目day09(网站前台之广告功能实现优化策略)
- 王爽汇编语言 实验8
- 做什么样的小生意适合一两个人去做,月收入在一万左右?
- CVPR 2018 | 腾讯AI Lab关注的三大方向与55篇论文
- win10桌面图标有小白标_白标移动应用程序,带有react native和babel
- NX/UG二次开发—其他—分享几个UG内部函数
- 基于Android智能终端的远程控制系统
- Windows 10字体模糊发虚! 如何解决?
热门文章
- 云和恩墨助力大地保险新核心业务系统上线,开启数字化保险4.0时代
- c语言怎么用右移代替除法,除法和算术右移之间的巧妙取代
- Java基础知识和进阶
- 【Arduino】基础传感器使用
- 安卓设备修改屏幕像素密度以及查看屏幕分辨率
- 严题集6.65//Leetcode105 已知二叉树前序序列和中序序列分别存放在两个一位数组中,建立该二叉树的二叉链表
- ddr4 dqs 频率_一张图看懂如何选择DDR4内存频率和容量
- python词云图_Python快速生成词云图,这是最详细的教程,没有之一!
- JavaScript——DOM文档
- 随处可用的坐姿小帮手,还能按摩热敷,荣泰P30按摩坐垫体验