ps:以下内容摘抄自《大型网站技术架构(核心原理与案例分析)》一书,全程手工录入。

本书关于架构技术原理的组织方式已架构要素作为纬度,从系统性能,可用性,伸缩性,扩展性,安全性几个角度阐述网站架构技术要点。

还有另外一种较为直观的组织方式是从不同架构层次所使用的网站架构技术这个纬度进行描述的。

网站系统价格层次如下图所示:

1,前端架构

前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。

浏览器优化技术

并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存、合并HTTP减少请求次数、使用页面压缩等。

   CDN

内容分发网络 ,部署在网络运营商机房,通过将静态页面内容分发到离用户最近的CDN服务器,使用户可以通过最短路径获取内容。

动静分离,静态资源独立部署

静态资源,如JS.CSS等文件部署在专门的服务器集群上,和Web应用动态内容服务分离,并使用专门的(二级)域名。

图片服务

图片不是指网站Logo、按钮图标等,这些文件属于上面提到的静态资源,应该和JS、CSS部署在一起。这里的图片指用户上传的图片,如产品图片、用户头像等,

图片服务同样使用独立部署的图片服务器集群,并使用独立(二级)域名。

反向代理

部署在网站机房,在应用服务器、静态资源服务器,图片服务器之前,提供页面缓存服务。

DNS

域名服务,将域名解析成IP地址,利用DNS可以实现DNS负载均衡,配置CDN也需要修改DNS,使域名解析后指向CDN服务器。

2,应用层架构

应用层是处理网站主要业务逻辑的地方。

开发框架

网站业务是多变的,网站的大部分软件工程师都是在加班加点开发网站业务,一个好的开发框架至关重要。一个好的开发框架应该能够分离关注面,

使美工、开发工程师可以各司其事,易于协作。同时还应该内置一些安全策略,防护Web应用攻击。

页面渲染

将分别开发维护的动态内容和静态页面模板集成起来,组合成最终显示给用户的完整页面。

负责均衡

将多台应用服务器组成一个集群,通过负载均衡技术将用户请求分发到不同的服务器上,以应对大量用户同时访问产生的高并发负载压力。

  Session管理

为了实现高可用的应用服务器集群,应用服务器通常设计成无状态,不保存用户请求上下文信息,但是网站业务通常需要保持用户会话信息,需要专门的机制关联Session,

使集群内甚至跨集群的应用服务器可以共享Session.

动态页面静态化

对应访问量特别大而更新有部很频繁的动态页面,可以将其静态化,即生成一个静态页面,利用静态页面的优化手段加速用户访问,如反向代理、

CDN、浏览器缓存等。

业务拆分

将复杂而又庞大的业务拆分开来,形成多个规模较小的产品,独立开发,部署,维护,除了降低系统耦合度,也便于数据库业务分库。按业务对关系数据库进行拆分,

技术难度相对较小,而效果又相对较好。

虚拟化服务器

将一台物理服务器虚拟化成多台虚拟服务器,对于并发访问较低的业务,更容易用较小的资源构建高可用的应用服务器集群。

虚拟化服务器

将一台物理服务器虚拟化成多台虚拟服务器,对于并发访问较低的业务,更容易用较少的资源构建高可用的应用服务器集群。

3,服务层架构

提供基础服务,供应层调用,完成网站业务。

分布式消息

利用消息队列机制,实现业务和业务、业务和服务之间的异步消息发送及低耦合的业务关系。

分布式服务

提供高性能、低耦合、易复用、易管理的分布式服务,在网站实现面向服务架构(SOA)。

分布式缓存

通过可伸缩的服务器集群提供大规模热点数据的缓存服务,是网站性能优化的重要手段。

  分布式配置

系统运行需要配置许多参数,如果这些参数需要修改,比如分布式缓存集群加入新的缓存服务器,需要修改应用程序客户端的缓存服务器列表

配置,并重启应用程序服务器。分布式配置在系统运行期间提供配置动态推送服务,将配置修改实时推送到应用新系统,无需重启服务器。

4,存储层架构

提供数据、文件的持久化存储访问与管理服务。

分布式文件

网站在线业务需要存储的文件大部分都是图片、网页、视频等比较小的文件,但是这些文件的数量非常庞大,而且通常都在持续增加,需要

伸缩性设计比较好的分布式文件系统。

    关系数据库

大部分网站的主要业务是基于关系数据库开发的,但是关系数据库对集群伸缩性的支持比较差。通过在应用程序的数据访问层增加数据库访问路由

功能,根据业务配置将数据库访问路由到不同的物理数据库上,可实现关系数据库的分布式访问。

NoSQL数据库

目前各种NoSQL数据库层出不穷,在内存管理。数据模型、集群分布式管理等方面各有优势,不过从社区活跃性角度看,HBase无疑是目前最好的。

数据同步

在支持全球范围内数据共享的分布式数据库技术成熟之前,拥有多个数据中心的网站必须在多个数据中心之间进行数据同步,以保证每个数据中心

都拥有完整的数据。在实践中,为了减轻数据库压力,将数据库事务日志(或者NoSQL的写操作Log)同步到其他数据中心,根据Log进行数据重演,

实现数据同步。

5、后台架构

网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理.

搜索引擎

即使是网站内部的搜索引擎,也需要进行数据证了更新及全量更新、构建索引等。这些操作通过后台系统定时执行

数据仓库

