架构演化

发布于: 7 小时前

互联网系统面临的挑战

  1. 高并发, 大流量: 海量用户的并发访问

  2. 高可用 系统7x24小时不间断服务。

  • 要求在系统正在运行时候,进行维护和升级。

  • 要求某个服务器挂了,系统还能正常服务

  1. 海量数据

  • 需要存储,管理海量数据。

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

  • 国内复杂的网络环境,各地网络情况千差万别

  1. 安全环境恶劣

  • 由于互联网的开发性, 使得互联网站更容易受到攻击,大型网站几乎每天都会遭到黑客攻击情况;网站泄露用户密码。

  1. 需求快速变更,发布频繁

  • 互联网产品为了快速适应市场,满足用户需求,发布频繁,一周一个版本, 有时甚至一天几十次发布。

  1. 渐进式发展

  • 几乎所有的大型互联网站都是从一个小网站开始, 渐进的发展起来的。

  • Facebook 是在伯克扎克在哈佛大学宿舍开发的

  • Google 的第一台服务器部署在斯坦福大学的实验室

  • 阿里巴巴则是在马云的客厅里诞生

应对高并发挑战的两个技术方向

垂直伸缩

垂直伸缩概述

通过升级硬件和网络吞吐能力可以实现垂直伸缩。由于不需要改变应用架构,所以通常被认为是最简单的短期伸缩方案。

  1. 通过使用RAID(独立冗余磁盘阵列)增加I/O 吞吐量

  2. 通过切换到SSD(固态硬盘)改善I/O访问速度

  3. 通过增加内存减少I/O操作

  4. 通过升级网络接口 或 增加网络接口提高网络吞吐能力

  5. 更新服务器使用更多处理器或更多线程

垂直伸缩有优点与缺点

优点
  • 升级速度快

  • 能让系统快速适应需求的变化

缺点
  • 达到某个程度后, 增加计算能力需要更多花费

  • 垂直伸缩有物理极限

  • 操作系统或者应用程序自身限制了垂直伸缩只能达到某个点

水平伸缩

水平伸缩概述

水平伸缩是指通过增加服务器的数量, 提升计算能力的一类架构方法

水平伸缩提升服务能力与花费几乎是线性变化的, 不会出现单台服务器的极限

架构演化

最简单架构: 一台服务器搞定

第一阶段: 应用数据分离

第二阶段: 使用缓存改善系统性能

第三阶段: 使用应用服务器集群改善系统的并发处理能力

第四阶段: 数据库读写分离

第五阶段: 使用反向代理 和 CDN加速网站响应

第六阶段: 使用分布式文件系统 和 分布式数据库系统

第七阶段: 使用NoSQL 和 搜索引擎

第八阶段: 业务拆分

第九阶段: 微服务及中台化

用户头像

满山李子

关注

还未添加个人签名 2018.09.18 加入

还未添加个人简介

评论

发布
暂无评论
架构演化