大型分布式架构设计

大型网站的特点

大型网站架构技术

 

 大型网站架构技术-架构模式

大型网站架构技术-高性能架构

以用户为中心,提供快速的访问体验。主要体现在:响应快、并发能力高和性能稳定。

 

大型网站架构技术-高可用架构 

大型网站在任何时候都应该可以正常访问,但是因为大型网站的复杂性,要保证高可用是很困难的。

行业内一般用几个9表示可用性指标,比如99.99%

即不可用时间:0.01%*365*24*60=52.56分钟/

大型系统架构演进过程-应用程序、数据库都部署在同一台服务器上

大型网站(如天猫、京东等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,所以成熟的系统架构是随着业务的扩展而逐步完善的

 

大型系统架构演进过程-应用程序数据库分离

随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。

 

大型系统架构演进过程-利用缓存改善网站性能

在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少数据库查询次数,提高用户体验。

分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易

大型系统架构演进过程-使用集群改善应用服务器性能

应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。

 大型系统架构演进过程-使用分布式文件系统 

随着用户增加,业务量越来越大,产生的文件越来越多,文件相关操作的IO瓶颈开始出现,这时就需要分布式文件系统的支撑。

常用的分布式文件系统有HDFS、TFSGFSMINIO

大型系统架构演进过程-使用NoSQL和搜索引擎

对于海量数据的查询和分析,我们使用NoSQL数据库加上搜索引擎可以达到更好的性能。

并不是所有的数据都要放在关系型数据中

常用的NoSQL有MongoDB、HBase、Redis,搜索引擎有Lucene、Solr、Elasticsearch。

大型系统架构演进过程-将应用服务器进行业务拆分

随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分。

每个业务应用负责相对独立的业务运作。业务之间通过远程调用来实现。

大型系统架构演进过程-消息队列

由于系统用户量极大,在做抢购,秒杀的活动的时候,可能参与的人很多,服务器可能承受不了那么高的并发。

消息队列其实就是一个队列结构的中间件,也就是说把消息和内容放入到一个容器后,就可以直接的返回了,

不理会等它后期处理的结果,容器里的内容会有另一个程序按照顺序进行逐个的去处理。

消息队列的主要作用:解耦、削峰、异步

 评估系统的承载能力-系统评估

 推荐教程:后端进阶关键-大型分布式架构设计

猜你喜欢

转载自blog.csdn.net/JACK_SUJAVA/article/details/129858035