5.架构初探+分布式理论 | 青训营笔记

89 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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 这里我也是刚考试完这部分的内容...