文档章节

大型网站技术架构

文森特梵高
 文森特梵高
发布于 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

RabbitMQ在CentOS环境安装

1.废话不多说准备一台虚拟机,系统为centos,我这里使用的系统版本如下图所示:

凌晨一点
46分钟前
0
0
线程池相关

在java.util.concurrent包下,提供了一系列与线程池相关的类。 使用线程池的好处 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗; 提高响应速度。当任务到达时,任务...

edwardGe
48分钟前
0
0
学习大数据这三个关键技术是一定要掌握!

大数据时代全面来临,大数据、人工智能等技术引领科技创新潮流,获得国家政策大力支持,前景广阔。学习大数据技术的人自然是络绎不绝, 学习大数据虽然是一个趋势,但也要注意大数据培训课程...

董黎明
今天
0
0
jetbrains 上传代码到github

设置中找github 获取token 验证是否成功 测试git 生成key,一路回车即可 ssh-keygen -t rsa -C “youremail@example.com” 打开pub复制key,需要再次输入一次密码 验证是否成功,输入yes即可...

阿豪boy
今天
0
0
分布式服务框架(拾遗)

前言 现在的大部分工程都已经是基于分布式架构来处理。所以这里对分布式框架做一个简单的总结 常用的RPC框架 RPC框架原理 RPC(Remote Procedure Call,远程过程调用)一般用来实现部署在不同...

kukudeku
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部