word
构建(ɡòu jiàn)大型网站架构案例
今天我们来谈谈(tán tán)一个网站(wǎnɡ zhàn)一般(yībān)是如何一步步来构建起系统架构(jià ɡòu)的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告系统终于是又恢复(huīfù)到了以往的速度。
看看这一步(yī bù)完成后系统的图示:
这一步涉及到了这些知识(zhī shi)体系:
负载均衡技术(包括但不限于硬件负载均衡、软件负载均衡、负载算法(suàn fǎ)、linux转发协议、所选用的技术的实现细节等)、主备技术(包括但不限于ARP欺骗、linuxheart-beat等)、状态信息或缓存同步技术(包括但不限于Cookie技术、UDP协议、状态信息播送、所选用的缓存同步技术的实现细节等)、共享文件技术(包括但不限于NFS等)、存储技术(包括但不限于存储设备等)。
架构演变第六步:分库
享受了一段时间的系统访问量高速增长的幸福后,发现系统又开始变慢了,这次又是什么状况呢,经过查找,发现数据库写入、更新的这些操作的局部数据库连接的资源竞争非常剧烈,导致了系统变慢,这下怎么办呢?此时可选的方案有数据库集群和分库策略,集群方面像有些数据库支持的并不是很好,因此分库会成为比拟普遍的策略,分库也就意味着要对原有程序进展修改,一通修改实现分库后,不错,目标到达了,系统恢复甚至速度比以前还快了。
看看这一步完成后系统的图示:
这一步涉及到了这些知识体系:
这一步更多的是需要从业务上做合理的划分,以实现分库,具体技术细节上没有其他的要求;
但同时随着数据量的增大和分库的进展,在数据库的设计、调优以及维护上需要做的更好,因此对这些方面的技术还是提出了很高的要求的。
架构演变第七步:分表、DAL和分布式缓存
随着系统的不断运行,数据量开始大幅度增长,这个时候发现分库后查询仍然会有些慢,于是按照分库的思想开始做分表的工作。当然,这不可防止的会需要对程序进展一些修改,也许在这个时候就会发现应用自己要关心分库分表的规如此等,还是有些复杂的。于是萌生能否增加一个通用的框架来实现分库分表的数据访问,这个在ebay的架构中对应的就是DAL,这个演变的过程相对而言需要花费较长的时间。当然,也有可能这个通用的框架会等到分表做完后才开始做。同时,在这个阶段可能会发现之前的缓存同步方案出现问题,因为数据量太大,导致现在不太可能将缓存存在本地,然后同步的方式,需要采用分布式缓存方案了。于是,又是一通考察和折磨,终于是将大量的数据缓存转移到分布式缓存上了。
word
看看(kàn kàn)这一步完成后系统的图示:
这一步(yī bù)涉及到了这些知识体系:
分表更多的同样(tóngyàng)是业务上的划分,技术上涉及到的会有动态hash算法、consistenthash算法等;
DAL涉及(shèjí)到比拟(bǐnǐ)多的复杂技术,例如数据库连接的管理(超时、异常)、数据库操作的控制(超时、异常)、分库分表规如此的封装等;
架构演变第八步:增加更多的WebServer
在做完分库分表这些工作后,数据库上的压力已经降到比拟低了,又开始过着每天看着访问量暴增的幸福生活了。突然有一天,发现系统的访问又开始有变慢的趋势 了,这个时候首先查看数据库,压力一切正常,之后查
前端工程师-构建大型网站架构案例 来自淘豆网m.daumloan.com转载请标明出处.