本文是进修大年夜型分布式网站架构的技巧总结。对架垢荷琐高机能,高可用,可伸缩,可扩大的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书标记,一部分是小我经验总结。对大年夜型分布式网站架构有很好的参考价值。
一、大年夜型网站的特点
大年夜流量,高并发
消息队列:模块化的体系,经由过程消息队列进行交互,使模块之间的依附解耦。
海量数据,办事高可用
安然情况恶劣,易受收集进击
功能多,变赶紧,频繁宣布
大年夜小到大年夜,渐进成长
以用户为中间
免费办事,付费体验
二、大年夜型网站架构目标
高机能:供给快速的拜访体验。
高可用:网站办事一向可以正常拜访。
可伸缩:经由过程硬件增长/削减,进步/降低处理才能。
扩大性:便利的经由过程新增/移除方法,增长/削减新的功能/模块。
敏捷性:随需应变,快速响应;
三、大年夜型网站架构模式
分层:一般可分为,应用层,办事层,数据层,治理层,分析层;
瓜分:一般按照营业/模块/功能特点进行划分,比如应用层分为首页,用户中间。
分布式:将应用分开安排(比如多台物理机),经由过程长途调用协同工作。
集群:一个应用/模块/功能安排多份(如:多台物理机),经由过程负载均衡合营供给对外拜访。
缓存:将数据放在距离应用或用户比来的地位,加快拜访速度。
七、可扩大架构
异步:将同步的操作异步化。客户端发出请求,不等待办事峨锾螃,等办事端处理完毕后,应用通知或轮询的方法告诉请求方。一般指:请求——响应——通知 模式。
冗余:增长副本,进步可用性,安然性,机能。
安然:对已知问题有有效的解决筹划,对未知/潜在问题建立发没赝防御机制。
主动化:将反复的,不须要人工介入的工作,经由过程对象的方法,应用机械完成。
敏捷性:积极接收需求变革,快速响应营业成长需求。
四、高机能架构
以用户为中间,供给快速的网页拜访体验。重要参数有较短的响应时光,较大年夜的并发处理才能,较高的吞吐量,稳定的机能参数。
可分为前端优化,应用层优化,代码层优化,存储层优化。
前端优化:网站营业逻辑之前的部分;
大年夜数据存储层:支撑应用层和办事层的日记数据收集,关系数据库和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中具有经由过程Synchronized实现的内置锁,和ReentrantLock实现的显示锁,这两种锁各有各的好处,算是淮竽暌剐弥补,今天就来做一个总结。Synchronized内置锁获得锁和释放锁是隐式的,>>>详细阅读
本文标题:大型分布式网站架构技术总结
地址:http://www.17bianji.com/lsqh/35065.html
1/2 1