高并发大访问量架构设计演进之路 归纳总结
高并发大访问量架构设计演进之路 归纳总结
第01:大型架构的演进之路
第02(上):分布式缓存
第02(下):分布式缓存
第03:分布式消息队列
第04:分布式数据存储
第05:分布式服务框架
第06:高性能系统架构
第07:高可用系统架构
第08:系统的安全架构
第09:架构实战案例分析
第10:如何成为技术专家
系统的垂直伸缩,水平伸缩
系统的性能瓶颈:分部式缓存;分布式数据存储,分布式服务架构;
强烈的好奇心,工程技术,产生价值赚钱(科学研究不同)
扎实的软件技术基础:操作系统,数据结构,设计模式,编程语言,
出色的编程能力:优秀的代码
深刻领悟主流技术产品模式;
互联网架构的关键技术:缓存,异步,分布
互联网架构的核心要素:性能,可用,安全
架构设计方案:系统,框架,数据库
架构师的成长:搞定问题的攻略
大型分布式架构
优秀架构师必备的技能:
强烈的好奇心,
敏锐的业务嗅觉,工程技术,产生价值赚钱(科学研究不同)
扎实的软件技术基础:操作系统,数据结构,数据库原理,设计模式,编程语言,
出色的编程能力:优秀的代码
深刻领悟主流技术产品模式:站在巨人的肩膀上思考;
架构知识体系和学习路径:
基础扎实:操作系统原理,数据结构,数据库原理,算法能力,设计模式;
技术产品:缓存,异步,分布式存储,微服务
架构设计考虑的点:高可用,高性能,高安全
大型互联网架构:高并发,大流量,高可用,海量数据,用户分布广,安全,发布平缓
垂直伸缩:提高CPU,CIPAN,小型机到大型机
水平伸缩:
少量用户,单机系统:应用服务器:应用程序,文件,数据库
万级用户,数据库与应用分离,2,3台服务器
十万级用户,缓存+应用服务器集群
百万级用户,反向代理,CDN+数据库读写分离
千万级用户,分布式文件系统+分布式数据库系统
亿级用户,搜素引擎,nosql,消息队列+分布式服务
缓存知识架构图:
特点:技术简单,性能提升显著,应用场景多
缓存快:内存,最终结果不需计算,降低IO设备响应
缓存存储:hash表,key,value比数据库读取快
设计缓存:缓存键集合总数要小,缓存时长,缓存空间大
缓存类型:
通读缓存:
代理缓存存在客户端
反向代理:代理数据中心,没有时在访问反向代理缓存服务器,没有在访问web应用服务器
内容分发CDN缓存:数据机房部署的缓存服务器
旁缓存:对象缓存需连接,没有°数据库,加装到缓存服务器中
合理使用缓存:
一次修改,多次读取热点数据 数据不一致与脏读
缓存雪崩:对象缓存是通过加装数据到内容
分布式缓存
代理和反向代理
内容分发网络CDN
分布式对象缓存架构设计:memached服务器集群(memached服务器,memached客户端程序)
3分布式消息队列
分布式消息队列原理:通过消息队列来让消息生产者和消息消费者到达异步,互不相关,同步调用,异步调用,异步处理,易于伸缩,
构建事件驱动架构:点对点模型:逻辑相对独立,耗时长
发布订阅模式:逻辑复杂
消息队列的优点:异步处理,减少时间,易伸缩,平衡高峰处理压力,填补低峰
消息队列的缺点:消息无序,重复队列,复杂度风险
消息队列的反模式:阻塞式调用,
消息队列的产品:kafka,rabbitMQ,ACTIVEMQ
4分布式数据存储
mysql主从复制架构:实现数据库读写分离,更新主数据库,记录日志,从数据库根据日志更新从数据库
一主多从复制的优点:分摊负载,高可用,便于冷备,专机专用
mysql主主复制方案:可用提高数据库主数据库高可用性
更新表结构会导致巨大的延时
数据分片原理:数据分片方案:数据分片扩容:数据库部署:分库,分片
数据库部署:单一数据库,主从数据库,一主多从,多主多从,分片存储
大规模数据冲突性:nosql,时间戳大的数据覆盖时间戳小的数据
mysql亿级数据分区存储
分布式数据库架构
nosql数据库CAP原理,最终一致性
分布式数据库中间件:mycat 支持join
5分布式服务架构,微服务
单体系统的挑战:编译部署困难,代码分支管理困难,数据库连接耗尽,新增业务困难,发布困难,
分布式服务架构原理:根据模块将单体系统分解成不同的应用,单独发布到不同服务器
微服务架构;dubbo,spring cloud
消息队列kafka,RocketMQ,activeMA,RabbitMQ
服务治理与最佳实践:需求,价值,设计原则,实践,找工具,事件索源
6高性能系统架构:性能测试,性能优化
系统性能度量方法:性能测试,性能优化,主观体验,客观测试
系统性能主要指标:性能计算器(cpu,i/o,内存),响应时间,吞吐量,并发数(同事请求数据),TPS,QPS
系统性能测试:性能测试,负载测试,压力测试,稳定性测试
系统性能优化的7层境界:机房骨干网络优化(多点部署),服务器硬件优化,操作系统优化,虚拟机优化,基础组件优化tomcat,软件架构优化(缓存,异步,集群),
软件代码优化(面试对象,并发,多线程,异步,数据机构,数组,链表,has表特性,数据库优化)
7高可用系统架构
系统可用性度量与管理:n个9,qq是9个9,99.99%可用性指标,故障分
DNS被劫持: CDN服务器不可用,宕机,代码bug,黑客攻击,第三方服务部可用
系统高可用架构:负载均衡,备份与失效,消息队列,限流与降级,异地多活
系统高可用策略:应用服务器负载均衡服务器,HTTP重定向负载均衡,DNS负载均衡,反向代理服务器(应用在20台服务器左右的环境),
ip层负载均衡,数据链路层负载均衡(大型互联网应用配置的标准),限流(对高并发限流),降级(关闭部分功能,评价,物流确认)
异地多活多机房架构,就近原则,数据同步,主机房,主从模式
备份,失效转移,限流与降级
高可用运维:自动化部署,自动化监控(cpu,i/o),自动化测试,预发布测试
8高安全的系统架构
web攻击:xss攻击(恶意url攻击,< 将<转译(),sql注入攻击(编定参数,用户提交的只有参数不是sql语句),CSRF攻击(表单token,验证码)
web防护:过滤消毒将<转译(,SQL参数绑定,验证码,web防火墙,开源防火墙modsecurity
数据加密技术:单项散列加密(明文到密文),对称加密(加密解密),非对称加密
信息过滤与反垃圾:分类算法,布隆过滤器
9架构实战案例分析
初创互联网公司架构演化与发展
下一代编程框架:响应式编程架构设计与开发
分布式数据库设计与开发
如何成为架构师:
从普通程序员到顶尖专家之路
扭曲现实力场,架构师重新定义问题
架构师阅读清单
目录
分布式消息队列
分布式消息队列原理
构建事件驱动架构
消息队列的优缺点
消息队列的反模式
分布式数据存储
mysql主从复制架构
mysql亿级数据分区存储
分布式数据库架构
nosql数据库
分布式服务架构
单体系统的挑战
分布式服务架构原理
服务治理与最佳实践
高性能系统架构
系统性能度量方法
系统性能主要指标
系统性能测试:负载与压力测试
系统性能优化的7层境界
高可用系统架构
系统可用性度量与管理
系统高可用策略:备份,失效转移,限流与降级
高可用运维
高安全的系统架构
web攻击与防护
数据加密技术与秘钥安全
信息过滤与反垃圾
架构实战案例分析
初创互联网公司架构演化与发展
下一代编程框架:响应式编程架构设计与开发
分布式数据库设计与开发
如何成为架构师:
从普通程序员到顶尖专家之路
扭曲现实力场,架构师重新定义问题
架构师阅读清单