• 分布式系统开发实战
21年品牌 40万+商家 超1.5亿件商品

分布式系统开发实战

批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!

48.31 6.9折 69.8 全新

仅1件

四川成都
认证卖家担保交易快速发货售后保障

作者柳伟卫

出版社人民邮电出版社

ISBN9787115541017

出版时间2021-03

装帧平装

开本16开

定价69.8元

货号9787115541017

上书时间2024-11-15

百叶图书

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介



目录
章分布式系统概述1

1.1什么是分布式系统1

1.2分布式系统常用术语2

1.3集中式系统与分布式系统3

1.4分布式系统特征4

1.5设计分布式系统所面临的挑战5

1.6本章小结6

1.7习题6

第2章节点7

2.1什么是线程7

2.2进程和线程8

2.3线程和纤程8

2.4编程语言中的线程对象9

2.4.1定义和启动一个线程9

2.4.2暂停线程执行9

2.4.3中断线程10

2.4.4等待另一个线程完成11

2.5节点之间的通信11

2.5.1消息丢失11

2.5.2消息乱序12

2.5.3数据错误12

2.5.4不可靠的TCP12

2.6本章小结12

2.7习题13

第3章通信14

3.1本地过程调用14

3.1.1本地过程调用的概念14

3.1.2本地过程调用的实现14

3.2远程过程调用16

3.2.1远程过程调用原理16

3.2.2如何实现远程过程调用18

3.2.3远程过程调用API20

3.2.4远程过程调用发展历程20

3.3常用网络I/O模型21

3.3.1阻塞I/O模型21

3.3.2非阻塞I/O模型22

3.3.3I/O复用模型22

3.3.4信号驱动I/O模型23

3.3.5异步I/O模型23

3.3.6几种I/O模型的比较24

3.4I/O操作中的常用术语25

3.4.1阻塞和非阻塞25

3.4.2同步与异步25

3.4.3总结25

3.5实战:在Java中实现常用网络I/O模型26

3.5.1JavaOIO26

3.5.2JavaNIO29

3.5.3JavaAIO33

3.6事件驱动37

3.6.1事件驱动编程37

3.6.2事件循环的实现38

3.6.3Reactor模型38

3.6.4Proactor模型40

3.7本章小结41

3.8习题41

第4章并发与并行42

4.1并发与并行的区别42

4.2线程与并发43

4.3并发带来的风险43

4.3.1死锁44

4.3.2饥饿45

4.3.3活锁45

4.4解决并发风险45

4.4.1同步45

4.4.2原子访问49

4.5提升系统并发能力49

4.5.1无锁化设计提升并发能力49

4.5.2缓存提升并发能力49

4.5.3更细颗粒度的并发单元50

4.6本章小结50

4.7习题50

第5章面向对象的分布式架构51

5.1基于对象的分布式架构51

5.2常用的分布式对象系统52

5.2.1微软DCOM52

5.2.2CORBA53

5.2.3JavaRMI54

5.3分布式对象系统优缺点57

5.4实战:基于JavaRMI实现分布式对象通信57

5.4.1示例概述57

5.4.2编写RMI服务器58

5.4.3编写RMI客户端60

5.4.4运行61

5.5本章小结61

5.6习题62

第6章面向服务的分布式架构63

6.1什么是面向服务的架构63

6.2SOA的基本概念64

6.3基于Web服务的SOA65

6.3.1XML-RPC66

6.3.2SOAP66

6.3.3Microsoft.NETRemoting69

6.3.4Java中的XMLWeb服务75

6.3.5超越SOAP75

6.3.6SOA的演变76

6.4Web服务的分类76

6.4.1“大”Web服务76

6.4.2RESTfulWeb服务77

6.4.3Web服务技术选型77

6.5实战:基于JAX-WS实现Web服务78

6.5.1JAX-WS概述78

6.5.2创建Web服务器和客户端的基本步骤78

6.5.3JAX-WS终端要求79

6.5.4创建基于JAX-WS的服务器79

6.5.5创建基于JAX-WS的客户端80

6.5.6运行80

6.6本章小结82

6.7习题82

第7章面向消息的分布式架构83

7.1什么是面向消息的分布式架构83

7.1.1常用术语83

7.1.2使用场景83

7.1.3常用技术84

7.2常见消息中间件产品介绍84

7.2.1ApacheActiveMQ84

7.2.2RabbitMQ85

7.2.3ApacheRocketMQ86

7.3消息通信常用模式88

7.3.1工作队列88

7.3.2发布/订阅89

7.3.3路由90

7.3.4主题91

7.3.5RPC92

7.4了解JMS规范94

7.4.1JMS消息风格94

7.4.2JMS接口95

7.5实战:基于JMS的消息发送和接收96

7.5.1项目概述96

7.5.2项目配置97

7.5.3编码实现99

7.5.4运行104

7.6本章小结107

7.7习题108

第8章REST风格的架构109

8.1什么是REST109

8.2REST设计原则110

8.3成熟度模型111

8.3.1第0级:使用HTTP作为传输方式111

8.3.2级:引入了资源的概念113

8.3.3第2级:根据语义使用HTTP动词113

