Week4- 总结
程序的架构
设计原则,设计模式
系统的架构
系统架构概述:互联网系统面临怎样的挑战?
垂直伸缩
增强服务器
水平伸缩
增加服务器
google大概有多少服务器?200W台左右
理论上伸缩能够无限伸缩
架构演化第零阶段:最简单的互联网架构
单体应用
架构演化第一阶段:应用数据分离
拆分服务器
架构演化第二阶段:使用缓存改善系统性能
本地缓存或者远程分布式缓存服务器
架构演化第三阶段:使用应用服务器集群改善系统的并发处理能力
集群方式,使用负载均衡调度服务器
架构演化第四阶段:数据库读写分离
架构演化第五阶段:使用反向代理和CDN加速网站响应
CDN内容分发网络,eg 淘宝在各地放个服务器,用户可以就近访问,主要是静态资源
CDN本质上是个缓存服务,CDN资源是有限的,会去反向代理服务器,看看反向代理服务器里有没有
大部分请求时CDN返回的
架构演化第六阶段:使用分布式文件系统和分布式数据库系统
如果写的压力大了 eg 淘宝早期 垂直伸缩
分布式小文件系统
架构演化第七阶段: 使用Nosql和搜索引擎
架构演化第八阶段: 业务拆分
核心拆分:拆分多个团队去维护
消息队列 数据在多个系统中传递
架构演化第九阶段:微服务及中台化
jar包依赖-》微服务依赖
服务可复用,应用层面便于开发
架构演化第十阶段:大数据与智能化
eg 今日头条
架构模式
分层 (横向)
网关
微服务
基础设施层 缓存 数据库 消息队列
分割(纵向)
按业务进行分
分布式
独立一块
集群
多台机器提供同一个单一的服务
缓存
就近获得数据
异步
MQ
冗余
冗余备份,互相可替代,提高可用性
自动化
主要集中在自动化运维
安全
加密 防攻击
互联网核心要素
高可用,高性能,可伸缩,可扩展,安全
前端架构
App及web开发技术
浏览器及http优化技术
cdn
动静分离
图片服务
反向代理
DNS
网关及应用层架构
网关架构
负载均衡
动态页面静态化
业务拆分
服务层架构
微服务框架
分布式消息队列
分布式缓存
分布式一致性(锁)服务
存储架构
分布式文件
分布式关系数据库
NoSql数据库
后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
评论