万本电子书0元读

万本电子书0元读

顶部广告

分布式系统设计实践电子书

随着互联网,尤其是移动互联网的快速发展,大数据汹涌而至。传统单体应用的发者很快就发现,无论他们如何优化自己的产品,都无法满足飞速增长的业务需要,借助垂直扩展提高性能的路已经走到了尽头,谷歌、百度、阿里巴巴、亚马逊都先后遇到了这个难题。 谷歌公司关于GFS、Bigtable、MapReduce的三篇论文发表后,各种分布式技术如雨后春笋般蓬勃发展,困扰了业界多年的性能难题在水平扩展思路的引领下迎刃而解。从此,分布式文件系统、分布式数据库系统、分布式中间件等各种源的、闭源的分布式产品层出不穷。分布式技术的多样性固然为业界提供了许多选择,但也给分布式系统的发者,尤其是初学者带来了许多挑战。 本书旨在对分布式技术做一个整体介绍,对现有的各种分布式技术行系统的梳理,以及对各种分布式产品的设计思想和架构行具体阐述,使读者在短时间内了解分布式系统的全貌并理解其思想和应用。 本书适合业界的架构师、工程师、项目经理,以及大中专院校的高年级本科生和研究生使用和参考。

售       价:¥

纸质售价:¥43.90购买纸书

256人正在读 | 0人评论 6.2

作       者:李庆旭

出  版  社:人民邮电出版社有限公司

出版时间:2019-11-01

字       数:15.0万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书对近年来涌现出的各种主流分布式技术做了简要介绍和全面梳理。本书将分布式系统中涉及的技术分为前端构造技术、分布式中间件技术和分布式存储技术三大类,对每类技术都详细介绍了其原理、设计思想和架构,以及相关应用场景。此外,本书还总结了分布式系统的构建思想,并分别对业界几个非常成功的大型分布式系统(谷歌搜索系统、淘宝网电商平台、阿里云公有云平台、领英社交平台)行了案例研究。<br/>【推荐语】<br/>随着互联网,尤其是移动互联网的快速发展,大数据汹涌而至。传统单体应用的发者很快就发现,无论他们如何优化自己的产品,都无法满足飞速增长的业务需要,借助垂直扩展提高性能的路已经走到了尽头,谷歌、百度、阿里巴巴、亚马逊都先后遇到了这个难题。 谷歌公司关于GFS、Bigtable、MapReduce的三篇论文发表后,各种分布式技术如雨后春笋般蓬勃发展,困扰了业界多年的性能难题在水平扩展思路的引领下迎刃而解。从此,分布式文件系统、分布式数据库系统、分布式中间件等各种源的、闭源的分布式产品层出不穷。分布式技术的多样性固然为业界提供了许多选择,但也给分布式系统的发者,尤其是初学者带来了许多挑战。 本书旨在对分布式技术做一个整体介绍,对现有的各种分布式技术行系统的梳理,以及对各种分布式产品的设计思想和架构行具体阐述,使读者在短时间内了解分布式系统的全貌并理解其思想和应用。 本书适合业界的架构师、工程师、项目经理,以及大中专院校的高年级本科生和研究生使用和参考。<br/>【作者】<br/>李庆旭 1999 年北京工业大学计算机系硕士毕业。曾先后就职于华为、北电网络、微软、CA、Symantec/Veritas等国内外知名企业,担任过软件发工程师、项目经理、团队技术负责人等职务。参与研发过的产品有电信网管软件、微软拼音输法、微软SharePoint、微软Office 365、CA Clarity项目管理软件等。对软件技术有着浓厚的兴趣,常于工作之余涉猎软件的多个领域,如桌面操作系统、移动操作系统、分布式技术、人工智能、机器学习等。<br/>
目录展开

版权

内容提要

资源与支持

第一部分 分布式系统概述

第1章 分布式系统概述

1.1 分布式系统的组成

1.2 分布式协调组件

1.3 分布式存储系统

1.4 分布式计算系统

1.4.1 批处理分布式计算系统

