分布式系统常用技术及案例分析 epub pdf mobi txt 电子书 下载 2024
发表于2024-11-22
分布式系统常用技术及案例分析 epub pdf mobi txt 电子书 下载 2024
本书的内容比较全面,涵盖分布式系统基础理论、常用技术以及经典的案例分析。全书篇幅较多,对分布式系统中的线程、通信、一致性、容错性、CAP理论、安全性、并发、RESTful风格架构、微服务、容器技术,以及分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务等相关技术和知识点都作了详细的讲解,并辅以淘宝网和Twitter为代表的国内外知名互联网企业的大型分布式系统为案例,分析其架构设计以及演变过程,做到了理论和实践相结合。
本书分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。第一部分主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、CAP 理论、安全性和并发等相关内容;同时讲述分布式系统的常见架构体系,其中也包括最近比较火的RESTful 风格架构、微服务、容器技术等。第二部分主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法;这些技术涵盖了分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务、容器等领域的内容。第三部分选举了以淘宝网和 Twitter 为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程;这部分相当于是对第二部分零散的技术点做一个“串烧”,让读者可以结合技术的理论,看到实战的效果。
多年软件开发管理及系统架构经验。负责过多个省、***大型分布式系统的设计与研发,也负责过多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的微服务架构经验。
第1章 分布式系统基础知识 1
1.1 概述 2
1.1.1 什么是分布式系统 2
1.1.2 集中式系统VS.分布式系统 3
1.1.3 如何设计分布式系统 4
1.1.4 分布式系统所面临的挑战 5
1.2 线程 6
1.2.1 什么是线程 6
1.2.2 进程和线程 7
1.2.3 编程语言中的线程对象 8
1.2.4 SimpleThreads示例 11
1.3 通信 14
1.3.1 网络基础知识 14
1.3.2 网络I/O模型的演进 19
1.3.3 远程过程调用(RPC) 33
1.3.4 面向消息的通信 41
1.4 一致性 43
1.4.1 以数据为中心的一致性模型 44
1.4.2 以客户为中心的一致性 45
1.5 容错性 46
1.5.1 基本概念 46
1.5.2 故障分类 47
1.5.3 使用冗余来掩盖故障 48
1.5.4 分布式提交 48
1.6 CAP理论 52
1.6.1 什么是CAP理论 52
1.6.2 为什么说CAP只能三选二 53
1.6.3 CAP常见模型 55
1.6.4 CAP的意义 56
1.6.5 CAP最新发展 56
1.7 安全性 57
1.7.1 基本概念 58
1.7.2 加密算法 60
1.7.3 安全通道 63
1.7.4 访问控制 72
1.8 并发 74
1.8.1 线程与并发 75
1.8.2 并发与并行 75
1.8.3 并发带来的风险 76
1.8.4 同步(Synchronization) 78
1.8.5 原子访问(Atomic Access) 83
第2章 分布式系统架构体系 85
2.1 基于对象的体系结构 86
2.1.1 分布式对象 86
2.1.2 微软DCOM(COM+) 87
2.1.3 CORBA 88
2.1.4 Java RMI 90
2.2 面向服务的架构(SOA) 93
2.2.1 架构VS.标准 94
2.2.2 SOA的基本概念 95
2.2.3 基于Web Services的SOA 97
2.2.4 SOA的演变 112
2.3 REST风格的架构 112
2.3.1 什么是REST 112
2.3.2 REST有哪些特征 113
2.3.3 Java实现REST的例子 115
2.3.4 REST API最佳实践 125
2.4 微服务架构(MSA) 128
2.4.1 什么是MSA 128
2.4.2 MSA VS. SOA 130
2.4.3 何时采用MSA 134
2.4.4 如何构建微服务 135
2.5 容器技术 139
2.5.1 虚拟化技术 139
2.5.2 容器VS.虚拟机 139
2.5.3 基于容器的持续部署 142
2.6 Serverless架构 149
2.6.1 什么是Serverless架构 150
2.6.2 Serverless典型的应用场景 151
2.6.3 常见的Serverless框架 153
2.6.4 Serverless架构原则 155
2.6.5 例子:使用Serverless实现游戏全球同服 157
第3章 分布式消息服务 164
3.1 Apache ActiveMQ 165
3.1.1 Apache ActiveMQ简介 165
3.1.2 Apache ActiveMQ安装配置 166
3.1.3 例子:producer-consumer 173
3.1.4 例子:使用JMX来监控ActiveMQ 174
3.1.5 例子:使用Java实现producer-consumer 176
3.2 RabbitMQ 180
3.2.1 RabbitMQ简介 180
3.2.2 RabbitMQ安装配置 181
3.2.3 例子:Work Queues 185
3.2.4 例子:Publish/Subscribe 191
3.2.5 例子:Routing 195
3.2.6 例子:Topics 200
3.2.7 例子:RPC 204
3.3 RocketMQ 210
3.3.1 RocketMQ简介 210
3.3.2 RocketMQ安装配置 213
3.3.3 例子:使用Java实现producer-consumer 214
3.3.4 RocketMQ最佳实践 219
3.4 Apache Kafka 223
3.4.1 Apache Kafka简介 224
3.4.2 Apache Kafka的核心概念 225
3.4.3 Apache Kafka的使用场景 228
3.4.4 Apache Kafka的安装、配置、使用 229
第4章 分布式计算 236
4.1 MapReduce 237
4.1.1 MapReduce简介 237
4.1.2 MapReduce的编程模型 238
4.1.3 MapReduce的实现 243
4.1.4 MapReduce的使用技巧 248
4.2 Apache Hadoop 251
4.2.1 Apache Hadoop简介 252
4.2.2 Apache Hadoop核心组件 253
4.2.3 Apache Hadoop单节点上的安装配置 254
4.2.4 Apache Hadoop集群上的安装配置 258
4.2.5 例子:词频统计WordCount程序 267
4.3 Apache Spark 272
4.3.1 Apache Spark简介 272
4.3.2 Apache Spark与Apache Hadoop的关系 274
4.3.3 Apache Spark 2.0的新特性 275
4.3.4 Apache Spark的安装和使用 279
4.3.5 Apache Spark集群模式 280
4.4 Apache Mesos 282
4.4.1 Apache Mesos简介 283
4.4.2 Apache Mesos的安装、使用 285
4.4.3 设计高可用的Mesos framework 289
第5章 分布式存储 296
5.1 Bigtable 297
5.1.1 Bigtable简介 297
5.1.2 Bigtable的数据模型 298
5.1.3 Bigtable的实现 300
5.1.4 Bigtable的性能优化 304
5.2 Apache HBase 308
5.2.1 Apache HBase简介 308
5.2.2 Apache HBase基本概念 310
5.2.3 Apache HBase架构 318
5.2.4 Apache HBase的安装、配置、使用 332
5.2.5 本地伪分布式 336
5.2.6 完全分布式 338
5.3 Apache Cassandra 342
5.3.1 Apache Cassandra简介 342
5.3.2 Apache Cassandra的应用场景 345
5.3.3 Apache Cassandra的架构、数据模型 346
5.3.4 用于配置Apache Cassandra的核心组件 347
5.3.5 Apache Cassandra的安装、配置、使用 349
5.4 Memcached 352
5.4.1 Memcached简介 352
5.4.2 Memcached的架构 353
5.4.3 Memcached的安装、使用 355
5.4.4 Memcached客户端 358
5.5 Redis 370
5.5.1 Redis简介 370
5.5.2 Redis的下载、安装、使用 372
5.5.3 Redis的数据类型及抽象 372
5.6 MongoDB 392
5.6.1 MongoDB简介 392
5.6.2 MongoDB的安装、配置、运行 394
5.6.3 MongoDB核心概念 401
5.6.4 MongoDB的数据模型 406
5.6.5 示例:Java连接MongoDB 420
第6章 分布式监控 422
6.1 Nagios 423
6.1.1 Nagios简介 423
6.1.2 Nagios的安装、使用 424
6.1.3 Nagios监控 428
6.1.4 Nagios插件 446
6.2 Zabbix 448
6.2.1 Zabbix简介 449
6.2.2 安装Zabbix 451
6.2.3 Zabbix对于容器的支持 460
6.2.4 Zabbix基本概念 463
6.3 Consul 474
6.3.1 Consul简介 475
6.3.2 Consul架构 476
6.3.3 Consul的安装和使用 478
6.3.4 Consul agent 492
6.4 ZooKeeper 501
6.4.1 ZooKeeper简介 501
6.4.2 ZooKeeper的安装和使用 505
6.4.3 ZooKeeper内部工作原理 509
6.4.4 例子:ZooKeeper实现barrier和producer-consumer queue 514
第7章 分布式版本控制系统 522
7.1 Bazaar 523
7.1.1 Bazaar简介 523
7.1.2 Bazaar的核心概念 525
7.1.3 Bazaar的安装 526
7.1.4 Bazaar的使用 528
7.2 Mercurial 533
7.2.1 Mercurial简介 533
7.2.2 Mercurial的核心概念 533
7.2.3 Mercurial的安装 537
7.2.4 Mercurial的使用 538
7.3 Git 545
7.3.1 Git简介 545
7.3.2 Git的安装 546
7.3.3 Git的基础概念 548
7.3.4 Git的使用 551
第8章 RESTful API、微服务及容器技术 578
8.1 Jersey 579
8.1.1 Jersey简介 579
8.1.2 Jersey的模块和依赖 580
8.1.3 JAX-RS核心概念 583
8.1.4 例子:用SSE构建实时Web应用 595
8.2 Spring Boot 603
8.2.1 Spring Boot简介 603
8.2.2 Spring Boot的安装 604
8.2.3 Spring Boot的使用 610
8.2.4 Spring Boot的属性与配置 615
8.3 Docker 620
8.3.1 Docker简介 621
8.3.2 Docker的特性 621
8.3.3 Docker的概念和原理 622
8.3.4 Docker Engine的安装 628
8.3.5 Docker的使用 633
第9章 淘宝网:“双11”神话的缔造者 636
9.1 从LAMP到Java平台的转变 637
9.1.1 淘宝网的诞生与发展 637
9.1.2 “平民英雄”LAMP架构 638
9.1.3 数据库更改为Oracle 639
9.1.4 向Java平台转变 642
9.2 坚定不移地走“去IOE”的道路 643
9.2.1 使用小型机、EMC存储 644
9.2.2 考虑“去IOE” 644
9.2.3 如何去“I” 646
9.2.4 如何去“O” 649
9.2.5 如何去“E” 650
9.3 打造云计算,决战“双11” 653
9.3.1 “大淘宝”战略简介 653
9.3.2 成立阿里云,专注云计算 656
9.3.3 利用大数据优化物流 660
9.3.4 技术是决胜“双11”的关键 661
第10章 Twitter:实时信息传递的王者 664
10.1 缓存,让响应更快 665
10.1.1 Twitter的诞生 665
10.1.2 RoR的蛮荒时代 666
10.1.3 使用Memcached 667
10.2 服务拆分与治理 668
10.2.1 关系数据库不是万灵药 668
10.2.2 系统拆分,平台转换 670
10.2.3 Finagle 670
10.3 抗击流量的洪流 672
10.3.1 业务的重新设计 673
10.3.2 Storm处理实时的大数据 675
10.3.3 从Storm到Heron 676
参考文献 680
写作背景
我一直想写一本关于分布式系统方面的书。一方面是想把个人多年工作中涉及的分布式技术做一下总结,另一方面也想把个人的经验分享给广大的读者朋友。由于我的开发工作大都以Java为主,所以一开始的主题设想是“分布式Java”,书也以开源方式发布在互联网上(网址为https://github.com/waylau/distributed-java)。
后来,陈晓猛编辑看到了这本开源书,以及我关于分布式系统方面的博文,问我是否有兴趣出版分布式相关题材的图书。当然书的内容不仅仅是“分布式Java”。
对于出书一事,我犹豫良久。首先,本身工作挺忙,实在无暇顾及其他;其次,虽然我之前写过超过一打的书籍(可见https://waylau.com/books/),但多是开源电子书,时间、内容方面自然也就不会有太多约束,几乎是“想写就写,没有时间就不写”,这个跟正式出版还是存在比较大的差异的;最后,这本书涉及面相对较广,需要查阅大量资料,实在是太耗费精力。
但陈晓猛编辑还是鼓励我能够去尝试做这个事情。思索再三,于是我便答应。当然,最后这本书还是在规定时间内完成了。它几乎耗尽了我写作期间所有的业余和休息时间。
“不积跬步,无以至千里;不积小流,无以成江海。”虽然整本书从构思到编写完成的时间不足一年,但书中的大部分知识点,却是我在多年的学习、工作中积累下来的。之所以能够实现快速写作,一方面是做了比较严格的时间管理,另一方面也得益于我多年坚持写博客和开源书的习惯。
内容介绍
本书分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。第一部分为第1章和第2章,主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题。 第二部分为第3章到第8章,主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法。第三部分为第9章和第10章,选取了以淘宝网和Twitter为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程。
第1章介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、CAP理论、安全性和并发等相关内容。
第2章详细介绍分布式系统的架构体系,包括传统的基于对象的体系结构、SOA,也包括最近比较火的RESTful风格架构、微服务、容器技术、Serverless架构等。
第3章介绍常用的分布式消息服务框架,包括Apache ActiveMQ、RabbitMQ、RocketMQ、Apache Kafka等。
第4章介绍分布式计算理论和应用框架方面的内容,包括MapReduce、Apache Hadoop、Apache Spark、Apache Mesos 等。
第5章介绍分布式存储理论和应用框架方面的内容,包括Bigtable、Apache HBase、Apache Cassandra、Memcached、Redis、MongoDB等。
第6章介绍分布式监控方面常用的技术,包括Nagios、Zabbix、Consul、ZooKeeper等。
第7章介绍常用的分布式版本控制工具,包括Bazaar、Mercurial、Git等。
第8章介绍RESTful API、微服务及容器相关的技术,着重介绍Jersey、Spring Boot、Docker等技术的应用。
第9章和第10章分别介绍以淘宝网和Twitter为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程。
源代码
致谢
首先,感谢电子工业出版社博文视点公司的陈晓猛编辑,是您鼓励我将本书付诸成册,并在我写作过程中审阅了大量稿件,给予了我很多指导和帮助。感谢工作在幕后的电子工业出版社评审团队对于本书在校对、排版、审核、封面设计、错误改进方面所给予的帮助,使本书得以顺利出版发行。
其次,感谢在我十几年求学生涯中教育过我的所有老师。是你们将知识和学习方法传递给了我。感谢我曾经工作过的公司和单位,感谢和我一起共事过的同事和战友,你们的优秀一直是我追逐的目标,你们所给予的压力正是我不断改进自己的动力。
感谢我的父母、妻子Funny和两个女儿。
分布式系统常用技术及案例分析 epub pdf mobi txt 电子书 下载 2024
分布式系统常用技术及案例分析 下载 epub mobi pdf txt 电子书 2024分布式系统常用技术及案例分析 mobi pdf epub txt 电子书 下载 2024
分布式系统常用技术及案例分析 epub pdf mobi txt 电子书 下载了解下别人都是怎么做的
评分分布式系统常用技术及案例分析
评分书中介绍的常用工具还是很全的。但是每种工具都是简单带过。哎 学不到什么。看看目录自己找点资料学更好一些
评分好书,质量很好,准备看啦
评分非常好!
评分书比较厚,内容比较多,各种分布式技术都有介绍
评分那里抄抄,这里抄抄,每个都讲一点,也是醉了。这书就是所以涉及系统的文档总结。。还九十九块。。
评分 评分很好 囤货 慢慢读 慢慢看 一次买了很多 送货及时
分布式系统常用技术及案例分析 epub pdf mobi txt 电子书 下载 2024