极客大学架构师训练营第四周作业
问:一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。
从当前计算机的性能瓶颈来说,
瓶颈出现的顺序通常是:
1 硬盘写读
硬盘的 写和读,是最常见的瓶颈。解决方案:
(1)应用分离:让至少 3 台电脑,一起读写数据。
(2)使用缓存:客户端缓存 --> 将频繁使用的数据,存于高速缓存中
2 数据库的写读(可能还是与数据库依赖于硬盘有关)
解决方案:
(1)数据库 读写分离:2 人干 一 活
(2)业务分离,配合不同数据库:不同类型的业务数据采用合适的数据库类型
(3)分库、分表
(4)采用 Oracle 数据库(设备也匹配)——> 分布式
3 应用程序的处理能力不足
这可能是软件算法不够优化。也可能是科学计算过于吃算力。
解决方案:
(1)负载均衡服务器:DNS 负载均衡、
(2)CDN
(3)反向代理
(4)分布式
(5)业务拆分、功能拆分
(6)中台 + 微服务化:同类合并
学习小计
互联网架构演化阶段
第〇阶段:一个服务器搞定一切
第一阶段:应用数据分离
第二阶段:使用缓存改善系统性能
第三阶段:使用应用服务器集群改善系统的并发处理能力
第四阶段:数据库读写分离
第五阶段:使用反向代理和 CDN 加速网站响应
第六阶段:使用分布式文件系统和分布式数据库系统
第七阶段:使用 NoSQL 和搜索引擎
第八阶段:业务拆分
第九阶段:微服务及中台化
第十阶段:大数据及智能化
用到的手段:
分层 + 分割
分布式 + 集群
缓存
异步
冗余
以上都尽量自动实现
目标有几个:
高可用 —— 我认为是第一个需要考虑的!一台宕机,不影响正常服务
高性能 —— 废话,谁都希望这个
可伸缩 —— 功能不变的情况下,可以通过增减服务器数量来 匹配变化的负载
可扩展 —— 随需求演化,功能易扩展
安全 —— 攻击可抗、数据防盗
版权声明: 本文为 InfoQ 作者【ihiming】的原创文章。
原文链接:【http://xie.infoq.cn/article/548012b5791839eabc7595d45】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论