《大型网站技术架构》讲解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

大型网站技术架构Jeff2020-07-11初始架构01初始架构子主题经典的LAMP模式一台服务器子主题应用、DB、文件都在一块应用服务和数据分离02问题:性能变差、数据存储空间不够应用服务和数据分离应用服务和数据分离3台服务器01应用服务器需要处理大量业务逻辑,这需要更强的CPU;02数据服务器需要快速磁盘检索和数据缓存,这需要更快的硬盘和更大的内存;03文件服务器需要存储用户上传的文件,需要更大的硬盘;使用缓存改善网站性能031.问题:访问量持续增长,web性能再次变差;响应速度变慢2.2-8定律:web的访问规律:80%业务访问集中在20%的数据上;3.增加应用服务器本地缓存,这个最直接,也最简单4.增加远程分布式缓存集群:当本地的内存不足以放下需要的缓存的数据时,就只能通过分布式5.使用类似于memcached之类的开源缓存产品。redis缓存更多的数据使用缓存改善网站性能应用服务器集群化041随着网站的成长,单一应用服务器成为网站瓶颈;2应用服务器集群化提高网站并发处理能力3做成集群的关键是增加负载均衡服务器来调度应用集群应用服务器集群化数据库读写分离05数据库读写分离1问题:当增加缓存之后,随着访问量的持续增长,数据库再次出现问题:数据库负载压力过高2数据库读写分离利用数据库主从热备功能,实现读写分离;读写分离的细节这篇文章讲的很清楚了,就不多说,有需要的请参考使用反向代理和CDN06问题:网站做大,全国甚至全球各区域的访问量都来了,但是各区域的访问速度差别巨大;解决方案:使用反向代理和CDNCDN和反向代理基本原理都是缓存,CDN部署在网络提供商的机房,用户请求最近的节点访问;而反向代理则部署在网站的中心机房;使用反向代理和CDN使用分布式FS和分布式DBS07使用分布式FS和分布式DBS1问题:应用集群如果将session管理做好,或做成无状态的应用集群,可达到线性伸缩;而数据库的压力却不是很好解决;2解决方案:使用分布式数据库拆分,可使用的方法有:3单表拆分:将不同的表放到不同的库中,从而降低单个数据库的结点的负载;这样带来的问题就是不同库中的表无法做join操作;4另一种方法就是按业务拆分,将属于同一业务的表划分到一个库中,从而有效降低数据库负载,同时在业务逻辑实现上不至于过于复杂;使用NOSQL和搜索引擎08问题:出现海量数据存储和检索的需求解决方案:使用NoSQl产品分布式部署来支持海量数据的查询和存储;使用NOSQL和搜索引擎业务切分09业务切分1按照业务来划分子系统,按产品线划分系统,通过分布式服务来协同工作;2系统发展到最后都是一个拆分的过程,也不会像三国一样合就必分,系统职能越来越单一化。这也回到了面向对象编程的五项基本原则的单一职责的原则。感谢聆听

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功