8.3.4第3级:使用HATEOAS114

8.4RESTAPI管理116

8.5常用技术118

8.5.1JAX-RS规范118

8.5.2Jersey123

8.5.3ApacheCXF123

8.5.4SpringWebMVC124

8.6实战:基于Java实现RESTAPI124

8.6.1基于Jersey来构建REST服务124

8.6.2基于ApacheCXF来构建REST服务131

8.6.3基于SpringWebMVC来构建REST服务140

8.7本章小结145

8.8习题145

第9章微服务架构146

9.1什么是微服务架构146

9.2微服务架构与SOA架构的区别147

9.2.1单体架构的例子147

9.2.2微服务架构的例子148

9.3何时采用微服务架构150

9.4常用技术150

9.4.1JettyHTTPServer151

9.4.2构建REST程序151

9.4.3运行153

9.5实战:基于SpringBoot实现微服务153

9.5.1配置环境153

9.5.2RESTAPI设计154

9.5.3编写程序代码155

9.5.4安装REST客户端159

9.5.5运行、测试程序160

9.6微服务与通信160

9.6.1HTTP通信161

9.6.2消息通信161

9.6.3事件驱动的通信161

9.7了解CQRS162

9.7.1CQRS概述162

9.7.2CQRS与EventSourcing的关系163

9.7.3CQRS好处164

9.8实战:基于CQRS微服务通信164

9.8.1配置165

9.8.2Aggregate165

9.8.3Command168

9.8.4Event169

9.8.5测试170

9.9本章小结171

9.10习题171

0章Serverless架构172

10.1什么是Serverless架构172

10.2Serverless架构的典型应用173

10.2.1UI驱动的应用173

10.2.2消息驱动的应用174

10.3常见的Serverless架构175

10.3.1AWSLambda175

10.3.2GoogleCloudFunctions175

10.3.3Iron.io175

10.3.4IBMOpenWhisk175

10.3.5ServerlessFramework176

10.3.6AzureWebJobs176

10.4Serverless架构原则176

10.4.1根据需要使用计算服务执行代码177

10.4.2编写单一用途的无状态函数177

10.4.3设计基于推送的、事件驱动的管道177

10.4.4创建更粗实、更强大的前端177

10.4.5拥抱第三方服务178

10.5实战:使用AWS平台实现Serverless架构178

10.6本章小结182

10.7习题182

1章CloudNative架构183

11.1CloudNative概述183

11.1.1软件需求的发展183

11.1.2开发方式的巨变184

11.1.3云是大势所趋185

11.2CloudNative特性185

11.2.1以云为基础架构186

11.2.2云服务186

11.2.3无服务186

11.2.4可扩展187

11.2.5高可用189

11.2.6敏捷190

11.2.7云优先190

11.312-Factor191

11.3.1基准代码192

11.3.2依赖192

11.3.3配置193

11.3.4后端服务193

11.3.5构建、发布、运行193

11.3.6进程194

11.3.7端口绑定194

11.3.8并发195

11.3.9易处理196

11.3.10开发环境与线上环境等价196

11.3.11日志196

11.3.12管理进程197

11.4CloudNative成功案例分析197

11.4.1Amazon197

11.4.2Netflix198

11.4.3淘宝网199

11.5CloudNative与微服务架构的关系201

11.6CloudNative与Serverless架构的关系201

11.7CloudNative的优点及面临的挑战201

11.7.1CloudNative优点201

11.7.2CloudNative不是“银弹”202

11.7.3面临的挑战203

11.8本章小结203

11.9习题203

2章虚拟化与容器技术204

12.1虚拟化技术204

12.2容器与虚拟机204

12.2.1成熟度方面的比较205

12.2.2启动速度的比较205

12.2.3安全方面的比较205

12.2.4性能方面的比较206

12.3基于容器的持续部署206

12.3.1持续部署管道207

12.3.2测试207

12.3.3构建208

12.3.4部署209

12.3.5蓝-绿部署209

12.3.6运行预集成以及集成后测试210

12.3.7回滚与清理211

12.3.8决定每个步骤的执行环境212

12.3.9完成整个持续部署流212

12.4容器技术与微服务架构212

12.4.1基于GoogleKubernetes架构213

12.4.2基于DaoCloudDCE架构213

12.5容器技术与CloudNative架构213

12.6实战:基于Docker发布微服务214

12.6.1创建微服务214

12.6.2微服务容器化214

12.6.3使用Gradle来构建Dockerimage215

12.6.4运行image216

12.6.5访问应用217

12.6.6关闭容器217

12.6.7Docker发布微服务217

12.7本章小结217

12.8习题217

3章分布式计算218

13.1分布式计算概述218

13.2分布式计算应用场景218

13.3分布式计算常用技术219

13.3.1MapReduce219

13.3.2ApacheHadoop221

13.3.3ApacheSpark222

13.4实战:基于Spark词频统计223

13.4.1项目概述224

13.4.2项目配置224

13.4.3编码实现224

13.4.4运行225

13.5本章小结227

13.6习题227

4章分布式存储228

14.1分布式存储概述228

