《分布式系统常用技术及案例分析 第2版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:柳伟卫编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2019
  • ISBN:7121356773
  • 页数:541 页
图书介绍:

第1章 分布式系统基础知识 1

1.1概述 2

1.1.1什么是分布式系统 2

1.1.2集中式系统与分布式系统 2

1.1.3如何设计分布式系统 4

1.1.4分布式系统所面临的挑战 4

1.2线程 5

1.2.1什么是线程 5

1.2.2进程和线程 6

1.2.3线程和纤程 7

1.2.4编程语言中的线程对象 7

1.2.5 SimpleThreads示例 11

1.3通信 13

1.3.1网络I/O模型的演进 13

1.3.2远程过程调用(RPC) 28

1.3.3面向消息的通信 35

1.4一致性 38

1.4.1以数据为中心的一致性模型 38

1.4.2以客户为中心的一致性 39

1.5容错性 40

1.5.1基本概念 41

1.5.2故障分类 41

1.5.3使用冗余来掩盖故障 42

1.5.4分布式提交 42

1.6 CAP理论 46

1.6.1什么是CAP理论 47

1.6.2为什么CAP只能三选二 48

1.6.3 CAP常见模型 49

1.6.4 CAP的意义 50

1.6.5 CAP最新发展 50

1.7安全性 51

1.7.1基本概念 52

1.7.2加密算法 54

1.7.3安全通道 57

1.7.4访问控制 66

1.8并发 68

1.8.1线程与并发 69

1.8.2并发与并行 69

1.8.3并发带来的风险 70

1.8.4同步(Synchronization) 72

1.8.5原子访问(Atomic Access) 77

1.8.6无锁化设计提升并发能力 78

1.8.7缓存提升并发能力 78

1.8.8更细颗粒度的并发单元 79

第2章 分布式系统架构体系 80

2.1基于对象的体系结构 81

2.1.1分布式对象 81

2.1.2 Java RMI 82

2.2面向服务的架构(SOA) 85

2.2.1 SOA的基本概念 86

2.2.2基于Web Services的SOA 88

2.2.3 SOA的演变 103

2.3 REST风格的架构 103

2.3.1什么是REST 103

2.3.2 REST有哪些特征 104

2.3.3 Java实现REST的例子 106

2.3.4 REST API最佳实践 116

2.4微服务架构(MSA) 119

2.4.1什么是MSA 119

2.4.2 MSA与SOA 121

2.4.3何时采用MSA 124

2.4.4如何构建微服务 125

2.5容器技术 129

2.5.1虚拟化技术 129

2.5.2容器与虚拟机 130

2.5.3基于容器的持续部署 132

2.6 Serverless架构 140

2.6.1什么是Serverless架构 141

2.6.2 Serverless典型的应用场景 142

2.6.3 Serverless架构原则 144

2.6.4例子:使用Serverless实现游戏全球同服 146

第3章 分布式消息服务 152

3.1分布式消息概述 153

3.1.1基本概念 153

3.1.2使用场景 153

3.1.3常用技术 154

3.2 Apache ActiveMQ 154

3.2.1例子:producer-consumer 154

3.2.2例子:使用JMX来监控ActiveMQ 155

3.2.3例子:使用Java实现producer-consumer 157

3.3 RabbitMQ 162

3.3.1例子:Work Queues 162

3.3.2例子:Publish/Subscribe 168

3.3.3例子:Routing 172

3.3.4例子:Topics 176

3.3.5例子:RPC 181

3.4 Apache RocketMQ 186

3.4.1例子:使用Java实现producer-consumer 189

3.4.2 RocketMQ最佳实践 193

3.5 Apache Kafka 198

3.5.1 Apache Kafka的核心概念 199

3.5.2 Apache Kafka的使用场景 202

3.6实战:基于JMS的消息发送和接收 203

3.6.1项目概述 203

3.6.2项目配置 205

3.6.3编码实现 209

3.6.4运行 215

第4章 分布式计算 221

4.1分布式计算概述 222

4.1.1使用场景 222

4.1.2常用技术 222

4.2 MapReduce 223

4.2.1 MapReduce简介 223

4.2.2 MapReduce的编程模型 223

4.2.3 MapReduce接口实现 228

4.2.4 MapReduce的使用技巧 234

4.3 Apache Hadoop 236

4.3.1 Apache Hadoop的核心组件 237

