您的位置:首页 > 运维架构 > 网站架构

《大型网站技术架构》读书笔记

2017-03-26 14:17 99 查看
一、大型网站核心要素

大型网站跟普通的中小型网站完全不同,它对网站高并发、高可用、高性能有极高的要求。

对于高并发问题,在硬件上要考虑应用服务器集群,并应用负载均衡(硬件负载均衡器较贵,一般使用软件负载均衡解决方案。)分摊服务器请求的压力。在软件上要结合业务需求进行合理的设计。比如秒杀系统的设计,可以应用js脚本控制。js脚本通过秒杀是否开始的标识和下单页面url的随机数来控制浏览器端页面的显示。当秒杀开始的时候生成一个新的js文件并被用户浏览器加载,秒杀按钮可用,进行秒杀。这个js文件使用随机版本号,因此不会被浏览器、CDN、反向代理服务器缓存。此外在策略上应考虑单独部署秒杀系统,即使因为访问流量过大,服务器瘫痪,也不影响网站其它业务的进行。

对于高可用问题,主要手段就是增加冗余。比如增加应用服务器并应用负载均衡,即使有一台服务器宕机,也可以转发到可用的服务器继续提供服务。此外数据服务应提供容灾备份,保证数据不丢失。在软件方面,应用自动化测试,自动化发布,网站实时监控、报警等手段,最大化的保证网站在开发/发布阶段对网站高可用性的支持。

对于高性能问题,应该针对问题的具体情况进行取舍,针对网站的性能瓶颈提出相应的解决方案。比如关系型数据库,可以对大表进行水平或垂直拆分(业务拆分),分库分表,读写分离(主数据库提供读写功能,从数据库只提供读功能,在主数据库和从数据库之间进行数据复制)等操作。对于网站首页(访问量较大),一般采用静态页面、缓存(本地缓存、服务器缓存)等手段来改善性能。此外,还可以通过反向代理(无需将请求继续转发至应用服务器,而将静态资源直接返回给用户)和CDN(离终端用户最近的网络服务提供商)等加速网站的响应速度。

二、网站安全应对策略

js脚本攻击(xss攻击应对危险字符代码进行转义),sql注入(参数化、正则过滤),web应用防火墙,数据加密(对称加密、非对称加密)等。

三、书中的几个观点值得注意:

1、技术只是提供了解决问题的手段,但不能解决所有问题。一般情况下,好的解决方案都是技术跟业务的深度融合。

2、好的架构不是设计出来的,而是在对业务的深刻理解的基础上运用合适的技术,在不断地应用过程当中演化出来的。

读这本书最大的收获,就是对大型网站架构有个纲要性的认识,真正的掌握还需要不断的在实践中体会。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: