看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗易懂的,而且作者李智慧给人的印象(书本)也挺深刻的,我从这本书中也学到了许多,了解的许多,但是理解还是比较抽象的,写出来才是真正的理解,因此准备写一系列的博客来介绍和加深理解大型网站技术架构。

说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就说说大型网站的架构演化过程吧。

1、初始阶段的网站架构

初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。

2、应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据分离,如图。

3、使用缓存改善网站性能

毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。

4、使用应用服务器集群改善网站的并发处理能力

因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。

5、数据库读写分离

当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。而目前主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。

6、使用反向代理和CDN加上网站相应

提高网站的访问速度,主要手段有使用CDN和反向代理。

 CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。

7、使用分布式文件系统和分布式数据库系统

任何强大的单一服务器都满足不了大型网站持续增长的业务需求。

分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上

8、使用NoSQL和搜索引擎

搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。

9、业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。

具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

10、分布式服务

由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。

转载于:https://www.cnblogs.com/zhanghaiyang/p/7213455.html

[置顶]大型网站技术架构(一)大型网站架构演化相关推荐

  1. 关于大型网站技术演进的思考--网站静态化处理

    转自: 夏天的森林blog:(系统设计与架构(47)) 一 在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大 规模的并发访问量,如果是一个动态的网站, ...

  2. [置顶]QQ空间技术架构之深刻揭密

    QQ空间作为腾讯海量互联网服务产品,经过近七年的发展,实现了从十万级到亿级同时在线的飞跃.在这个过程中,QQ空间团队遇到了哪些技术挑战?其站点前后台架构随着业务规模的变化又进行了怎样的演进与变迁?成长 ...

  3. [置顶] 游戏开发技术总结(经典之作)第八集 脚踏实地-----游戏角色自动寻路、路径搜索算法...

    8-1 任务 让游戏的角色能够自动寻路: 并让所有的动物都动起来.另外我们在这一章将介 绍图形光标技术. 8-2 设置障碍 8-2-1 场景中的障碍点 游戏中加入了山石.树木场景后,就应该有对游戏角色 ...

  4. 在线网站技术分析工具

    Wappalyzer:在线网站技术分析工具 Wappalyzer 网站是一个可以分析不同网站所使用的各种技术的工具,对于有自身经验的网站开发者而言可以通过代码开分析网站的构架和所采用的技术,不过现在你 ...

  5. [置顶]一步步构建大型网站架构

    之前我简单向大家介绍了各个知名大型网站的架构,亿万用户网站MySpace的成功秘密.Flickr架构.YouTube网站架构.PlentyOfFish 网站架构学习.WikiPedia技术架构学习笔记 ...

  6. 《大型网站技术架构》读书笔记之六:永无止境之网站的伸缩性架构

    首先,所谓网站的伸缩性,指不需要改变网站的软硬件设计,仅仅通过改变部署的服务器数量就可以扩大或者缩小网站的服务处理能力.在整个互联网行业的发展渐进演化中,最重要的技术就是服务器集群,通过不断地向集群中 ...

  7. 大型网站技术架构(二)--架构模式(转)

    大型网站技术架构(一)--大型网站架构演化 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 所谓网站架构模式即为了解决大型 ...

  8. 大型网站技术架构演进

    文章目录 系列文章目录 前言 1 构建 型网站:分布式改造.. ... .- .. .. .-. ..... ... .. .. .. .. .. .. .. .. .. .. .. 1 1.1 为什 ...

  9. 大型网站技术架构一览

      ps:以下内容摘抄自<大型网站技术架构(核心原理与案例分析)>一书,全程手工录入. 本书关于架构技术原理的组织方式已架构要素作为纬度,从系统性能,可用性,伸缩性,扩展性,安全性几个角度 ...

最新文章

  1. c语言sprt的程序怎么用,sqrt函数在c语言中怎么用?
  2. mongodb查询不带表名_原创 | MongoDB常用指令
  3. 组合数处理(逆元求解)
  4. Java 类的封装、继承、多态
  5. spring整合jedis(单节点)
  6. CentOS 8下 MySQL 8.0 安装部署(亲测)
  7. Linux基础命令---cat
  8. hadoop2.6.集群搭建
  9. linux读用户密码,linux用户/用户密码和用户组管理
  10. matlab人脸识别论文
  11. 全国各省市经纬度范围
  12. IBM Power小型机用前面板液晶屏查看HMC端口IP
  13. 神经网络反向传播BP算法代码实现
  14. 电脑MAC地址查询方法
  15. Grand Prix of Saratov - D. Elevator - DP
  16. 业务大转型,联通新时讯广招移动互联网人才
  17. 微信成语接龙小程序|微擎框架|带流量主|前端+后端完整源码
  18. 拼多多面试——机器学习岗位面经
  19. 社区团购热潮退却,谁是电商卖菜“接盘侠”?
  20. 这5款堪称神器的插件,能让你的效率提升3-4倍!还不知有点遗憾

热门文章

  1. 无人车致命车祸视频曝光:Uber技术失败的实锤,一场本可避免的灾难
  2. Ubuntus安装vmware tools工具
  3. 十一项全球最具权威的大数据资质认证
  4. 每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify
  5. SQLServer------存储过程的使用
  6. jQuery基础部分
  7. Linux下套接字详解(四)----简单的TCP套接字应用(迭代型)
  8. python 三目运算符
  9. 学习日记0802函数递归,三元表达式,列表生成式,字典生成式,匿名函数+内置函数...
  10. leetcode140. Word Break II