您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
分布式系统开发实战
字数: 651000
装帧: 平装
出版社: 人民邮电出版社
出版日期: 2021-03-01
商品条码: 9787115541017
版次: 1
开本: 16开
页数: 360
出版年份: 2021
定价:
¥69.8
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
编辑推荐
(1)新。符合当今云架构发展现状的开发技术,无论是大型企业还是个人开发者,都或多或少地采用了分布式的方式来开发和部署应用。 (2)全。涵盖REST设计、测试、服务注册、服务发现、安全、数据管理、消息通信、批处理、任务调度、运营、容器部署、持续发布等方面的知识。 (3)细。实战案例辅以大量理论知识,让读者透彻理解每一个知识点。
内容简介
本书从原理和实践角度全面介绍如何设计分布式系统。内容包括节点、通信、并发与并行、面向对象的分布式架构、面向服务的分布式架构、面向消息的分布式架构、REST风格的架构、微服务架构、Serverless架构、Cloud Native架构、虚拟化与容器技术、分布式计算、分布式存储、分布式监控、分布式版本控制、数据一致性、分布式事务、安全性、可用性等。全书内容丰富、案例新颖,相关理论与技术实践较为前瞻。本书最后还提供了一个综合实战案例,手把手教读者基于Spring Cloud技术来实现微服务架构。本书面向的读者主要是对分布式系统感兴趣的计算机专业学生、软件工程师、系统架构师等。
作者简介
柳伟卫,英文名Waylau,80后程序员,关注编程、系统架构、性能优化。对技术抱有极大的热情,坚持每天学习。喜欢开源,乐于分享。具有多年软件开发管理及系统架构经验。负责过多个重量及省级大型分布式系统的设计与研发,也参与过多个大型项目系统架构的技术改造。现为某集团技术公司项目经理,负责大型分布式系统的微服务化改造。
目录
第1章分布式系统概述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第1级:引入了资源的概念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
第10章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
第11章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
第12章虚拟化与容器技术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
第13章分布式计算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
第14章分布式存储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
第15章分布式监控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
第16章分布式版本控制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
第17章数据一致性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
第18章分布式事务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
第19章安全性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
20.6本章小结337
20.7习题337
第21章综合实战:基于SpringCloud的微服务架构设计与实现338
21.1SpringCloud概述338
21.1.1什么是SpringCloud338
21.1.2SpringCloud与SpringBoot的关系339
21.2SpringCloud入门配置339
21.2.1Maven配置339
21.2.2Gradle配置340
21.2.3声明式方法340
21.3SpringCloud的子项目介绍341
21.3.1SpringCloud子项目的组成341
21.3.2SpringCloud组件的版本342
21.4实现微服务的注册与发现343
21.4.1服务发现的意义343
21.4.2如何集成EurekaServer343
21.4.3如何集成EurekaClient347
21.4.4实现服务的注册与发现347
21.5本章小结348
21.6习题348
附录本书所涉及的软件及相关版本349
参考文献350
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网