《大型网站技术架构》读书笔记
2017-03-26 14:17
99 查看
一、大型网站核心要素
大型网站跟普通的中小型网站完全不同,它对网站高并发、高可用、高性能有极高的要求。
对于高并发问题,在硬件上要考虑应用服务器集群,并应用负载均衡(硬件负载均衡器较贵,一般使用软件负载均衡解决方案。)分摊服务器请求的压力。在软件上要结合业务需求进行合理的设计。比如秒杀系统的设计,可以应用js脚本控制。js脚本通过秒杀是否开始的标识和下单页面url的随机数来控制浏览器端页面的显示。当秒杀开始的时候生成一个新的js文件并被用户浏览器加载,秒杀按钮可用,进行秒杀。这个js文件使用随机版本号,因此不会被浏览器、CDN、反向代理服务器缓存。此外在策略上应考虑单独部署秒杀系统,即使因为访问流量过大,服务器瘫痪,也不影响网站其它业务的进行。
对于高可用问题,主要手段就是增加冗余。比如增加应用服务器并应用负载均衡,即使有一台服务器宕机,也可以转发到可用的服务器继续提供服务。此外数据服务应提供容灾备份,保证数据不丢失。在软件方面,应用自动化测试,自动化发布,网站实时监控、报警等手段,最大化的保证网站在开发/发布阶段对网站高可用性的支持。
对于高性能问题,应该针对问题的具体情况进行取舍,针对网站的性能瓶颈提出相应的解决方案。比如关系型数据库,可以对大表进行水平或垂直拆分(业务拆分),分库分表,读写分离(主数据库提供读写功能,从数据库只提供读功能,在主数据库和从数据库之间进行数据复制)等操作。对于网站首页(访问量较大),一般采用静态页面、缓存(本地缓存、服务器缓存)等手段来改善性能。此外,还可以通过反向代理(无需将请求继续转发至应用服务器,而将静态资源直接返回给用户)和CDN(离终端用户最近的网络服务提供商)等加速网站的响应速度。
二、网站安全应对策略
js脚本攻击(xss攻击应对危险字符代码进行转义),sql注入(参数化、正则过滤),web应用防火墙,数据加密(对称加密、非对称加密)等。
三、书中的几个观点值得注意:
1、技术只是提供了解决问题的手段,但不能解决所有问题。一般情况下,好的解决方案都是技术跟业务的深度融合。
2、好的架构不是设计出来的,而是在对业务的深刻理解的基础上运用合适的技术,在不断地应用过程当中演化出来的。
读这本书最大的收获,就是对大型网站架构有个纲要性的认识,真正的掌握还需要不断的在实践中体会。
大型网站跟普通的中小型网站完全不同,它对网站高并发、高可用、高性能有极高的要求。
对于高并发问题,在硬件上要考虑应用服务器集群,并应用负载均衡(硬件负载均衡器较贵,一般使用软件负载均衡解决方案。)分摊服务器请求的压力。在软件上要结合业务需求进行合理的设计。比如秒杀系统的设计,可以应用js脚本控制。js脚本通过秒杀是否开始的标识和下单页面url的随机数来控制浏览器端页面的显示。当秒杀开始的时候生成一个新的js文件并被用户浏览器加载,秒杀按钮可用,进行秒杀。这个js文件使用随机版本号,因此不会被浏览器、CDN、反向代理服务器缓存。此外在策略上应考虑单独部署秒杀系统,即使因为访问流量过大,服务器瘫痪,也不影响网站其它业务的进行。
对于高可用问题,主要手段就是增加冗余。比如增加应用服务器并应用负载均衡,即使有一台服务器宕机,也可以转发到可用的服务器继续提供服务。此外数据服务应提供容灾备份,保证数据不丢失。在软件方面,应用自动化测试,自动化发布,网站实时监控、报警等手段,最大化的保证网站在开发/发布阶段对网站高可用性的支持。
对于高性能问题,应该针对问题的具体情况进行取舍,针对网站的性能瓶颈提出相应的解决方案。比如关系型数据库,可以对大表进行水平或垂直拆分(业务拆分),分库分表,读写分离(主数据库提供读写功能,从数据库只提供读功能,在主数据库和从数据库之间进行数据复制)等操作。对于网站首页(访问量较大),一般采用静态页面、缓存(本地缓存、服务器缓存)等手段来改善性能。此外,还可以通过反向代理(无需将请求继续转发至应用服务器,而将静态资源直接返回给用户)和CDN(离终端用户最近的网络服务提供商)等加速网站的响应速度。
二、网站安全应对策略
js脚本攻击(xss攻击应对危险字符代码进行转义),sql注入(参数化、正则过滤),web应用防火墙,数据加密(对称加密、非对称加密)等。
三、书中的几个观点值得注意:
1、技术只是提供了解决问题的手段,但不能解决所有问题。一般情况下,好的解决方案都是技术跟业务的深度融合。
2、好的架构不是设计出来的,而是在对业务的深刻理解的基础上运用合适的技术,在不断地应用过程当中演化出来的。
读这本书最大的收获,就是对大型网站架构有个纲要性的认识,真正的掌握还需要不断的在实践中体会。
![](https://images2015.cnblogs.com/blog/112316/201703/112316-20170326151626846-1231432239.png)
相关文章推荐
- 《大型网站技术架构》读书笔记[2] - 架构的模式
- 《大型网站技术架构》读书笔记(二)——大型网站系统架构图
- 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构
- 《大型网站技术架构》读书笔记三:大型网站核心架构要素
- 《大型网站技术架构》读书笔记一:大型网站架构演化
- 《大型网站技术架构》读书笔记
- 《大型网站技术架构》读书笔记
- 《大型网站技术架构》读书笔记之八:固若金汤之网站的安全性架构
- 《大型网站技术架构》读书笔记四:瞬时响应之网站的高性能架构
- 《大型网站技术架构》读书笔记[2] - 架构的模式
- 《大型网站技术架构》读书笔记一:大型网站架构演化
- web分析读书笔记-电子邮件营销分析
- 《深入理解计算机系统 2nd》读书笔记----第7章 链接
- 读书笔记:事务信息系统(下)
- 《HTTP权威指南》读书笔记(第一章~第三章)
- 《高效程序猿的45个习惯》读书笔记
- 《Microsoft Sql server 2008 Internals》读书笔记--第十一章DBCC Internals(9)
- 《深入理解计算机系统 2nd》部分读书笔记---第9章 虚拟存储器(未完成)
- 《C陷阱与缺陷》读书笔记
- 《重构-改善既有代码的设计》读书笔记