《大型网站技术架构》--第三章:大型网站核心架构要素

软件架构需要关注以下部分:1. 性能;2. 可用性;3. 伸缩性;4. 扩展性;5. 安全性

一. 性能

以用户为中心,提供快速的网页访问体验。主要参数有较短的响应时间,较大的并发处理能力,较高的吞吐量,稳定的性能参数。

可分为前端优化,应用层优化,代码层优化,存储层优化。

前端优化:网站业务逻辑之前的部分;

浏览器优化:减少Http请求数,使用浏览器缓存,启用压缩,Css Js位置,Js异步,减少Cookie传输;

缓存:CDN加速,反向代理,服务器本地缓存,分布式缓存;

应用层优化:处理网站业务的服务器。使用服务器本地缓存和分布式缓存,异步,集群

代码优化:合理的架构,多线程,资源复用(对象池,线程池等),良好的数据结构,JVM调优,单例,Cache等;

存储优化:缓存,固态硬盘,光纤传输,优化读写,磁盘冗余,分布式存储(HDFS),NOSQL等;

二. 高可用性

网站高可用性的主要手段是冗余,应用部署在多台服务器上可供同时访问,数据存储在多台服务器上相互备份,任何一台服务器宕机都不会影响整体可用,也不会导致数据丢失。

对于应用服务器,多台应用服务器通过负载均衡组成一个集群对外提供服务,任何一台服务器宕机只要把请求切换到其他正常工作服务器即可,但是前提条件是应用服务器上不能保存会话状态信息。

对于存储服务器,对数据进行冷备和热备。

三. 伸缩性

伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的的数据存储需求。

伸缩性的主要标准有:1. 是否容易向集群中添加新的服务器;2. 新的服务器加入后,是否可以提供和原有服务器无差别服务;3. 集群中可容纳的服务器数限制;

对于应用服务器集群:只要服务器上不保存数据,所有服务器都是对等的,通过F5可以向集群中不断加入服务器。

对于缓存服务器集群:加入新的缓存服务器可能会导致缓存路由失效,进而导致集群中大部分缓存数据都无法访问。需要改进缓存路由算法,保证缓存数据的可访问性(可参考下文)。

对于关系数据库集群:通过路由分区等手段将部署有多个数据库的服务器组成一个集群(可参考下文)。

四. 扩展性

五. 安全性

 

posted @ 2016-10-23 13:13  不停的奋斗  阅读(227)  评论(0编辑  收藏  举报