大型网站技术架构 读书笔记 (二) 大型网站架构模式
1. 网站架构模式
1.1 分层
将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。
1.2 分割
分层是将软件在横向方面进行切分,那么分割就是在纵向方面对软件进行切分。
1.3 分布式
- 分布式应用和服务
- 分布式静态资源
- 分布式数据和存储
- 分布式计算
1.4 集群
使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问集中的模块(比如网站的首页),还需要将独立部署的服务器集群化,即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
1.5 缓存
缓存就是将数据存放在距离计算最近的位置以加快处理速度。
- CDN : 即内容分发网络,部署在距离终端用户最近的网络服务商,用户的网络请求总是先到达他的网络服务商那里,在这里缓存网站的一些静态资源(较少变化的数据),可以就近以最快速度返回给用户,如视频网站和门户网站会将用户访问量大的热点内容缓存在CDN。
- 反向代理: 反向代理属于网站前端架构的一部分,部署在网站的前端,当用户请求到达网站的数据中心时,最先访问到的就是反向代理服务器,这里缓存网站的静态资源,无需将请求继续转发给应用服务器就能返回给用户。
- 本地缓存: 在应用服务器本地缓存着热点数据,应用程序可以在本机内存中直接访问数据,而无需访问数据库。
- 分布式缓存: 大型网站的数据量非常庞大,即使只缓存一小部分,需要的内存空间也不是单机能承受的,所以除了本地缓存,还需要分布式缓存,将数据缓存在一个专门的分布式缓存集群中,应用程序通过网络通信访问缓存数据。
1.6 异步
在单一服务器内部可通过多线程共享内存队列的方式实现异步,处在业务操作前面的线程将输出写入到队列,后面的线程从队列中读取数据进行处理;在分布式系统中,多个服务器集群通过分布式消息队列实现异步,分布式消息队列可以看作内存队列的分布式部署。
1.7 冗余
要想保证在服务器宕机的情况下网站依然可以继续服务,不丢失数据,就需要一定程度的服务器冗余运行,数据冗余备份,这样当某台服务器宕机时,可以将其上的服务和数据访问转移到其他机器上。
1.8 自动化
1.9 安全
2. 架构模式在新浪微博的应用
新浪微博的系统架构:
大型网站技术架构 读书笔记 (二) 大型网站架构模式相关推荐
- 读书笔记之 大型网站技术架构(核心原理与案例分析)
前言 坚持看了十几天的书,终于完成了毕业后第一次静下心来,利用业务时间看书并做笔记的成就了.废话不多说,这回看的是一直很膜拜的李智慧大神写的大型网站技术架构-核心原理与案例分析. 简短的读后感 极其推 ...
- 深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程
上一篇文章<浅析Web请求过程>讲述的是如何发起HTTP请求,对于请求发起过程中很重要的一个步骤--DNS解析过程的描述是一带而过,本篇文章将跟着DNS解析过程来分析域名是如何解析的. 一 ...
- [云数据中心] 《云数据中心网络架构与技术》读书笔记 第七章 构建多数据中心网络(1/3)
7.1 多数据中心的业务诉求场景 7.1.1 多数据中心的业务场景分析 主流需求:虚拟化和资源池化,形成多活,可就近提供服务 1. 业务跨数据中心部署 2. 两地三中心 是指在同城双活的数据中心基础上 ...
- 《李元芳履职记》读书笔记二 IT技术管理的沟通与团队建设
<李元芳履职记>读书笔记二 接一 https://blog.csdn.net/qq_45937199/article/details/103305223 IT技术人员从技术岗走向管理岗,所 ...
- 《Docker 技术入门与实践》-读书笔记二
<Docker 技术入门与实践>-读书笔记一 <Docker 技术入门与实践>-读书笔记二 一.数据管理 用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据 ...
- [云数据中心] 《云数据中心网络架构与技术》读书笔记 第八章 构建云数据中心端到端安全
8.1 云数据中心面临的安全挑战 因为云化和SDN化的网络特点(网元出现的位置随意性更大,出现和消失的时间不定): 首先会导致安全业务开通周期长: 其次SDN的自动化能力是现在安全业务所不能达到的,很 ...
- 《How Tomcat Works》读书笔记(二)
<How Tomcat Works>读书笔记(二) 这是<How Tomcat Works>第一二章的读书笔记.第一张主要写了一个静态资源处理的web服务器,第二章加了对ser ...
- 深入分析Java Web技术内幕读书笔记(一)浅析Web请求过程
随着Web技术的快速发展,互联网的网络架构已经从传统的C/S架构转变为B/S架构,B/S架构相较于传统的C/S架构,有诸多优点,例如:提供了统一的操作方式,简化了用户的学习成本:便捷的开发方式大大提高 ...
- 3D游戏设计读书笔记二
3D游戏设计读书笔记二 一.简答题 • 解释 游戏对象(GameObjects) 和 资源(Assets)的区别与联系. GameObjects是一个具体的实例,Assets是包括诸多游戏素材的资 ...
- oracle直查和call哪个更快,让oracle跑的更快1读书笔记二
当前位置:我的异常网» 数据库 » <>读书笔记二 <>读书笔记二 www.myexceptions.net 网友分享于:2013-08-23 浏览:9次 <> ...
最新文章
- andoridView修改
- Android之利用JSBridge库实现Html,JavaScript与Android的所有交互
- 三款ActiveX图表控件对比评测 TeeChart VS ProEssentials…
- 09.15,一维数组,冒泡排序
- Anaconda下安装OpenCV和Tensorflow(最简洁高效的方法)
- php javascript 不执行,javascript – 不工作php按钮来执行操作
- javaweb基础 - Servlet
- html 3d坐标,HTML3D
- opencv4.3.0+Visual Studio 2019环境配置
- 华为桌面云中怎么安装mysql8_安装MySQL8.0.18步骤以及可视化工具的连接问题。
- leapmotion手势交互引擎
- 人工智能白皮书(2022年) 附下载
- php动态万年历模块,php如何实现万年历的开发(每日一课真是非常有效率)
- Nakashima Propeller选择Voltaire加速船舶螺旋桨设计
- Verilog初学者小圣经
- 锐浪报表开发Web版
- 即时聊天通讯软件安卓+ios双端原生源码
- 国内的IT生意,敢问路在何方?
- PHP文件及运行(适合PHP初学者)
- pocketsphinx 模型库_pocketSphinx 嵌入式关键词唤醒
热门文章
- Cocos2dx技术(三)——cocos2dx基本概念(六)控件库
- 开场PPT动画怎么做炫酷
- Salesforce 知识点记录(JSZip在lighting中使用时遇到的坑)
- Python爬虫【urllib3模块】和【requests模块】
- 数据库课程设计大作业大盘点【建议在校生收藏】
- matlab画动图心,matlab动态心形图代码
- [安装 ADB 驱动]-手动安装 ADB 驱动得以进入 Android 手机系统
- JavaScript里的闭包(摘自JavaScript高级程序设计)
- DSP初识-20151111
- 【Unity3D入门教程】Unity3D播放音频和视频