1.4.2 流处理分布式计算系统

1.4.3 混合系统

1.5 分布式系统中节点之间的关系

第二部分 分布式系统的前端构造技术

第2章 Web框架的实现原理

2.1 Web框架简介

2.2 PHP Web MVC框架的工作原理

2.2.1 框架的入口

2.2.2 URL到控制器的映射

2.2.3 如何将模型传给视图

2.3 Java Web MVC框架原理

2.3.1 Java Servlet API 3.0

2.3.2 框架的入口

2.3.3 Spring 4.0框架

2.3.4 Java EE

2.3.5 Spring与Java EE的比较

2.4 Go语言Web开发

2.4.1 Go语言简介

2.4.2 Go语言Web开发

第3章 反向代理与负载均衡

3.1 反向代理

3.1.1 Nginx

3.1.2 Tengine

3.1.3 Varnish

3.2 负载均衡

3.2.1 DNS负载均衡

3.2.2 硬件负载均衡

3.2.3 软件负载均衡

第三部分 分布式中间件

第4章 分布式同步服务中间件

4.1 分布式一致性协议

4.2 分布式同步服务中间件简介

4.3 分布式同步服务中间件的实现原理

4.3.1 架构

4.3.2 如何消除单点故障

4.3.3 Chubby对外提供的API

4.3.4 数据库

4.3.5 Chubby使用示例:集群的主服务器选举

4.4 其他分布式同步服务中间件

4.4.1 Linux心跳机制

4.4.2 ZooKeeper

4.4.3 iNexus

4.5 分布式同步服务的应用

第5章 关系型数据库访问中间件

5.1 数据库访问中间件的形式

5.2 数据库访问中间件的工作原理

5.3 著名的数据库访问中间件

5.3.1 MySQL代理

5.3.2 Cobar

5.3.3 TDDL

5.3.4 MyCAT

5.3.5 Heisenberg

5.4 数据库访问中间件的应用

5.4.1 使用MySQL代理实现读写数据库分离

5.4.2 研发自己的数据库中间件,实现MySQL的分库分表

第6章 分布式服务调用中间件

6.1 分布式服务调用中间件简介

6.2 分布式服务调用中间件的实现原理

6.2.1 Dubbo的架构

6.2.2 Dubbo中各组件的交互

6.2.3 Dubbo的实现及特点

6.2.4 Dubbox

6.3 其他分布式服务调用中间件

6.3.1 Protocol Buffers

6.3.2 gRPC

6.3.3 Thrift

6.3.4 Motan

6.3.5 sofa-pbrpc

6.4 分布式服务调用中间件的应用

第7章 分布式消息服务中间件

7.1 分布式消息服务中间件简介

7.2.1 消息模型

7.2.2 架构

7.3 其他分布式消息服务中间件

7.3.1 阿里巴巴RocketMQ

7.3.2 Apache Pulsar

7.4 分布式消息服务中间件的应用

7.4.1 秒杀系统中使用Kafka以削平峰值流量

7.4.2 使用Kafka流实现消息推送

第8章 分布式跟踪服务中间件

8.1 分布式跟踪服务中间件的实现原理

8.2 其他分布式跟踪服务中间件

8.2.1 Twitter的Zipkin

8.2.2 Pinpoint

8.2.3 阿里巴巴的EagleEye

8.3 分布式跟踪服务中间件的应用

第四部分 分布式存储技术

第9章 分布式文件系统

9.1 分布式文件系统的实现原理

9.2 其他分布式文件系统

9.3 分布式文件系统的应用

第10章 基于键值对的NoSQL数据库

10.1 NoSQL数据库的CAP权衡

10.2 基于键值对的NoSQL数据库的实现原理

10.2.1 谷歌的LevelDB

10.2.2 阿里巴巴的Tair

10.2.3 亚马逊的Dynamo

10.3 其他基于键值对的NoSQL数据库

10.3.1 Memcached

10.3.2 Redis

10.3.3 Berkeley DB

10.3.4 Facebook RocksDB

10.3.5 Riak

10.3.6 Voldemort

