2019独角兽企业重金招聘Python工程师标准>>>

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

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

1、初始阶段的网站架构

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

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

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

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

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

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

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

5、数据库读写分离

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

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

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

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

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

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

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

8、使用NoSQL和搜索引擎

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

9、业务拆分

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

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

10、分布式服务

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

转载于:https://my.oschina.net/zhanghaiyang/blog/597614

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

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

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

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

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

  3. 大型网站技术架构(3):WEB 前端性能优化

    上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...

  4. 《大型网站技术架构》《K8S进阶实战》等书籍!送45本!读完工资多个0!

    学习如逆水行舟,不进则退.所以又来给各位读者送书了,这次送45本技术书,内容涉及深度学习.Python.Dubbo.Flutter等. 感谢本次活动的赞助商『电子工业出版社博文视点』 另外!急于购书的 ...

  5. 小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐

    十年间,负载均衡的前沿技术层出不穷,令用户眼花缭乱.经常在技术网站.文档中出现的"四层负载均衡"."七层负载均衡"字眼有什么含义?有什么区别?对客户网络有哪些不 ...

  6. 《大型网站技术架构:核心原理及案例分析》阅读笔记01

    第一篇:概述   1.大型网站架构演化 从上世纪90年代初,Web标准和Web服务出现来计算,互联网发展了仅仅20年,但是,它的发展速度却是惊人的,世界被互联网改变着.随着互联网的发展,越来越多的问题 ...

  7. 读书笔记-大型网站技术架构(核心原理与案例分析)

    一.大型网站架构演化 1.1 大型网站软件系统的特点 高并发.大流量:高可用:海量数据:用户分布广泛,网络情况复杂:安全环境恶劣:需求快速变更,发布频繁:渐进式发展: 1.2 大型网站架构演化发展历程 ...

  8. 各种大型网站技术架构

    引言近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架构图.除了每每感叹于每幅图表面上的绘制的精细之外,更为架构图背后所隐藏的设计思想所叹服.个人这两天一直在搜集各 ...

  9. 大型网站技术架构(四)网站的高性能架构

    2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标,可以具体体现到响应时间.吞吐量.并发数.性能计数器等技术指标. 1.性能测试指标 1.1 响应时间 指应 ...

  10. 大型网站技术架构:核心原理与案例分析阅读笔记二

    大型网站技术架构:核心原理与案例分析阅读笔记二 网站架构设计时可能会存在误区,其实不必一味追随大公司的解决方案,也不必为了技术而技术,要根据本公司的实际情况,制定适合本公司发展的网站架构设计,否则会变 ...

最新文章

  1. 删除Referencing outlet
  2. 怎么看python程序卡在哪里_Python程序卡住了
  3. url能访问但new file()找不到文件_Go Web编程给自己写的服务器添加错误和访问日志...
  4. js带开关的时钟_昌利JS系列混凝土搅拌机衬板配件
  5. YbtOJ#20060-[NOIP2020模拟赛B组Day3]字串修改【模拟】
  6. 第七十四期:国内SaaS企业终于活成了自己讨厌的样子!
  7. n个整数,其中有两个数是重复的,要求找出这两个重复的整数
  8. python设计模式2-工厂方法模式
  9. POJ 3101 Astronomy (角速度啊,高中物理啊。。。T_T)
  10. Windows7系统运行hadoop报Failed to locate the winutils binary in the hadoop binary path错误
  11. wxWindows 第一个Frame程序
  12. html箭头轮播,CSS-用伪类制作小箭头(轮播图的左右切换btn)
  13. xp系统查计算机设备型号,xp电脑设备型号怎么查询
  14. 谷歌浏览器如何查看及设置网页编码格式(亲测可用)
  15. PHP开发之字符串长度以及字符串子串截取相关函数总结
  16. OpenGL 图形库的使用(二十五)—— 高级OpenGL之帧缓冲Framebuffers
  17. 现实环境中,关于Teb Local Planner 参数调试总结
  18. 一个女孩子居然做了十年硬件。​。。
  19. 【SAP Abap】关于SAP汇率表 TCURR 的CDS开发实例
  20. 深入理解java虚拟机gc_jvm GC收集器与内存分配(深入理解java虚拟机第三章)

热门文章

  1. 第4章 Python 数字图像处理(DIP) - 频率域滤波7 - 二维DFT和IDFT的一些性质 - 傅里叶频谱和相角
  2. gettype拿不到值_王者荣耀:被低估的强势打野,就是这位拿大锤子的阿姨!
  3. 迭代器以及迭代器的作用
  4. 51nod 1623 完美消除(数位DP)
  5. This dependency was not found: * !!vue-style-loader!css-loader?……解决方案
  6. 工作内外网同时连接方案
  7. IOS-C语言第12天,(函数指针)Point and macro(宏)
  8. openfire修改服务器名称方法
  9. c++ 冒泡排序_干货|python笔记1-冒泡排序
  10. delphi7存取配置文件与sqlserver数据库连接_Delphi7存取配置文件与SQLServer数据库连接...