分布式系统开发实战
批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!
¥
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
— 没有更多了 —
以下为对购买帮助不大的评价