设为首页 加入收藏

TOP

大型站点高并发架构技术(一)
2019-09-17 18:53:42 】 浏览:57
Tags:大型 站点 并发 架构 技术

大型站点高并发架构技术

高并发:

高并发主要是由于网站PV访问量大,单台服务器涌承载大量访问所带来的压力,所以会采用多台服务器进行分流,采用服务器集群技术,对于每个访问会被发送到哪台服务器,我们采取负载均衡策略,常见的技术有LVS,由于网站中有大量的静态页面,所以采用缓存服务器和反向代理技术,包括HAPROXY,REDIS,数据库可以采用数据库集群,进行读写分离,缓解数据库压力。

大型站点高并发架构就是利用负载均衡技术、反向代理技术、数据库集群、web服务器集群、Nosql技术等,以实现单台数据器不能达到的并发量,换句话说就是用一群屌丝代替一个高富帅。

1.大型站点高并发架构是为了解决百万千万级PV带来的性能瓶颈。
2.出现高并发架构的原因是大型网站发现在巨量pv下买更多更好的服务器已经无法简单的解决问题,只能从架构  上想办法来,充分发挥设备的效能。
3. 高可用解决方案(corosync,pacemaker,KeepAlived)负载均衡(LVS)缓存服务(Varnish)反向代理(haproxy)web服务器(Apache,Nginx,Tomcat)站点架构(Lamp,Lnmp)

什么是大型站点

大型站点高并发架构。首先,什么是大型站点,大型站点至少有两个特点(1)访问量大,淘宝的每日PV有几十亿(2)后台服务器多,淘宝后台服务器据说有十多万台。然后,大型网站的高并发架构,我的理解就是为了支持这么大的并发访问量,让众多的服务器硬件、操作系统、应用软件协同工作的技术架构。
高并发架构出现的主要原因,是网站并发访问量,远远超过了单台PC服务器、单台小型机的处理能力。为了让多个同时到达的用户请求都能得到快速响应,同时降低成本,目前是用多台相对廉价的服务器组成大规模集群,这就需要高并发架构来支持。
高并发架构主要用到负载均衡、反向代理、分布式缓存等技术,有大量的开源产品可供使用。包括LVS、varnish、haproxy等。

大型站点高并发架构就是利用负载均衡技术、反向代理技术、数据库集群、web服务器集群、Nosql技术等

高并发架构通过使用负载均衡,缓存之类的技术,实现active-active, 或者active-standby的架构。

实现大型web站点高并发: web层可以使用LVS实现负载均衡;数据库层可以使用mysql读写分离,redis;另外可以使用CDN网站加速

 

技术可以通过负载均衡技术LVS,haproxy,web集群技术如nginx 反向代理tomcat集群或者apache集群,缓存技术如Varnish,memache,redis,mongodb,数据库集群如mysql的AB复制,通过开源的mysql中间件如Atlas,cobar,TDDL实现数据库的读写分离等等。

 

1:从用户浏览器端可能就已经使用了浏览器的缓存功能,设置了cache-expired的时间,让重复访问的内容尽快的被访问到。
2,在用户发起请求后,经过DNS的分发的时候,可能使用了DNS的负载均衡或者DNS的策略分发。
3,请求经过分发后,首先会达到CDN。
4,CDN如果有就返回给用户,如果没有,则请求源站点。
5,源站点可能用到的技术有LVS, HAPROX,NGINX,VARNISH,TOMCAT等,缓存层可能会用到memcached,redis,mongodb,数据库层面可能会用到主从 ,主主,MHA等,或者读写分离等。

 

另外,我想请问老师,如果老板问你,我想抗住并发100W用户的访问。需要多少硬件资源。
评估的来源是不是:
首先得测试下:单台服务器可以抗住多少应用。然后单台的TPS*N=100W
那用什么工具来测试呢?loadrun还是Jmeter.测试服务器本身也达不到100W的TCP连接数吧。

 

大型站点高并发网站架构的模型和OSI七层模型是一样的,都是分层的架构。
而这种高并发的站点架构都是随着公司的业务规模不断增长,对我们的技术人员提出了更为高标准的要求;在某个程度上来说。可以说是公司业务规模的发展早就了这种大型站点的架构。比如淘宝,腾讯等等。
        现在来说淘宝的单天的日志数据量已经达到TB级别,甚至是更多了;更不要说是独立的ip,pv以及DB数据量了哦。
        网站架构也由最初的LAMP。也就是nginx作为流量的入口,交给后面的php和MySQL交互处理网站事务;后来随着业务的增长,首先是从前端的流量入口开始拆分,可能是使用了lvs做四层的流量转发,到后端的web入口,此时web前端还有可能增加了类似varnish之类的web缓存,然后到数据库的缓存等等;甚至是TFS这种分布式的文件系统等等。可以说是在每个可以拆分的点上面又按照业务甚至页面进行了独立的拆分。
        这就是典型的大型网站架构的水平拆分,由单台---多台----单一的文件系统和数据库,一步一步演变为每个业务都是有上千台的独立服务器做支撑。
        
        上面说到负载均衡器作为整个流量的入口,那么,如果此时的负载均衡器坏掉了怎么办呢?这时,高可用的概念就出来了。高可用一般是master|slave的架构,作为流量的入口对他们进行检测,以lvs或者nginx为例,这些都是可以作为负载均衡或者反向代理的软件,那么如果其中一台挂了怎么办呢?此时整个用户的访问就会中断了,也就是拒绝服务了;那么此时如果有类似keepalived之类的高可用软件就可以很好的解决整个问题。当keepavived检测到对方的keepalived挂了之后,就直接接管了,从而不间断对用户的服务。
         所谓的大型架构无非就是:负载均衡+高可用+缓存(DB 缓存以及WEB缓存),当然了还有队列,以及NoSQL ,分布式文件系统等等都会有所涉及。

 

能够承受大并发用户访问的架构;随着用户数的增多,对原先的LAMP架构逐步调整,比如将apache换成能够承受更高并发的nginx;并且增加一层webcache,比如squid等;于此同时,增加数据库的cache,如memcache,redis等;并且对数据库进行优化,对数据库进行水平分割或者换成nosql的数据库来提高并发性能.

技术包括负载均衡、缓存、镜像、图片服务器分离、数据库集群和库表散列等。

负载均衡LVS、缓存服务Varnish、反向代理HAproxy等技术来分流,保证网站的正常运行,以实现大型网站的高并发架构。此外,还会通过Corosync+Pacemaker、Keepalived等高可用技术来保证大型网站的运行。

对于负载均衡,有硬件的负载均衡和软件的负载均衡。
硬件负载均衡效率高,但是价格贵,比如F5等。
软件负载均衡系统价格较低或者免费,效率较硬件负载均衡系统低,不过对于流量一

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇中小研发团队架构实践之微服务MSA 下一篇战狼:业务高速增长下,如何保证..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目