4.3.2例子:词频统计WordCount程序 238

4.4 Spark 240

4.4.1 Spark简介 240

4.4.2 Spark与Hadoop的关系 241

4.4.3 Spark 2.0的新特性 242

4.4.4 Spark集群模式 246

4.5 Mesos 248

4.5.1 Mesos简介 249

4.5.2设计高可用的Mesos framework 250

4.6实战:基于Spark的词频统计 257

4.6.1项目概述 257

4.6.2项目配置 257

4.6.3编码实现 258

4.6.4运行 259

第5章 分布式存储 262

5.1分布式存储概述 263

5.1.1使用场景 263

5.1.2常用技术 263

5.2 Bigtable 264

5.2.1 Bigtable的数据模型 264

5.2.2 Bigtable的实现 266

5.2.3 Bigtable的性能优化 270

5.3 Apache HBase 273

5.3.1 Apache HBase的基本概念 274

5.3.2 Apache HBase的架构 281

5.4 Apache Cassandra 296

5.4.1 Apache Cassandra简介 296

5.4.2 Apache Cassandra的应用场景 299

5.4.3 Apache Cassandra的架构和数据模型 300

5.4.4用于配置Apache Cassandra的核心组件 301

5.5 Memcached 302

5.5.1 Memcached简介 303

5.5.2 Memcached的架构 303

5.5.3 Memcached客户端 305

5.6 Redis 313

5.6.1 Redis简介 313

5.6.2 Redis的下载与简单使用 314

5.6.3 Redis的数据类型及抽象 314

5.7 MongoDB 334

5.7.1 MongoDB简介 334

5.7.2 MongoDB核心概念 335

5.7.3 MongoDB的数据模型 340

5.7.4示例:Java连接MongoDB 354

5.8实战:基于Redis的分布式锁 355

5.8.1项目概述 355

5.8.2项目配置 356

5.8.3编码实现 357

5.8.4运行 360

第6章 分布式监控 364

6.1分布式监控概述 365

6.1.1使用场景 365

6.1.2常用技术 365

6.2 Nagios 365

6.2.1 Nagios监控 366

6.2.2 Nagios插件 384

6.3 Zabbix 386

6.3.1 Zabbix对容器的支持 386

6.3.2 Zabbix的基本概念 389

6.4 Consul 399

6.4.1 Consul架构 400

6.4.2 Consul agent 401

6.5 ZooKeeper 411

6.5.1 ZooKeeper简介 411

6.5.2 ZooKeeper内部工作原理 415

6.5.3例子:ZooKeeper实现barrier和producer-consumer queue 419

6.6实战:基于ZooKeeper的服务注册和发现 426

6.6.1项目概述 426

6.6.2项目配置 427

6.6.3编码实现 428

6.6.4运行 433

第7章 分布式版本控制系统 435

7.1分布式版本控制系统概述 436

7.1.1集中式与分布式 436

7.1.2分布式版本控制系统的核心概念 437

7.2 Bazaar 437

7.2.1 Bazaar的核心概念 437

7.2.2 Bazaar的使用 438

7.3 Mercurial 443

7.3.1 Mercurial的核心概念 444

7.3.2 Mercurial的使用 447

7.4 Git 454

7.4.1 Git的基础概念 454

7.4.2 Git的使用 457

7.5 Git Flow——团队协作最佳实践 483

7.5.1分支定义 483

7.5.2新功能开发工作流 484

7.5.3 Bug修复工作流 485

7.5.4版本发布工作流 485

第8章 RESTful API、微服务及容器技术 487

8.1 Jersey 488

8.1.1 Jersey简介 488

8.1.2 Jersey的模块和依赖 488

8.1.3 JAX-RS核心概念 492

8.1.4例子:用SSE构建实时Web应用 503

8.2 Spring Boot 511

8.2.1 Spring Boot简介 512

8.2.2 Spring Boot的安装 513

8.2.3 Spring Boot的使用 518

8.2.4 Spring Boot的属性与配置 524

8.3 Docker 529

8.3.1 Docker简介 529

8.3.2 Docker的核心组成、架构及工作原理 529

8.3.3 Docker的使用 535

8.4实战:基于Docker构建、运行、发布微服务 537

8.4.1编写微服务 537

8.4.2微服务容器化 538

8.4.3构建Docker image 538

8.4.4运行image 540

8.4.5访问应用 541

8.4.6发布微服务 541