根据离线数据,提供数据分析与数据挖掘服务、

推荐系统

社交网站及购物网站通过挖掘人和人之间的关系,人和商品之间的关系,发掘潜在的人际关系和购物兴趣,为用户提供个性化推荐服务。

6.数据采集与监控

监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障。

浏览器数据采集

通过在网站页面中潜入JS脚本采集用户浏览器环境与操作记录,分析用户行为。

   服务器业务数据采集

服务器业务数据包括两种,一种是采集在服务器端记录的用户请求操作日志;一种是采集应用程序运行期业务数据,比如待处理消息数目等。

系统监控

将前述采集的数据以图表的方式展示,以便运营和运维人员监控网站运行状况,做到这一步仅仅是系统监视.更现金的做法是根据采集的数据进行

自动化运维,自动处理系统异常状况,实现自动化控制。

系统报警

如果采集来的数据超过预设的正常情况的阀值,比如系统负载过高,就通过邮件、短信、语音电话等方式发出报警信号,等待工程师干预。

7,安全架构

保护网站免遭受攻击及敏感信息泄露。

Web攻击

以HTTP请求的方式发起的公交,危害最大的就是XSS和SQL注入攻击、但是只要措施得当,这两种攻击都是比较容易防范的。

数据保护

敏感信息加密传输与存储,保护网站和用户资产.

8,数据中心机房架构

大型网站需要的服务器规模数以十万计。机房物理架构也需要关注。

   机房架构

对于一个拥有十万台服务器的大型网站,每台服务器耗电(包括服务器本身耗电及空调耗电)每年大约需要人民币2000元,那么网站每年机房

电费就需要两亿人民币。数据中心能耗问题已经日趋严重,Googel、Facebook选择数据中心地理位置的时候趋向选择散热良好,供电充裕的地方。

机柜架构

包含机柜大小,网线布局,指示灯规格,不间断电源,电压规格(是48V直流电还是220v民用交流电)等一系列问题。

   服务器架构

大型网站由于服务器采购规模庞大,大都采用定制服务器的方式代替购买服务器整机,根据网站应用需求,定制硬盘、内存、甚至CPU,

同时去除不必要的外设接口(显示器输出接口,鼠标。键盘输入接口),并使空间结构利于散热。

大型网站技术架构一览相关推荐

  1. 《大型网站技术架构》读书笔记之八:固若金汤之网站的安全性架构

    一.网站应用攻击与防御 二.信息加密技术与密钥安全 三.信息过滤与反垃圾 四.电子商务风险控制 五.学习总结 转眼之间,<大型网站技术架构>的读书笔记到此就结束了.最近时间非常紧,因此本篇 ...

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

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

  3. 大型网站技术架构:核心原理与案例分析pdf

    下载地址:网盘下载 编辑推荐 编辑 本书作者是阿里巴巴网站构建的亲历者,拥有核心技术部门的一线工作经验,直接体验了大型网站构建与发展过程中的种种生与死,蜕与变,见证了一个网站架构从幼稚走向成熟稳定的历 ...

  4. 《大型网站技术架构》学习笔记八:固若金汤之网站的安全性架构

    一.网站应用攻击与防御 二.信息加密技术与密钥安全 三.信息过滤与反垃圾 四.电子商务风险控制 五.学习总结 转眼之间,<大型网站技术架构>的读书笔记到此就结束了.最近时间非常紧,因此本篇 ...

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

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

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

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

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

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

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

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

  9. 大型网站技术架构:摘要与读书笔记

    花了几个晚上看完了<大型网站技术架构>(https://book.douban.com/subject/25723064/)这本书,个人感觉这本书的广度还行,深度还有些欠缺(毕竟只有200 ...

最新文章

  1. Winder摆杆不稳除了PID还可能的原因
  2. Android 圆角矩形ProgressBar
  3. JS,Jquery获取各种屏幕的宽度和高度
  4. Quartz简单触发
  5. 64位Linux下的栈溢出
  6. C++ - 进阶 1002
  7. 使用CMD命令修改Windows本地账户密码
  8. 好看的个人主页,个人引导页
  9. 如何从头到脚彻底解决一个MySQL Bug
  10. Yum安装Memcache
  11. 因为简单!我的第一本算法书,就被女友抢走了……
  12. https://docs.python.org/3/
  13. vim格式化代码实际上就是 缩进代码, 命令是等号=
  14. 如何用abaqus建造8号槽钢并分析槽钢的受力
  15. 很多时候,你不得不被生活的种种琐事所牵绊
  16. FEC【筷云早报】 2020年7月29日星期三
  17. simulink仿真之比较产生阶梯波
  18. HTML 鼠标放上显示悬浮窗口
  19. 推荐 9 个免费图片网站,我的存货都在这了
  20. mysql数据库j电子课件_mysql数据库(学习课件).ppt

热门文章

  1. 2013編程之美 集会 三分
  2. F280049C配置CLB模块时遇到的许多问题
  3. C++学习小结 类与对象
  4. 世界地图并不是世界的真实样貌!甚至误差非常大
  5. 高防服务器防御的原理是什么呢
  6. 十岁不愁、二十不悔、三十而立、四十不惑、五十知天命、六十耳顺、七十古来稀...
  7. python_faker使用
  8. 我自己很喜欢的几款文案编辑软件
  9. java实验报告答案_Java实验报告--继承与接口
  10. 普洱茶扫盲篇-辨别优质普洱