广州网站建造集团官网 老直营威尼斯网址开户
老品牌威尼斯网址开户 吾们 效劳 网站建造 移动应用 案例 报道 联系
咨询热线:13711534025

期待聆听您的声音

13711534025

不忽悠,不作恶,不欺诈;敬天理,存良知,思利他。
QQ咨询 QQ咨询 QQ咨询
广州总部 深圳 佛山 广西

与吾们一起分享美好

解读大型网站系统架构的演化之路

发布时间:2016-07-15 发布作者:老直营威尼斯网址开户 查阅次数:1446次 标签:大型网站 网站架构 系统架构

上言

一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始策划时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完竣的,在这个过程中,开发模式、 技术实现 架构、策划思想也发生了很大的改动,甚至于 技术实现 人员也从几个人发展到一个部门甚至一条产品线。以是成熟的系统架挂子 撬孀乓滴竦睦┱苟鸩酵昕⒌模⒉皇且货矶停徊煌滴裉卣鞯南低常嵊懈髯缘牟嘞附冢 诸如淘宝,要解决海量的商品信息的搜索、下单、支付, 诸如腾讯,要解决数亿用户的实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也兼有不同。尽管如此吾们也可以从这些不同的网站背下下,找出此道共用的 技术实现 ,这些 技术实现 和手段广泛运用在大型网站系统的架构中,下面就通过介绍大型网站系统的演化过程,来认识这些 技术实现 和手段。


一、最开始的网站架构

最初的架构,应用程序、数据库、文件都部署在一台效劳器上,如图:

网站架构 网站性能 网站性能优化 分布式文件系统


二、应用、数据、文件分离

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

网站架构 网站性能 网站性能优化 分布式文件系统


三、利用缓存改善网站性能

在硬件优化性能的再是,再是也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存 技术实现 改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80百分比的访问请求,最终落在20百分比的数据上),以是吾们可以对热点数据进行缓存,减少这些数据的访问地址,提高用户体味。

网站架构 网站性能 网站性能优化 分布式文件系统

缓存实现常见的方式是本地缓存、分布式缓存。易于 这般还有CDN、反向代理等,这个下面再讲。本地缓存,顾名思义是将数据缓存在应用效劳器本地,可以存在内存中,也可以存在文件,OSCache就是常用的本地缓存组件。本地缓存的特点是速度快,但因为本地容量有限以是缓存数据量也有限。分布式缓存的特点是,可以缓存海量的数据,并且扩展非常匆子 侄茫诿呕Ю嗤局谐31皇褂茫俣劝蠢砻挥斜镜鼗捍婵欤S玫姆植际交捍媸荕emcached、Redis。


四、使用集群改善应用效劳器性能

应用效劳器作为网站的入口,会承担大量的请求,吾们往往通过应用效劳器集群来分担请求数。应用效劳器上面部署负载均衡效劳器调度用户请求,按照分发策略将请求分发到多个应用效劳器节点。

网站架构 网站性能 网站性能优化 分布式文件系统

常用的负载均衡 技术实现 硬件的有F5,Price比较贵,软件的有LVS、Nginx、HAProxy。LVS是四层负载均衡,按照倾向地址和端口决定内部效劳器,Nginx和HAProxy是七层负载均衡,可以按照报文始末决定内部效劳器,易于 LVS分发地址优于Nginx和HAProxy,性能要高些,而Nginx和HAProxy则更具配置性,如可以用来做动静分离(按照请求报文特征,决定静态资源效劳器灰子 怯τ眯Ю推鳎


五、数据库读写分离和分库分表

随着用户量的增加,数据库成为较小的瓶颈,改善数据库性能常用的手段是进行读写分离以及分库分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切分则是对一个数据库特大的表进行拆分, 诸如用户表。垂直切分则噬洗照业务的不同来切分,如用户业务、商品业务相关的表放在不同的数据库中。

网站架构 网站性能 网站性能优化 分布式文件系统


六、使用CDN和反向代理提高网站性能

假如吾们的效劳器都部署在成都的机房,对于四川的用户来说访问是较快的,而对于北京的用户访问是较慢的,这是由于四川和北京分别属于电信和联通的不同发达区域,北京用户访问需要通过互联路由器经过较长的地址才能访问到成都的效劳器,返回地址也一样,以是数据传输时间比较长。对于这种环境,常常使用CDN解决,CDN将数据始末缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大减少了网络访问的地址。比较professional的CDN运营商有蓝汛、网宿。

而反向代理,则是部署在网站的机房,当用户请求达到时起首访问反向代理效劳器,反向代理效劳器将缓存的数据返回给用户,但若无缓存数据才会继续访问应用效劳器获取,这样做减少了获取数据的底。反向代理有Squid,Nginx。

网站架构 网站性能 网站性能优化 分布式文件系统


七、使用分布式文件系统

用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件效劳器已经不能满足需求,这时就需要分布式文件系统的支撑。常用的分布式文件系统有GFS、HDFS、TFS。

网站架构 网站性能 网站性能优化 分布式文件系统


八、使用NoSql和搜索引擎

对于海量数据的查问和归纳,吾们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是一切的数据都要放在关系型数据中。常用的NOSQL有mongodb、hbase、redis,搜索引擎有lucene、solr、elasticsearch。

网站架构 网站性能 网站性能优化 分布式文件系统


九、将应用效劳器进区域务拆分

随着业务进一步扩展,应用程序变得非常臃肿,这时吾们需要将应用程序进区域务拆分,如百度分为讯息、网页、图片等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者共享数据库来实现。

网站架构 网站性能 网站性能优化 分布式文件系统


十、搭建分布式效劳

这时吾们发现各个业务应用都会使用到一些基本的业务效劳, 诸如用户效劳、订单效劳、支付效劳、安全效劳,这些效劳是支撑各业务应用的基本要素。吾们将这些效劳抽取出来利用分部式效劳框架搭建分布式效劳。阿里的Dubbo是一个不错的决定。

网站架构 网站性能 网站性能优化 分布式文件系统


小结

大型网站的架挂子 上凑找滴裥枨蟛欢贤昕⒌模凑詹煌囊滴裉卣骰嶙鎏囟ǖ牟呋痛Γ疚闹皇墙彩鲆桓鐾ɡ笮屯净嵘婕暗囊恍 技术实现 和手段。


做网站如何走在可持续发展的互联网路上

Web网站架构演变史

吾们的地位

广州 广州市天河区岗顶百脑汇高技术大厦B塔27楼 020-6235 2949

深圳 深圳市南山区汉京万国大厦18A 159 8916 9178

广西 茂名市茂南区油城三路广西创业创新孵化基地B110 159 8916 9178

吾们的效劳

网站及移动应用 牛逼直营网站 APP开发 小程序开发 WeChat运营

系统应用开发 OA/ERP/CRM/HR系统开发 教学管理系统 电商系统 应用型软件系统定制开发

了解吾们

集团官网简介 联系吾们 吾们的案例 讯息报道

使用条款 隐私声明 Cookies

© 2009-2020 老直营威尼斯网址开户 版权一切 广ICP备16051058号

XML 地图 | Sitemap 地图