《沈剑架构师训练营》第3章 - 快速性能优化
2021/10/21 23:13:25
本文主要是介绍《沈剑架构师训练营》第3章 - 快速性能优化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
11、性能优化:动静分离,互联网优化利器?
- no11:与静态页面、动态页面匹配的加速技术有哪些?
- 静态页面
- CDN
- nginx
- squid/varnish
- 动态页面
- 分层架构
- 服务化架构
- 数据库,缓存架构
- 静态页面
- no11:动静分离是什么?
- 静态页面与动态页面分开不同的系统访问的架构设计方法
- 静态页面,几毫秒返回
- 动态页面,几百毫秒返回
- no11:「页面静态化」是什么?如何实施?
- 把网页内容提前生成相关的 html,用静态页面相关的加速技术来进行加速
- 适合场景:返回页面结果集有限
- 不适合场景:返回页面结果集数据量过大,如帖子,搜索等
12、性能优化:读写分离,前台与后台分离
- no12:什么是读写分离?能解决什么问题?
- 一主多从,读写分离,主从同步,是一种常见的数据库架构
- 一般来说,主库,提供数据库的写服务,从库,提供数据库的读服务,主从之间通过某种机制来实现数据库的同步,如 MySQL 的 binlog,一个主从同步集群通常被称为一个「分组」
- 能解决什么问题?
- 主要可以线性提升读的性能
- no12:什么是水平切分?能解决什么问题?
- 数据库水平切分后,数据库之间没有数据的重合,不需要同步
- 能解决什么问题?
- 数据库存储容量提升
- no12:什么是前台?什么是后台?
- 前台,用户访问的对外系统
- 后台,运营访问的对内系统
13、本章小结:百万流量,这些技术够用了
- no13:早期单体 ALL in one 架构,遇到什么问题?这阶段的优化思路是什么?
- 性能问题:访问人数多的时候,希望系统快一点
- 耦合问题:当出现问题的时候,系统不要全部挂掉
- 思路:
- 1.技术不炫技,以解决业务问题为导向
- 2.系统改造尽可能小的架构方案
- 3.以最快的速度,提升系统的性能,解决遇到的问题
- no13:单体架构演进:伪分布式,提升性能
- 三大分离
- 动静分离
- 读写分离(引发读写延时新问题)
- 前台后台分离
- 三大分离
- no13:单体架构演进:垂直拆分,解耦
- 业务垂直划分
- 代码垂直划分(子系统解耦)
- 数据库垂直划分(数据量降低,延时缓解)
- 研发团队垂直拆分(专业化,效率提升)
- no13:如何保证垂直拆分后,子系统的高可用?
- 使用反向代理
- 子web系统的性能,不再受到单台机器资源限制,可以扩展
- 子web系统,实现了高可用(伪集群->真集群)
- no13:真集群后,反向代理如何做负载均衡?
- 负载均衡方法:随机、轮询、静态权重轮询、动态权重轮询,一致性哈希
- 负载均衡抓手:四层(转发/交换),七层(转发/交换)
- no13:反向代理,如何保证高可用?
- no13:反向代理技术出现之前,接入层如何扩展?
- DNS 轮询
- no13:使用多层反向代理后,如何做到继续提升性能?
- DNS 轮询
- no13:session 一致性如何保障?
- session 同步法
- 客户端存储法
- 反向代理 hash 一致性
- 后端统一存储法
- no13:如何加速静态资源?
- CDN
这篇关于《沈剑架构师训练营》第3章 - 快速性能优化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-02Java管理系统项目实战入门教程
- 2024-11-02Java监控系统项目实战教程
- 2024-11-02Java就业项目项目实战:从入门到初级工程师的必备技能
- 2024-11-02Java全端项目实战入门教程
- 2024-11-02Java全栈项目实战:从入门到初级应用
- 2024-11-02Java日志系统项目实战:初学者完全指南
- 2024-11-02Java微服务系统项目实战入门教程
- 2024-11-02Java微服务项目实战:新手入门指南
- 2024-11-02Java项目实战:新手入门教程
- 2024-11-02Java小程序项目实战:从入门到简单应用