这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天
富文本编辑器有点问题,一些图片放不上来,看链接吧
bytedance.feishu.cn/file/boxcn4…
架构初探
SOA架构
1.将应用的不同功能单位抽象为服务
2.定义服务之间的通信标准
问题:
- 数据一致性
- 高可用
- 治理
- 解耦 过微
企业中的后端架构
云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。
基础:
- 虚拟化技术
- 编排方案 比如docker
架构
- IaaS 房屋出租平台
- PaaS 房屋的改造,装修,配套设备
- SaaS 软件服务
- FaaS
弹性计算资源
-
服务资源调度
-
微服务
-
大服务
-
计算资源调度
-
在线:热销榜单
-
离线:热销榜单更新
-
消息队列
-
在线:削峰,解耦
-
离线:大数据分析
弹性存储资源类型
-
经典
-
对象:宣传视频
-
大数据:用户消费记录
-
关系型数据库
-
收银记录
-
元数据 不是很大,但是用于很多的场景
-
服务发现:蛋糕店通讯录
-
NoSQL
-
KV:来个 XX 蛋糕
总结:将存储资源当成服务一样
微服务架构
通信标准
HTTP(restful)
RPC(grpc)
消息队列刷新缓存..
服务网格
升级之后,..业务和rpc或者http框架绑定在一起,升级困难,那么就需要...
后端架构的挑战
实践
分布式理论
这个章节,上学期我刚上完了分布式的选修课。简单复习一下。
优势
去中心化
- 低成本
- 弹性
- 资源共享
- 可靠性高
挑战
- 普遍的节点故障
- 不可靠的网络
- 异构的机器与硬件环境
- 安全
分布式存储 :gfs,hadoop,zookeeper
分布式数据库 :hbase,mongodb
分布式计算:
分布式的6种故障类型:
1,2,3,4,5,6
tcp的fin丢失会怎么样?
CAP理论
C 一致性(严格一致性)
A可用性,任何时间都能用
P分区容错性,任何网络分区故障,能够对提供满足一致性和可用性,除非整个网络都崩掉。
ACID
base理论
基本可用 假设系统出现了不可预知的故障,但还是能用,可能会有响应时间的损失和功能上的损失
软状态 允许系统种的数据存在中间状态,不影响整体可用性
最终一致性 没有其他新的更新的情况下,数据最终一定能够达到一致的状态,所有客户端对系统的数据访问,最终都能获取到最新的值。
分布式事务
两阶段提交:
prepare阶段: 从节点向主节点发送prepare,主节点回done
commit阶段:主节点向从节点发commit,从节点回ack
主节点有故障,选新的主节点,从节点有故障,回滚操作。
三阶段提交:
prepare拆成两部分,先询问一下是否可以执行,解决了单点故障和阻塞的问题。
MVCC:
悲观锁,乐观锁
mvcc多版本控制的一种方法,使多版本读写操作没冲突,不会阻塞写,不会阻塞读。为每个修改保存一个版本,和事务时间戳关联,提高高并发性能,解决脏读问题。
共识协议
raft协议(解决paxos过于复杂) term任期号
paxos
mapReduce 这里我也是刚考试完这部分的内容...