加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

从新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

发布时间:2019-07-18 17:14:19 所属栏目:移动互联 来源:JackJiang
导读:本文以计划淘宝网的靠山架构为例,先容从一百个并发到万万级并发环境下处事端的架构的14次演进进程,同时罗列出每个演进阶段会碰着的相干技能,让各人对架构的演进有一个整体的认知。文章最后汇总了一些架构计划的原则。 1、关于作者 huashiou:广东家产大
副问题[/!--empirenews.page--]

重新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

本文以计划淘宝网的靠山架构为例,先容从一百个并发到万万级并发环境下处事端的架构的14次演进进程,同时罗列出每个演进阶段会碰着的相干技能,让各人对架构的演进有一个整体的认知。文章最后汇总了一些架构计划的原则。

1、关于作者

huashiou: 广东家产大学计较机科学与技能硕士结业,大数据开拓工程师。在大数据规模具有多年的开拓履历,对常用大数据技能都有所相识,在架构计划、高并发、漫衍式等方面具有必然履历。喜好进修新技能,乐于分享,接待各人存眷本博客。

2、根基观念

在先容架构之前,为了停止部门读者对架构计划中的一些观念不相识,下面临几个最基本的观念举办先容。

1)什么是漫衍式?

体系中的多个模块在差异处事器上陈设,即可称为漫衍式体系,如Tomcat和数据库别离陈设在差异的处事器上,或两个沟通成果的Tomcat别离陈设在差异处事器上。

2)什么是高可用?

体系中部门节点失效时,其他节点可以或许接替它继承提供处事,则可以为体系具有高可用性。

3)什么是集群?

一个特定规模的软件陈设在多台处事器上并作为一个整体提供一类处事,这个整体称为集群。

如Zookeeper中的Master和Slave别离陈设在多台处事器上,配合构成一个整体提供齐集设置处事。

在常见的集群中,客户端每每可以或许毗连恣意一个节点得四处事,而且当集群中一个节点掉线时,其他节点每每可以或许自动的接替它继承提供处事,这时辰声名集群具有高可用性。

4)什么是负载平衡?

哀求发送到体系时,通过某些方法把哀求匀称分发到多个节点上,使体系中每个节点可以或许匀称的处理赏罚哀求负载,则可以为体系是负载平衡的。

5)什么是正向署理和反向署理?

体系内部要会见外部收集时,同一通过一个署理处事器把哀求转发出去,在外部收集看来就是署理处事器提倡的会见,此时署理处事器实现的是正向署理;

当外部哀求进入体系时,署理处事器把该哀求转发到体系中的某台处事器上,对外部哀求来说,与之交互的只有署理处事器,此时署理处事器实现的是反向署理。

简朴来说,正向署理是署理处事器取代体系内部来会见外部收集的进程,反向署理是外部哀求会见体系时通过署理处事器转发到内部处事器的进程。

3、单纯年月:单机架构

重新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

以淘宝作为例子:在网站最初时,应用数目与用户数都较少,可以把 Tomcat 和数据库陈设在统一台处事器上。赏识器往 www.taobao.com 提倡哀求时,起首颠末DNS处事器(域名体系)把域名转换为现实IP地点10.102.4.1,赏识器转而会见该IP对应的Tomcat。

架构瓶颈: 跟着用户数的增添,Tomcat和数据库之间竞争资源,单机机能不敷以支撑营业。

4、第一次演进:Tomcat与数据库分隔陈设

重新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

Tomcat和数据库别离独有处事器资源,明显进步两者各自机能。

架构瓶颈: 跟着用户数的增添,并发读写数据库成为瓶颈。

5、第二次演进:引入当地缓存和漫衍式缓存

重新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

在Tomcat同处事器上或同JVM中增进当地缓存,并在外部增进漫衍式缓存,缓存热点商品信息或热点商品的html页面等。通过缓存能把绝大大都哀求在读写数据库前拦截掉,大大低落数据库压力。个中涉及的技能包罗:行使 memcached 作为当地缓存,行使 Redis 作为漫衍式缓存,还会涉及缓存同等性、缓存穿透/击穿、缓存雪崩、热门数据齐集失效等题目。

架构瓶颈: 缓存抗住了大部门的会见哀求,跟着用户数的增添,并发压力首要落在单机的Tomcat上,相应逐渐变慢。

6、第三次演进:引入反向署理实现负载平衡

重新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

在多台处事器上别离陈设Tomcat,行使反向署理软件( Nginx )把哀求匀称分发到每个Tomcat中。此处假设Tomcat最多支持100个并发,Nginx最多支持50000个并发,那么理论上Nginx把哀求分发到500个Tomcat上,就能抗住50000个并发。

个中涉及的技能包罗:Nginx、 HAProxy ,两者都是事变在收集第七层的反向署理软件,首要支持http协议,还会涉及session共享、文件上传下载的题目。

架构瓶颈: 反向署理使应用处事器可支持的并发量大大增进,但并发量的增添也意味着更多哀求穿透到数据库,单机的数据库最终成为瓶颈。

7、第四次演进:数据库读写疏散

重新手到架构师,一篇就够:从100到1000万高并发的架构演进之路

把数据库分别为读库和写库,读库可以有多个,通过同步机制把写库的数据同步到读库,对付必要查询最新写入数据场景,可通过在缓存中多写一份,通过缓存得到最新数据。个中涉及的技能包罗: Mycat ,它是数据库中间件,可通过它来组织数据库的疏散读写和分库分表,客户端通过它来会见基层数据库,还会涉及数据同步,数据同等性的题目。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读