架构课第四周总结
系统架构, 系统方案
垂直伸缩
垂直伸缩是当大量用户同时请求服务器, 系统资源不足时
通过升级硬件和网路吞吐的方式来实现.
由于不需要改变应用架构, 所以通常被认为是最简单的短期伸缩性方案的实现
通过使用RAID(独立冗余磁盘阵列) 增加I/O 吞吐能力.
通过切换SSD改善I/O访问速度
通过增加内存减少对I/O操作
通过升级网络接口或者郑家网络接口提高吞吐能力
更新服务器使用更多处理器或者更多超线程
垂直伸缩缺点
成本增加
物理极限
操作系统局限
水平伸缩
是指通过增加服务器提升计算能力的一类架构方法
水平伸缩可以克服垂直伸缩带来的单位计算成本随着计算能力的增加而迅速飙升的问题
另外, 水平伸缩总是可以增加更多服务器, 这样就不会像垂直伸缩那样有单服务器极限
水平伸缩缺点:
增加系统架构复杂性.
架构演化
第零阶段
单服务器架构:
单服务器架构是指, 应用和文件和数据库在一个服务器内搭建和部署
第一阶段
简单的分离数据库, 文件和应用服务器分离.
第二阶段
在第一阶段加入缓存服务将部分频繁访问的数据写入缓存中.
第三阶段
加入了多台应用服务器和负载均衡服务器, 使用负载均衡服务器将用户的请求分发给不同的应用服务器, 减缓单个应用服务器的压力
第四阶段
加入主从数据库, 实现读写分离, 主数据库负责写, 从数据库负责读.
第五阶段
使用反向代理和CDN 加速网站的响应
CDN(内容分发网络)是部署在网络运营商机房里面的一个服务器, 通常用来存放静态资源
反向代理服务器主要也是作为缓存服务器, 反向代理服务器检查请求资源在本地存不存在, 如果有直接返回, 如果没有就将请求向下发送至负载均衡服务器.
第六阶段
使用分布式数据库和分布式文件服务器, 解决数据库和文件带来的系统瓶颈.
第七阶段
使用Nosql和搜索引擎
第八阶段
业务拆分, 这时候应用服务器不再是单独的一个服务, 服务与服务通过RPC或者HTTP的方式进行调用.
第九个阶段
微服务及中台化
对于一些服务, 其他服务对此有较高的依赖. 可以将其微服务化由微服务服务器做服务治理. 这时候这些公共服务就是中台. 其他的业务服务根据中台制定好的规范进行开发就可以了.
第十阶段
大数据智能化
架构模式与要素
分层
分层模式将系统横向切分成几个部分, 每个部分负责相对单一的职责. 通过上下层关系组成一个完整的系统.
分割
分割是将系统纵向切割, 分层是通过职责划分而分割是通过业务划分.
分布式
分层和分割的主要目的是为了将切分后的模块便于分布式部署,
常用的分布式
分布式应用和服务
分布式静态资源
分布式数据存储
分布式计算
集群
集群是部署多个相同的服务, 通过负载均衡对外提供服务. 搭建集群可以有效的分担单个服务的压力.
缓存
缓存将数据存放在最近的位置以加快处理速度. 缓存是改善软件性能的第一手段. d
实现缓存的方式
CDN
反向代理
本地缓存
远程缓存
异步
可以解决系统因为同步造成的系统阻塞, 可以解决部分系统并发问题, 提高系统可用性.
冗余
系统可以存在一定的冗余来帮助个别服务在宕机时其他服务仍然可以工作和数据冗余备份.
自动化
降低人工成本, 解决无人值守情况下网站可以正常运行.
安全
对登录 交易风操作需要对网络通讯进行加密, 及服务器上的手机或银行卡号等敏感信息也许进行加密处理;
对于常见的网站攻击(XSS攻击, Sql注入等) 进行防御, 对于垃圾信息 敏感信息进行过滤;
互联网系统架构核心要素
高性能 高可用 可伸缩 可扩展 安全
评论