10.4 基于键值对的NoSQL数据库的应用

10.4.1 使用Redis缓存会话数据

10.4.2 使用Berkeley DB/LevelDB/RocksDB构建自己的分布式存储系统

10.4.3 使用Berkeley DB/LevelDB/RocksDB作为本地数据库

第11章 基于列的NoSQL数据库

11.1 基于列的NoSQL数据库的实现原理

11.1.1 数据模型

11.1.2 架构

11.2 其他基于列的NoSQL数据库

11.2.1 Apache HBase

11.2.2 Apache Cassandra

11.2.3 Baidu Tera

11.3 基于列的NoSQL数据库的应用

11.3.1 HBase用于数据分析系统

11.3.2 HBase用于存储呼叫记录

第12章 基于文档的NoSQL数据库

12.1 基于文档的NoSQL数据库的实现原理

12.1.1 数据模型

12.1.2 自动分片

12.1.3 副本

12.1.4 索引

12.1.5 查询路由

12.2 其他基于文档的NoSQL数据库

12.2.1 CouchDB

12.2.2 RethinkDB

12.3 基于文档的NoSQL数据库的应用

第13章 其他NoSQL数据库

13.1 基于图的NoSQL数据库Neo4j

13.1.1 数据模型

13.1.2 图的存储

13.1.3 高可用性

13.1.4 水平扩展

13.2 多数据模型NoSQL数据库OrientDB

13.2.1 基本概念

13.2.2 图的表示

13.2.3 节点与集群

13.2.4 分片

13.2.5 ACID支持

13.2.6 CAP的权衡

13.2.7 集群配置信息的管理

13.3 时间序列NoSQL数据库

第14章 NewSQL数据库

14.1 NewSQL和CAP理论

14.2 采用新架构的NewSQL系统

14.2.1 谷歌的Megastore

14.2.2 谷歌的Spanner

14.2.3 谷歌的F1

14.2.4 阿里巴巴的OceanBase

14.2.5 其他采用新架构的NewSQL数据库

第五部分 分布式系统的构建思想

第15章 云化

15.1 云化的技术基础

15.1.1 虚拟机技术

15.1.2 容器技术

15.2 公有云能提供什么

15.3 云化对软件架构的要求

第16章 分布式系统的构建思想

16.1 一切都可能失败与冗余的思想

16.1.1 如何避免单点故障

16.1.2 避免单点故障的具体做法

16.2 水平而不是垂直扩展的思想

16.2.1 数据的水平扩展

16.2.2 服务的水平扩展

16.2.3 数据中心的水平扩展

16.3 尽可能简单的思想

16.4 实用主义的思想

16.4.1 搜索引擎作为查询工具使用

16.4.2 阿里巴巴的OceanBase的架构

16.4.3 根据需要选择最适合的开发工具和开发语言

16.4.4 根据需要选择不同的存储系统

16.5 异步化以解耦并削平峰值

16.6 最终一致性的思想

16.7 微服务的思想

16.8 MapReduce的思想

16.9 服务跟踪的思想

16.10 资源池化的思想

第六部分 大型分布式系统案例研究及分析

第17章 大型分布式系统案例研究

17.1 案例研究之谷歌搜索系统

17.2 案例研究之淘宝网

17.3 案例研究之阿里云

17.4 案例研究之领英

第18章 关于分布式系统设计的思考

18.1 大型互联网公司架构的共性

18.2 为何大型互联网公司的架构如此相似

18.3 关于分布式监控系统

18.4 Linux系统调用epoll()

18.5 关于插件设计模式的实现

18.5.1 C/C++语言的动态库形式的实现

18.5.2 Java语言的插件模式实现

18.5.3 采用专用语言的插件模式实现

18.6 关于分布式服务调用中间件的实现

18.7 动态链接还是静态链接

18.8 无所不用其极的压榨性能手段

18.8.1 编译后代码的原生态化

18.8.2 定制的Linux内核

18.8.3 定制的Java虚拟机

18.8.4 定制的MySQL

参考文献

后记

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部