Week 4 学习总结

用户头像
balsamspear
关注
发布于: 2020 年 10 月 22 日

4.1 系统架构:系统技术挑战与方案

挑战:



  • 高并发(高性能)、大流量

  • 高可用

  • 海量数据

  • 用户分布广泛,网络情况复杂

  • 安全环境恶劣

  • 版本周期短,版本更新频繁

  • 渐进式发展(演化原则)



高并发:



  1. 垂直伸缩:升级单台服务器的硬件、网络

1. 单台服务器有物理极限

2. 硬件升级到一定程度后,每单位性能需要的硬件成本指数上升

3. 单个应用也有性能瓶颈

4. 架构、程序不需要改动

  1. 水平伸缩:增加服务器数量

1. 成本低

2. 扩展简单

3. 性能瓶颈高

4. 对架构、程序需求更高



4.2 分布式架构演化



  1. 单台服务器

  2. 应用数据分离

  3. 增加缓存系统

  4. 应用服务器集群

  5. 数据库读写分离

  6. 反向代理和 CDN

  7. 分布式数据库

  8. NoSQL 和搜索引擎

  9. 业务拆分

  10. 微服务和中台化

  11. 大数据与智能化



4.3 架构模式与要素



架构模式,就是对重复的系统架构问题的通用解决方案。



架构模式:



  1. 分层

  2. 服务拆分

  3. 分布式

  4. 集群

  5. 缓存

  6. 异步

  7. 冗余

  8. 自动化

  9. 安全



架构核心要素:



  1. 高性能

  2. 高可用(硬指标)

  3. 可伸缩

  4. 可扩展

  5. 安全



互联网架构技术



  • 前端架构

- App 及 Web 开发技术

- 浏览器及 HTTP 优化技术

- CDN

- 动静分离

- 图片服务

- 反向代理

- DNS

  • 网关及应用层架构

- 网关架构

- 负载均衡

- 动态页面静态化

- 业务拆分

  • 服务层架构

- 微服务架构

- 分布式消息队列

- 分布式缓存

- 分布式一致性(锁)服务

  • 存储层架构

- 分布式文件

- 分布式关系数据库

- NoSQL 数据库

  • 后台架构

- 大数据平台

- 搜索引擎

- 推荐引擎

- 数据仓库

  • 运维与安全

- 数据采集与展示

- 数据监控与报警

- 攻击与防护

- 数据加密与解密



4.4 维基百科技术架构



  • DNS(数据中心)

  • LVS

  • 缓存

  • 图片服务器

  • 搜索服务

  • MySQL



4.5 案例:淘宝业务发展及技术架构



  1. 2003:买网站

1. LAMP:Linux + Apache + MySQL + PHP

2. MySQL 读写分离

3. 应用服务集群

  1. 2004:Oracle + Java

1. 转 Oracle + IBM 小型机(垂直伸缩)

2. 转为 Java

3. 引入雅虎搜索引擎

  1. 2006:spring

1. CDN

2. JBoss

3. 缓存

  1. 2007:分布式



对成熟技术的努力与收获不成正比!



4.6 案例:宅米网技术变迁



架构 1.0



  1. Nginx

  2. 应用服务器集群

  3. MySQL



挑战:



  1. 数据库压力大

  2. 请示响应慢

  3. 50 万峰值订单



架构 2.0



  1. CDN

  2. 分布式文件系统

  3. 应用服务集群

  4. Redis 集群

  5. Kafka

  6. 大数据平台

  7. MySQL(1 主多从)



挑战:



  1. 代码耦合严重,相似代码多

  2. 订单表数据量达到数据库存储极限

  3. 200 万峰值订单



架构 3.0



  1. 独立基本服务

  2. MongoDB

  3. 批处理任务



数据量大:冷热分离



用户头像

balsamspear

关注

还未添加个人签名 2019.10.24 加入

还未添加个人简介

评论

发布
暂无评论
Week 4学习总结