《大型网站技术架构:核心原理与案例分析》【PDF】下载
《大型网站技术架构:核心原理与案例分析》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230062557
内容简介
本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web
安全、系统发布、运维监控等在内的大型网站开发全景视图。
本书不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理、测试运维人员等了解网站技术架构的基础概念;还可供包括企业系统开发人员在内的各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。
目录
第1篇 概述
1 大型网站架构演化 2
1.1 大型网站软件系统的特点 3
1.2 大型网站架构演化发展历程 4
1.2.1 初始阶段的网站架构 4
1.2.2 应用服务和数据服务分离 4
1.2.3 使用缓存改善网站性能 5
1.2.4 使用应用服务器集群改善网站的并发处理能力
6
1.2.5 数据库读写分离 7
1.2.6 使用反向代理和CDN加速网站响应
8
1.2.7 使用分布式文件系统和分布式数据库系统 9
1.2.8 使用NoSQL和搜索引擎
10
1.2.9 业务拆分 11
1.2.10 分布式服务 11
1.3 大型网站架构演化的价值观 13
1.3.1 大型网站架构技术的核心价值是随网站所需灵活应对 13
1.3.2 驱动大型网站技术发展的主要力量是网站的业务发展 13
1.4 网站架构设计误区 14
1.4.1 一味追随大公司的解决方案 14
1.4.2 为了技术而技术 14
1.4.3 企图用技术解决所有问题 14
1.5 小结 15
2 大型网站架构模式 16
2.1 网站架构模式 16
2.1.1 分层 17
2.1.2 分割 18
2.1.3 分布式 18
2.1.4 集群 19
2.1.5 缓存 20
2.1.6 异步 20
2.1.7 冗余 21
2.1.8 自动化 22
2.1.9 安全 23
2.2 架构模式在新浪微博的应用 23
2.3 小结 25
3 大型网站核心架构要素 26
3.1 性能 27
3.2 可用性 28
3.3 伸缩性 29
3.4 扩展性 30
3.5 安全性 30
3.6 小结 31
第2篇 架构
4 瞬时响应:网站的高性能架构 34
4.1 网站性能测试 35
4.1.1 不同视角下的网站性能 35
4.1.2 性能测试指标 36
4.1.3 性能测试方法 39
4.1.4 性能测试报告 41
4.1.5 性能优化策略 41
4.2 Web前端性能优化 42
4.2.1 浏览器访问优化 42
4.2.2 CDN加速 43
4.2.3 反向代理 44
4.3 应用服务器性能优化 45
4.3.1 分布式缓存 45
4.3.2 异步操作 52
4.3.3 使用集群 53
4.3.4 代码优化 54
4.4 存储性能优化 58
4.4.1 机械硬盘vs. 固态硬盘 58
4.4.2 B+树vs.
LSM树 59
4.4.3 RAID vs. HDFS 61
4.5 小结 64
5 万无一失:网站的高可用架构 66
5.1 网站可用性的度量与考核 67
5.1.1 网站可用性度量 67
5.1.2 网站可用性考核 67
5.2 高可用的网站架构 69
5.3 高可用的应用 71
5.3.1 通过负载均衡进行无状态服务的失效转移
72
5.3.2 应用服务器集群的Session管理
73
5.4 高可用的服务 76
5.5 高可用的数据 78
5.5.1 CAP原理 79
5.5.2 数据备份 82
5.5.3 失效转移 84
5.6 高可用网站的软件质量保证 85
5.6.1 网站发布 85
5.6.2 自动化测试 86
5.6.3 预发布验证 87
5.6.4 代码控制 88
5.6.5 自动化发布 90
5.6.6 灰度发布 91
5.7 网站运行监控 91
5.7.1 监控数据采集 92
5.7.2 监控管理 93
5.8 小结 94
6 永无止境:网站的伸缩性架构 95
6.1 网站架构的伸缩性设计 97
6.1.1 不同功能进行物理分离实现伸缩 97
6.1.2 单一功能通过集群规模实现伸缩 98
6.2 应用服务器集群的伸缩性设计
99
6.2.1 HTTP重定向负载均衡 100
6.2.2 DNS域名解析负载均衡 101
6.2.3 反向代理负载均衡 102
6.2.4 IP负载均衡 103
6.2.5 数据链路层负载均衡
104
6.2.6 负载均衡算法 105
6.3 分布式缓存集群的伸缩性设计 106
6.3.1 Memcached分布式缓存集群的访问模型 107
6.3.2 Memcached分布式缓存集群的伸缩性挑战 107
6.3.3 分布式缓存的一致性Hash算法
109
6.4 数据存储服务器集群的伸缩性设计
112
6.4.1 关系数据库集群的伸缩性设计 113
6.4.2 NoSQL数据库的伸缩性设计 117
6.5 小结 119
7 随需应变:网站的可扩展架构 121
7.1 构建可扩展的网站架构 122
7.2 利用分布式消息队列降低系统耦合性
123
7.2.1 事件驱动架构 123
7.2.2 分布式消息队列 124
7.3 利用分布式服务打造可复用的业务平台 126
7.3.1 Web Service与企业级分布式服务 128
7.3.2 大型网站分布式服务的需求与特点 129
7.3.3 分布式服务框架设计 130
7.4 可扩展的数据结构 131
7.5 利用开放平台建设网站生态圈 132
7.6 小结 134
...
更多书单和推荐电子书请关注藏书者的新浪博客http://blog.sina.com.cn/cangshuzhe
《大型网站技术架构:核心原理与案例分析》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230062557
更多书单和推荐电子书请关注:
http://zhaozhiyong.cn
《大型网站技术架构:核心原理与案例分析》【PDF】下载的更多相关文章
- 《决战大数据:驾驭未来商业的利器》【PDF】下载
内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...
- 大数据时代的图表可视化利器——highcharts,D3和百度的echarts
大数据时代的图表可视化利器——highcharts,D3和百度的echarts https://blog.csdn.net/minidrupal/article/details/42153941 ...
- 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试
决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...
- 决战大数据之二:CentOS 7 最新JDK 8安装
决战大数据之二:CentOS 7 最新JDK 8安装 [TOC] 修改hostname # hostnamectl set-hostname node1 --static # reboot now 重 ...
- 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码
学习量化交易推荐学习国内关于Python大数据与量化交易的原创图书<零起点Python大数据与量化交易>. 配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据 ...
- asp.net大数据导出execl实现分开压缩并下载
asp.net大数据导出execl实现分开压缩并下载 /// <summary> /// 导出数据到EXCEL 多个表的 /// </summary> /// <para ...
- 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析
随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...
- 关于大数据时代传统商业存储的思考: 中心存储 VS 分布式存储
尊重原创,转载请注明出处:http://anzhan.me ; http://blog.csdn.net/anzhsoft 今天和我们部门的老大1*1, 大家面对面沟通了一下到新的项目组的想法.而且也 ...
- cloudera cdh6.3 离线安装 经典大数据平台视频教程(含网盘下载地址)
cdh6.3企业级大数据视频教程 链接:https://pan.baidu.com/s/1bLGrIwzpFQB-pQRb6KOmNg 提取码:i8h8 系统和软件版本1,操作系统:Centos7.6 ...
- 大数据之路week06--day01(VMware的下载与安装、安装CentOS)
好了,从今天开始就开始正式的进入大数据道路的轨道上了,当然了,Java 也是需要不断地在日后进行反复地学习,熟练掌握.(这里我要说一下,Java种还有一些I/O流.Lambda表达式和一些常用工具类有 ...
随机推荐
- python 小白(无编程基础,无计算机基础)的开发之路 day2
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- canvas三环加载进度条
之前做了一个三个圆形叠加在一起的加载,用的是定位和cile来操作,但是加载的头部不能是圆形.后来用canvas做了一个,但是这个加载的进度不好调整,原理很简单,就是让一个圆,按照圆形轨迹进行运动就可以 ...
- Java爬虫框架WebMagic——入门(爬取列表类网站文章)
初学爬虫,WebMagic作为一个Java开发的爬虫框架很容易上手,下面就通过一个简单的小例子来看一下. WebMagic框架简介 WebMagic框架包含四个组件,PageProcessor.Sch ...
- 《java.util.concurrent 包源码阅读》19 PriorityBlockingQueue
前面讲ScheduledThreadPoolExecutor曾经重点讲到了DelayedWorkQueue,这里说的PriorityBlockingQueue其实是DelayedWorkQueue的简 ...
- Less的Extend_Less继承
Extend就相当于Java的继承,它允许一个选择器继承另一个选择器的样式.Extend有两种语法格式. 一种是: <selector>:extend(<parentSelector ...
- 【设计模式系列】之OO面向对象设计七大原则
1 概述 本章叙述面向向对象设计的七大原则,七大原则分为:单一职责原则.开闭原则.里氏替换原则.依赖倒置原则.接口隔离原则.合成/聚合复用原则.迪米特法则. 2 七大OO面向对象设计 2.1 单一 ...
- VMware下设置Centos7联网与固定IP连接Xshell
爱折腾的小伙伴应该经常会用Vmware安装一些虚拟机用于学习,但是比如装了Linux,经常操作的时候非常切换窗口的时候非常麻烦,所以很多人都会选择用Xshell来连接本地的Linux虚拟机,但是用Xs ...
- [对smartMenu.js改进] 解决右键菜单栏在边缘弹出后,移出视图区域无法操作的问题
当用户在视图边缘(如右下角)右键召唤菜单栏的时候,菜单仍然从选中元素的右下角弹出,这时二级菜单栏一般都离开了视图区域,用户无法进一步操作. 这个问题挺常见的,原作者的留言板: 但是作者应该是已经不再维 ...
- MongoDB中聚合工具Aggregate等的介绍与使用
Aggregate是MongoDB提供的众多工具中的比较重要的一个,类似于SQL语句中的GROUP BY.聚合工具可以让开发人员直接使用MongoDB原生的命令操作数据库中的数据,并且按照要求进行聚合 ...
- Model中设置表单验证方法
Model类里面定义$_validate属性支持的验证因子格式: 格式:array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间). 验证条件: (1)Model::EXISTS_TO_ ...