14.2分布式存储应用场景228

14.3分布式存储常用技术229

14.3.1Bigtable229

14.3.2ApacheHBase231

14.3.3ApacheCassandra233

14.3.4Memcached235

14.3.5Redis237

14.3.6MongoDB237

14.4实战:基于MongoDB文件服务器239

14.4.1文件服务器的需求239

14.4.2所需技术239

14.4.3文件服务器的实现241

14.4.4运行247

14.4.5其他配置项247

14.5本章小结248

14.6习题248

5章分布式监控249

15.1分布式监控概述249

15.2分布式监控应用场景249

15.3分布式监控常用技术249

15.3.1Nagios250

15.3.2Zabbix250

15.3.3Consul253

15.3.4ZooKeeper255

15.4实战:基于ZooKeeper的服务注册和发现258

15.4.1项目概述258

15.4.2项目配置258

15.4.3编码实现259

15.4.4运行262

15.5本章小结264

15.6习题264

6章分布式版本控制265

16.1版本控制系统简史265

16.2集中式与分布式版本控制系统265

16.3常用技术266

16.3.1Bazaar266

16.3.2Mercurial266

16.3.3Git267

16.4了解GitFlow269

16.4.1分支定义269

16.4.2新功能开发工作流269

16.4.3Bug修复工作流270

16.4.4版本发布工作流270

16.5本章小结271

16.6习题271

7章数据一致性272

17.1什么是CAP理论272

17.2为什么CAP只能三选二273

17.3CAP常见模型274

17.3.1牺牲分区容错性(CA模型)274

17.3.2牺牲可用性(CP模型)274

17.3.3牺牲一致性(AP模型)274

17.4CAP的意义及发展275

17.4.1CAP最新发展275

17.4.2BASE275

17.5以数据为中心的一致性模型276

17.5.1严格一致性276

17.5.2持续一致性276

17.5.3顺序一致性276

17.5.4因果一致性276

17.5.5入口一致性276

17.6以客户为中心的一致性模型277

17.6.1单调读一致性277

17.6.2单调写一致性277

17.6.3读写一致性277

17.6.4写读一致性277

17.7本章小结278

17.8习题278

8章分布式事务279

18.1本地事务279

18.1.1一个银行转账的例子279

18.1.2事务隔离级别280

18.2分布式事务面临的挑战282

18.3节点复制283

18.3.1Master-Slave复制283

18.3.2Master-Master多主复制283

18.4两阶段提交283

18.4.1准备阶段284

18.4.2提交阶段284

18.4.3两阶段提交状态机284

18.4.4两阶段提交的缺陷285

18.5三阶段提交285

18.5.1CanCommit285

18.5.2PreCommit286

18.5.3DoCommit286

18.5.4三阶段提交状态机286

18.5.5三阶段提交的缺陷287

18.6Paxos算法287

18.6.1问题描述287

18.6.2提案的选定288

18.6.3获取被选定的提案值289

18.6.4进展性290

18.6.5实现290

18.6.6总结291

18.6.7缺陷292

18.7Raft算法292

18.7.1Raft概述293

18.7.2复制状态机293

18.7.3Raft算法基础294

18.7.4Raft算法Leader选举296

18.7.5Raft算法日志同步297

18.7.6Raft算法安全性299

18.7.7处理Follower和Candidate异常302

18.7.8时间要求及可用性302

18.7.9集群成员关系变更303

18.7.10日志压缩305

18.7.11客户端交互306

18.7.12总结307

18.8消息307

18.8.1本地消息表308

18.8.2事务消息308

18.8.3如何保障幂等性309

18.8.4总结310

18.9本章小结310

18.10习题310

9章安全性311

19.1基本概念311

19.1.1安全威胁、策略和机制311

19.1.2密码与数字签名312

19.2加密算法313

19.2.1对称加密313

19.2.2使用对称密钥加密的数字签名313

19.2.3非对称加密314

19.2.4使用公钥加密的数字签名315

19.3安全通道315

19.3.1SSL/TLS315

19.3.2SSL握手过程316

19.3.3HTTPS318

19.4访问控制318

19.4.1防火墙319

19.4.2堡垒机319

19.4.3拒绝服务319

19.4.4访问控制的模型320

19.5实战:基于SpringSecurity实现安全认证320

19.5.1添加依赖321

19.5.2添加业务代码322

19.5.3配置消息转换器322

19.5.4配置SpringSecurity323

19.5.5创建应用配置类324

19.5.6创建内嵌Jetty的服务器324

19.5.7应用启动器325

19.5.8运行应用326

19.6本章小结327

19.7习题327

第20章可用性328

20.1故障不可避免328

20.2使用冗余提升系统可用性328

20.3常用副本控制协议329

20.3.1中心化副本控制协议329

20.3.2primary-secondary协议329

20.3.3去中心化副本控制协议331

20.4负载均衡技术332

20.4.1客户端发现模式332

20.4.2服务端发现模式333

20.5实战:基于NGINX实现服务高可用334

20.5.1配置负载均衡334

20.5.2负载均衡常用算法335

20.5.3实现Web服务的高可用336

20.5.4运行336

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP