码迷,mamicode.com
首页 > Web开发 > 详细

大型网站核心架构要素 之一(总览篇)

时间:2016-03-29 01:00:14      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

1、性能,因为用户无法忍受一个响应缓慢的网站。
可以做的优化:
A、在浏览器端,可以通过浏览器缓存,使用页面亚索,合理布局页面,减少Cookie传输等手段来改善性能
B、在网络层面,可以使用CDN+反向代理来提升响应速度(主要是一些静态的文件 以及一些热点文件,从而减轻应用服务器负载压力)。
C、在应用服务器端,可以使用服务器本地缓存和分布式缓存,通过缓存在内存中的热点数据处理用户请求,加快请求处理过程,减轻数据库负载压力。也可以将一些异步操作发送至消息队列等待后续任务处理,而当前请求直接返回响应给用户(自己做的日志系统也是这个理念,记日志后续再进行操作,先返回数据)。后端缓存可以通过集群的方式,来增强整体处理能力,改善性能。
D、在代码层面,也可以通过使用多线程、改善内存管理等手段优化性能。
E、在数据库层面上,索引,缓存,SQL 优化等性能优化手段都已经比较成熟,再加上非关系型数据库 (NOSQL的崛起)也可以带来可观的收益,数据库通过优化数据模型、存储结构、伸缩性等手段在性能方面的优势也日趋明显
衡量标准:衡量网站性能有一些列指标重要的有响应时间、TPS、系统性能计数器等。
总结 对于网站而言性能符合预期仅仅是必要条件,因为无法预知网站可能会面临的访问压力,所以必须要考查系统在高并发访问情况下,超出负载设计能力的情况下可能会出现的性能问题。
2、可用性、 简单来讲 就是网站要保证每时每刻都能用,不能出现网站宕掉的情况。
A、网站高可用型的主要手段是数据冗余。数据存储在多台服务器上互相备份,任何一条服务器宕机都不会影响应用的整体可用,也不会导致数据丢失
衡量标准:衡量一个系统架构设计是否满足高可用的目标,就是假设系统中任何一台或者多台服务器宕机时,以及出现各种不可预期的问题时,系统整体是否依然可用
3、伸缩性、通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求
衡量标准:是否可以用多台服务器构建集群,是否容易向集群中添加新的服务器。加入新的服务器后是否可以和原来的服务器提供无差别服务,集群中可容纳的总的服务器数量是否有限制
4、扩展性、如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构主要的目的
衡量标准: 衡量网站扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新产品耦合度较低。
网站架构的主要手段是事件驱动架构和分布式服务。
a、事件驱动架构在网站通常利用消息队列实现,将用户请求和其他业务事件构造成消息发布到消息队列,消息的处理者作为消费者从消息队列中获取消息进行处理,通过这种方式 将消息产生和消息处理分离出来,可以透明地增加新的消息生产者任务或者新的消息消费者任务
b、分布式服务则是将业务和可复用服务分离开来,通过分布式服务框架调用。新增产品可以通过可复用的服务实现自身的业务逻辑,而对现有产品没有任何影响。可复用服务升级变更的时候,也可以通过提供多版本服务对应实现透明升级。
大型网站为了保持市场地位,还会吸引第三方开发者,调用网站服务,使用网站数据开发周边产品,扩展网站业务
5、安全性、互联网是开放的,任何人在任何地方都可以访问网站。网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。
衡量网站安全架构的标准就是针对现存和潜在的各种攻击与窃密手段,是否有应对策略
 
总结:性能、可用性、伸缩性、扩展性和安全性是网站架构最核心的几个要素,这几个问题解决了,大型网站架构设计的大部分挑战也就克服了。
 
 

大型网站核心架构要素 之一(总览篇)

标签:

原文地址:http://www.cnblogs.com/wangmy/p/5331146.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!