作家
登录

大型分布式网站架构技术总结

作者: 来源: 2017-05-08 15:01:38 阅读 我要评论

本文是进修大年夜型分布式网站架构的技巧总结。对架垢荷琐高机能,高可用,可伸缩,可扩大的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书标记,一部分是小我经验总结。对大年夜型分布式网站架构有很好的参考价值。

一、大年夜型网站的特点

大年夜流量,高并发

消息队列:模块化的体系,经由过程消息队列进行交互,使模块之间的依附解耦。

海量数据,办事高可用

安然情况恶劣,易受收集进击

功能多,变赶紧,频繁宣布

大年夜小到大年夜,渐进成长

以用户为中间

免费办事,付费体验

二、大年夜型网站架构目标

高机能:供给快速的拜访体验。

高可用:网站办事一向可以正常拜访。

可伸缩:经由过程硬件增长/削减,进步/降低处理才能。

扩大性:便利的经由过程新增/移除方法,增长/削减新的功能/模块。

敏捷性:随需应变,快速响应;

三、大年夜型网站架构模式

分层:一般可分为,应用层,办事层,数据层,治理层,分析层;

瓜分:一般按照营业/模块/功能特点进行划分,比如应用层分为首页,用户中间。

分布式:将应用分开安排(比如多台物理机),经由过程长途调用协同工作。

集群:一个应用/模块/功能安排多份(如:多台物理机),经由过程负载均衡合营供给对外拜访。

缓存:将数据放在距离应用或用户比来的地位,加快拜访速度。

七、可扩大架构

异步:将同步的操作异步化。客户端发出请求,不等待办事峨锾螃,等办事端处理完毕后,应用通知或轮询的方法告诉请求方。一般指:请求——响应——通知 模式。

冗余:增长副本,进步可用性,安然性,机能。

安然:对已知问题有有效的解决筹划,对未知/潜在问题建立发没赝防御机制。

主动化:将反复的,不须要人工介入的工作,经由过程对象的方法,应用机械完成。

敏捷性:积极接收需求变革,快速响应营业成长需求。

四、高机能架构

以用户为中间,供给快速的网页拜访体验。重要参数有较短的响应时光,较大年夜的并发处理才能,较高的吞吐量,稳定的机能参数。

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

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

大年夜数据存储层:支撑应用层和办事层的日记数据收集,关系数据库和NOSQL数据库的构造化和半构造化数据收集;

浏览器优化:削减Http请求数,应用浏览器缓存,启悠揭捉?缩,Css Js地位,Js异步,削减Cookie传输;

CDN加快,反向代劳;

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

若何进步可用性,就是须要急切解决的问题。起首,须要大年夜架构级别,在筹划的时刻,就推敲可用性。行业内一般用几个9表示可用性指标。比如四个9(99.99),一年内许可的弗采取时光是53分钟。

五、高可用架构

大年夜型网站应当在任何时刻都可以正常拜访。正常供给对外办事。因为大年夜型网站的复杂性,分布式,便宜办事器,开源数据库,操作体系等特点。要包管高可用是很艰苦的,也就是说网站的故障是弗成避免的。

不合层级应用的策略不合,一般采取冗余备份和掉效转移解决高可用问题。

应用层:一般设计为无状况的,对于每次请求,应用哪一台办事器处理是没有影响的。一般应用负载均衡技巧(须要解决Session同步问题),实现高可用。

办事层:负载均衡,分级治理,快速掉败(超时设置),异步调用,办事降级,幂等设计等。

数据层:冗余备份(冷,热备[同步,异步],温备),掉效转移(确认,转移,恢复)。数据高可用方面有名的理论基本是CAP理论(持久性,可用性,数据一致性[强一致,用户一致,最终一致])

六、可伸缩架构

伸缩性是指在不改变原有架构设计的基本上,经由过程添加/削减硬件(办事器)的方法,进步/降低体系的处理才能。

应用层:对应用进行垂直或程度切分。然后针对单一功能进行负载均衡(DNS,HTTP[反向代劳],IP,链路层)。

办事层:与应用层类似;

数据层:分库,分表,NOSQL等;常用算法Hash,一致性Hash。

可以便利的进行功能模块的新增/移除,供给代码/模块级别优胜的可扩大性。

模块化,组件化:高内聚,内耦合,进步复竽暌姑性,扩大性。

安然性:供给网站安然拜访和数据加密,安然存储等策略。

稳假寓口:定义稳定的接口,在接口不变的情况下,内部构造可以“随便”变更。

设计模式:应用面向对象思惟,原则,应用设计模式,进行代码层面的设计。

代码优化:合理的架构,多线程,资本复竽暌姑(对象池,线程池等),优胜的数据构造,JVM调优,单例,Cache等;

应用层优化:处理网站营业的办事器。应用缓存,异步,集群

分布式办事:公用模块办事化,供给其他体系应用,进步可重用性,扩大性。

八、安然架构

对已知问题有有效的解决筹划,对未知/潜在问题建立发没赝防御机制。对于安然问题,起重要进步安然意识,建立一个安然的有效机制,大年夜政策层面,组织层面进行保障。比如办事器暗码不克不及泄漏,暗码每月更新,并且三次内不克不及反复;每周安然扫描等。以轨制化的方法,加强安然体系的扶植。同时,须要留意与安然有关的各个环节。安然问题不容忽视。包含基本举措措施安然,应用体系安然,数据保密安然等。

基本举措措施安然:硬件采购,操作体系,收集情况方面的安然。一般采取,正规渠道购买高质量的产品,选择安然的操作体系,及时修补马脚,安装杀毒软件防火墙。防备病毒,后门。设置防火墙策略,建立DDOS防御体系,应用进击检测体系,进行子网隔离等手段。


  推荐阅读

  Java多线程之内置锁与显示锁

Java中具有经由过程Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是淮竽暌剐弥补,今天就来做一个总结。Synchronized内置锁获得锁和释放锁是隐式的,>>>详细阅读


本文标题:大型分布式网站架构技术总结

地址:http://www.17bianji.com/lsqh/35065.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)