文档章节

大型网站技术架构

文森特梵高
 文森特梵高
发布于 2015/08/15 20:53
字数 704
阅读 235
收藏 28

初始阶段

小型网站的架构很简单,访问量很少,一台服务器充当应用服务器、数据库服务器和文件服务器都绰绰有余。


应用服务与数据服务分离

随着业务量的增大,业务的处理能力遇到了瓶颈。CPU总是满负荷,文件越来越多,而数据库越来越繁忙。这时候需要增加服务器,将服务器的职能进行划分,分别是应用服务器、文件服务器和数据库服务器。


缓存技术改善网站性能

网站访问量的规律与现实世界中的财富分配一样遵循二八原则。80%的业务集中在20%的数据中,比如百度搜索的关键字集中在少数的热门词汇中,淘宝前几页的商品占了大部分的交易量。网站的架构设计依据这样的特点,将20%经常访问的数据缓存到访问数据快的内存中,可以降低响应时间。

网站的缓存分为 1)本地缓存 和 2)远程缓存。


集群技术提高网站的并发能力

组建应用服务器集群,再通过反向代理服务器做负载均衡,是目前普遍的方案。这样方便水平扩展,但是也引来了会话保存的问题。


数据库读写分离

虽然做了缓存,但是仍有一部分操作需要访问数据库,达到一定数量后,数据库的负载会过高,成为网站的瓶颈。通过主从热备功能,可以将一台数据库的数据同步更新到另一台。应用服务器需要写数据的时候,访问主库,需要读的时候,访问从库,系统因此能获得更高的处理性能。


使用反向代理和CDN加速网站响应

CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求服务时,从距离最近的ISP获取数据。反向代理是请求到达网站服务器后,从反向代理服务器中取缓存直接返回给用户。


分布式文件系统和分布式数据库系统

分布式数据库系统是网站数据库拆分的最后杀手锏,在单表数据规模非常非常巨大的时候才会使用。不到不得已,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理机器上。文件系统也是一个道理,需要使用分布式文件系统。

© 著作权归作者所有

共有 人打赏支持
文森特梵高
粉丝 2
博文 28
码字总数 15386
作品 0
广州
程序员
加载中

评论(1)

crazymus
crazymus
如果能详细介绍相关技术就好了
史上最全互联网分布式缓存技术视频教程(redis、memcached、ssdb)

课程主讲: 互联网应用高级架构师 白贺翔 涉及技术: Redis、SSDB、Memcached课程描述: 介绍互联网分布式技术的重要性、背景、应用范围;目前互联网行业使用分布式缓存进行设计的比例,以及...

2846613430
2016/04/19
747
0
架构学习资料汇总

知名网站架构分析 探索Google App Engine背后的奥秘(1)–Google的核心技术 探索Google App Engine背后的奥秘(2)–Google的整体架构猜想 探索Google App Engine背后的奥秘(3)- Google App Eng...

peter8015
2016/04/22
186
0
D瓜哥分享的架构资料

扯扯蛋 以前见过零零散散地介绍一些知名网站架构的分析文章。最近D瓜哥也想研究一下各大知名网站的架构。所以,就搜集了一下这方面资料。限于时间问题,这篇文章分享的文章并没有都看完,所以...

hejunbinlan
2015/09/06
209
2
【网站架构13/100】一步步带你,如何网站架构

何为大型网站 大型网站特性 既然说的是大型网站架构,那么架构的背后自然是解决人因面对大型网站特性而带来的问题。这样可以先给大家说下大型网站的特性,这些特性带来的问题就是人要解决的问...

SuShine
07/27
0
0
大型站点高并发架构技术

大型站点高并发架构技术 高并发: 高并发主要是由于网站PV访问量大,单台服务器涌承载大量访问所带来的压力,所以会采用多台服务器进行分流,采用服务器集群技术,对于每个访问会被发送到哪台...

浮躁的码农
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Nginx 配置url 跳转

Step 1:前言 公司一个管理后台,每次访问要写很长的参数,想直接访问域名就去管理页面 Step 2:配置 location / { rewrite ^/$ http://pay-admin.sasha-lab.com/index.php?m=admin&c...

Linux_Anna
24分钟前
2
0
php7在FreeBSD系统下静态编译iconv,导致BUS ERROR (core dump)解决

bug页面: https://bugs.php.net/bug.php?id=72198 触发此bug需要很多条件: FreeBSD系统(10.0以上),Linux系统、MacOS下均无此问题 静态编译iconv扩展,动态iconv扩展也无此问题 系统安装了...

hell0cat
27分钟前
3
0
FireFox下载时文件名乱码问题解决

String filename = java.net.URLEncoder.encode(file.getName(), "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + filename);......

放飞E梦想O
35分钟前
1
0
Spring声明式事务不回滚问题

注解 @Transactional 声明事务 内部调用方法不会走代理方式调用,而是类内部的函数调用,有事务注解也不会开启事务 但是当A有事务调用B时,B会加入A事务中,使之为同一事务 A无事务 ,B有事务...

职业搬砖20年
36分钟前
3
0
高并发的“大杀器”:异步化、并行化

高并发的大杀器:异步化 同步和异步,阻塞和非阻塞 同步和异步,阻塞和非阻塞,这几个词已经是老生常谈,但是还是有很多同学分不清楚,以为同步肯定就是阻塞,异步肯定就是非阻塞,其实他们并...

微笑向暖wx
38分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部