首页>参考读物>计算机科学与技术>软件与程序设计

分布式中间件技术实战(Java版)
作者 : 钟林森 编著
出版日期 : 2019-12-03
ISBN : 978-7-111-64151-3
定价 : 129.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 448
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书主要围绕构建分布式系统架构的“中间件”实践展开介绍。开篇首先介绍了分布式系统架构的相关知识要点,包括其功能、作用以及演进历程,并由此引出了分布式中间件的相关介绍;紧接着重点介绍了目前在实际生产环境中应用得比较广泛的几款Java中间件,包括缓存中间件Redis、消息中间件RabbitMQ、统一协调管理中间件ZooKeeper及综合中间件Redisson等,主要介绍了这几款中间件的基本概念、典型的应用场景及相应的功能组件等。值得一提的是,本书在介绍这几款中间件的理论知识时,还以微框架Spring Boot作为奠基,整合相关中间件之间的依赖,并以笔者实际的经验结合实际项目中的典型业务场景进行代码实战。本书适合中间件实践经验为零的开发者阅读;而对于有一定Java应用开发经验的工程师而言,通过阅读本书可以了解中间件在构建企业级应用系统的过程中所提供的解决思路和方案。

图书特色

广告语:
CSDN博客专家、51CTO学院/CSDN学院/网易云课堂知名讲师力作!5位技术大咖力荐!30个实战案例、88幅流程图、大量高质量代码,手把手带领读者从零开始学习分布式中间件技术

图书前言

为什么要写这本书
  互联网、移动互联网时代的到来,不仅给企业业务的扩展带来了巨大的挑战,同时也在某种层面上给开发者带来了重大机遇。这一机遇主要是由具有高并发、高可用、高扩展等功能特性的分布式系统架构带来的。然而,分布式系统架构的构建其实是一个相当复杂的过程,在这个过程中毫无疑问是需要有一系列的功能组件加以支撑的。其中,最为典型的当属“中间件”,它在构建分布式系统架构的过程中起到了至关重要的作用。因此,想要进军分布式系统架构领域,学习并实战分布式中间件的相关知识,以及掌握其在实际典型业务场景中的使用,都是很有必要的。
  目前,国内图书市场上关于Java中间件的图书不少,但是真正从初学者的角度,基于实际项目,通过各种典型业务模块和案例来指导读者提高开发水平的图书却很少。本书便是以实战为主,配合必要的理论知识,介绍了几款比较流行的分布式中间件,包括其理论层面的知识要点及在实际业务场景中的实战过程,让读者几乎可以从零开始一步一个脚印地学习Java企业级应用开发的各种常用中间件,从而提高实际开发水平和项目实战能力。
本书有何特色
  1.详解Java企业级应用构建所涉及的常用中间件
  本书主要介绍了Java企业级应用构建所涉及的各种常见中间件,包括Redis、RabbitMQ、ZooKeeper和Redisson等,不仅介绍了其理论要点,还介绍了其功能组件底层基础架构的执行过程。
  2.基于Spring Boot微服务框架作为实战中间件的奠基
  本书采用了目前比较流行的Spring Boot微框架作为实战中间件的奠基,在整合中间件的相关依赖并实践其相关功能组件时,还介绍了Spring Boot、Spring MVC、MyBatis、Redis、RabbitMQ、ZooKeeper、Redisson和MySQL等热门技术。
  3.详解实际生产环境中的各种典型应用案例,实用性强
  本书不仅以大量图文相结合的方式介绍了相关中间件的理论知识,而且还重点介绍了实际生产环境中各种中间件的典型应用场景,并给出了实现代码,有很强的实用性。而且这些中间件之间也相互独立,开发人员可以作为手册随时查阅和参考。
  4.案例典型,有较高的应用价值
  本书在介绍完每个中间件的理论要点后,都会介绍一个典型的业务场景,甚至以实际的应用系统作为实战案例。这些案例来源于作者所开发的实际项目,具有较高的应用价值和参考性。而且这些案例分别使用不同的中间件实现,便于读者融会贯通地理解书中所讲解的相关理论知识。
本书内容及知识体系
  第1篇 开发工具准备
  本篇包括第1、2章,主要介绍了分布式系统架构的演进历程,并详细介绍了分布式中间件的重要性,重点介绍了常见中间件的功能特性、作用及其典型应用场景。除此之外,本篇还介绍了如何基于Spring Boot微服务框架搭建微服务项目,并系统地介绍了各种相关的开发工具。
  第2篇 开发实战
  本篇包括第3~9章,是全书的核心,介绍了目前在构建分布式系统架构中经常使用的典型分布式中间件,包括缓存中间件Redis、消息中间件RabbitMQ、统一协调管理中间件ZooKeeper、综合中间件Redisson等。本篇在介绍完每个中间件的相关理论要点后,都给出了相应中间件在实际应用场景和业务模块中的实战案例,以充分巩固和加深读者对每个中间件的理解,从而提高实际的项目开发水平。
  第3篇 总结
  本篇包括第10章,对全书内容做了总结,并对核心篇章,特别是对实际应用系统的设计、开发与实战等章节做了重点回顾,并对读者使用书中提供的样例代码提出了几点建议。
配套资源获取方式
  本书涉及的源代码文件及开发工具等配套资源需要读者自行下载。请在机工新阅读网站(www.cmpreading.com)搜索到本书,然后单击“资料下载”按钮,即可在本书页面上找到“配书资源”下载链接,单击该链接即可下载。另外,读者也可以从Git仓库中下载这些资料,网址为https://gitee.com/steadyjack/middleware.git。
适合阅读本书的读者
* 需要全面学习分布式中间件技术的人员;
* Java和Java Web开发程序员;
* Java EE开发工程师;
* 希望提高项目开发水平的开发人员;
* 希望巩固和提升开发水平的系统架构师;
* 需要一本案头必备查询手册的人员;
* 相关专业的高校学生和社会培训学员。
阅读本书的建议
* 读者需要有一定的Java编程基础和Spring Boot微服务框架使用经验;
* 有Java EE框架使用经验的读者可以根据实际情况有重点地选择阅读各个中间件及其案例;
* 对于每个典型应用场景的实战案例,先自己思考一下实现的思路,然后再阅读,学习效果更好;
* 先对各种中间件的应用场景做必要的了解和学习,然后再结合提供的案例源代码进行应用实战,理解起来更加容易,也更加深刻。
本书作者
  本书由钟林森主笔编写。作为一个Java后端工程师,作者曾任职于国内某知名互联网公司,担任开发组长,并长期活跃于CSDN和51CTO学院等技术社区,写作了大量原创博客,访问量达百万人次。作者还作为CSDN学院、网易云课堂等知名教育平台的讲师,授课学员超过万人。
  由于作者水平所限,加之写作时间有限,书中可能还存在错漏和不严谨之处,恳请同行专家和各位读者不吝指正。您在阅读本书时若有疑问,请发电子邮件到hzbook2017 @163.com。

  钟林森

上架指导

计算机\程序设计

封底文字

业内点评:

本书由浅入深、循序渐进地介绍了当前构建分布式系统架构的主流中间件,并以Java企业级应用开发为出发点,全面介绍了应用系统架构演进的历程,以及各种典型中间件在这一历程中所起的作用。除此之外,本书还以大量的图文、丰富简洁的代码实战中间件,可以让读者能真正做到学以致用。
——广东橙加科技有限公司开发部经理 神雕大侠

本书实战为主,理论为辅,这很符合作者的风格。书中讲解的内容很能锻炼读者的代码编写能力及对业务场景的思考能力。书中提供的大量流程图和程序代码可以让读者更容易理解中间件每个功能组件的底层执行原理。
——广东橙加科技有限公司技术总监 Eken

作者阿修罗是一个喜欢将复杂问题简单化的开发者。特别是对于框架、组件、代码及业务系统,他更是“习惯性”地热衷于将这些东西简单化,并通过大众化的语言和略带幽默的风格表达出来。本书也不例外。
——酷狗科技技术经理 阿汜

通篇阅读完本书,发现这是一本颇为值得细读的书。抛开作者对中间件原理的扎实论述不说,书中给出的大量流程图更是让人大呼过瘾,这对理解中间件至关重要。可以说,清晰的流程图是进行代码实战的前提,而本书在这一点上做得很好。
——唯品会信息科技有限公司高级后端开发工程师 淡然

图书目录

前言
第1篇 开发工具准备
第1章 走进分布式中间件 2
1.1 分布式系统概述 2
1.1.1 白话分布式系统 3
1.1.2 分布式系统发展历程 3
1.1.3 分布式系统特性 6
1.1.4 分布式系统常见问题 7
1.2 分布式中间件概述 7
1.2.1 白话分布式中间件 7
1.2.2 常见中间件介绍 8
1.3 本书核心知识要点 9
1.4 本书实战要求与建议 10
第2章 搭建微服务项目 11
2.1 Spring Boot概述 11
2.1.1 什么是Spring Boot 11
2.1.2 Spring Boot的优势 12
2.1.3 Spring Boot的几大特性 13
2.2 搭建规范与搭建流程 13
2.2.1 Spring Boot项目搭建规范 14
2.2.2 Spring Boot项目搭建流程 14
2.2.3 写个Hello World吧 26
2.3 总结 28
第2篇 开发实战
第3章 缓存中间件Redis 30
3.1 Redis概述与典型应用场景介绍 30
3.2 Redis的使用 32
3.2.1 快速安装Redis 32
3.2.2 在Windows环境下使用Redis 34
3.2.3 Spring Boot项目整合Redis 37
3.2.4 Redis自定义注入Bean组件配置 38
3.2.5 RedisTemplate实战 39
3.2.6 StringRedisTemplate实战 43
3.3 Redis常见数据结构实战 45
3.3.1 字符串 45
3.3.2 列表 47
3.3.3 集合 48
3.3.4 有序集合 50
3.3.5 哈希Hash存储 52
3.3.6 Key失效与判断是否存在 54
3.4 Redis实战场景之缓存穿透 56
3.4.1 什么是缓存穿透 57
3.4.2 缓存穿透的解决方案 58
3.4.3 实战过程 58
3.4.4 其他典型问题介绍 65
3.5 总结 66
第4章 Redis典型应用场景实战之抢红包系统 67
4.1 整体业务流程介绍 67
4.1.1 抢红包系统业务流程 68
4.1.2 业务流程分析 68
4.1.3 业务模块划分 70
4.2 数据库表设计与环境搭建 71
4.2.1 数据库表设计 71
4.2.2 开发环境搭建 73
4.2.3 开发流程介绍 83
4.3 “红包金额”随机生成算法实战 85
4.3.1 随机数算法 86
4.3.2 红包随机金额生成算法要求 86
4.3.3 二倍均值法简介 87
4.3.4 红包随机金额生成算法实战 88
4.3.5 红包随机金额生成算法自测 90
4.4 “发红包”模块实战 91
4.4.1 业务模块分析 92
4.4.2 整体流程实战 93
4.4.3 业务模块自测 99
4.5 “抢红包”模块实战 101
4.5.1 业务模块分析 101
4.5.2 整体流程 102
4.5.3 业务模块自测 105
4.5.4 总结 109
4.6 Jmeter压力测试高并发抢红包 110
4.7 问题分析与优化方案 116
4.7.1 问题分析 117
4.7.2 优化方案介绍 118
4.7.3 优化方案之Redis分布式锁实战 118
4.7.4 不足之处 122
4.8 总结 122
第5章 消息中间件RabbitMQ 124
5.1 RabbitMQ简介 124
5.1.1 认识RabbitMQ 125
5.1.2 典型应用场景介绍 126
5.1.3 RabbitMQ后端控制台介绍 132
5.1.4 基于Spring的事件驱动模型实战 133
5.2 Spring Boot项目整合RabbitMQ 137
5.2.1 RabbitMQ相关词汇介绍 138
5.2.2 Spring Boot项目整合RabbitMQ 139
5.2.3 自定义注入配置Bean相关组件 140
5.2.4 RabbitMQ发送、接收消息实战 142
5.2.5 其他发送接收消息方式实战 147
5.3 RabbitMQ多种消息模型实战 152
5.3.1 基于FanoutExchange的消息模型实战 152
5.3.2 基于DirectExchange的消息模型实战 160
5.3.3 基于TopicExchange的消息模型实战 165
5.4 RabbitMQ确认消费机制 171
5.4.1 消息高可用和确认消费 172
5.4.2 常见的确认消费模式介绍 174
5.4.3 基于自动确认消费模式实战 176
5.4.4 基于手动确认消费模式实战 182
5.5 典型应用场景实战之用户登录成功写日志 188
5.5.1 整体业务流程介绍与分析 188
5.5.2 数据库表设计 189
5.5.3 开发环境搭建 197
5.5.4 基于TopicExchange构建日志消息模型 200
5.5.5 异步发送接收登录日志消息实战 201
5.5.6 整体业务模块自测实战 205
5.6 总结 208
第6章 死信队列/延迟队列实战 209
6.1 死信队列概述 209
6.1.1 死信队列简介与作用 209
6.1.2 典型应用场景介绍 212
6.2 RabbitMQ死信队列实战 213
6.2.1 死信队列专有词汇介绍 214
6.2.2 死信队列消息模型实战 215
6.2.3 死信队列延迟发送消息实战 221
6.3 典型应用场景实战之商城平台订单支付超时 226
6.3.1 整体业务场景介绍 227
6.3.2 整体业务流程分析 228
6.3.3 数据库设计 229
6.3.4 构建RabbitMQ死信队列消息模型 236
6.3.5 Controller层开发用户下单及订单失效功能 240
6.3.6 “用户下单支付超时”延迟发送接收实战 246
6.3.7 “用户下单支付超时”整体功能自测 250
6.4 总结 254
第7章 分布式锁实战 256
7.1 分布式锁概述 256
7.1.1 锁机制 257
7.1.2 分布式锁登场 263
7.1.3 典型应用场景介绍 265
7.1.4 小结 268
7.2 基于数据库实现分布式锁 268
7.2.1 乐观锁简介 268
7.2.2 乐观锁实战 269
7.2.3 Jmeter高并发测试乐观锁 280
7.2.4 悲观锁简介 286
7.2.5 悲观锁实战 288
7.2.6 Jmeter高并发测试悲观锁 290
7.2.7 小结 291
7.3 基于Redis实现分布式锁 292
7.3.1 Redis温故而知新 292
7.3.2 分布式锁的实现流程与原理分析 294
7.3.3 基于Redis实战实现分布式锁 295
7.3.4 Jmeter高并发测试 303
7.3.5 小结 307
7.4 基于ZooKeeper实现分布式锁 308
7.4.1 ZooKeeper简介与作用 308
7.4.2 分布式锁的实现流程与原理分析 310
7.4.3 Spring Boot整合ZooKeeper 312
7.4.4 基于ZooKeeper实现分布式锁 315
7.4.5 Jmeter高并发测试 317
7.4.6 小结 319
7.5 典型应用场景之书籍抢购模块设计与实战 319
7.5.1 整体业务流程介绍与分析 319
7.5.2 数据库表设计与用例设计 321
7.5.3 书籍抢购核心业务逻辑开发实战 324
7.5.4 Jmeter重现“库存超卖”的问题 328
7.5.5 采用分布式锁解决问题 330
7.5.6 小结 334
7.6 总结 334
第8章 综合中间件Redisson 336
8.1 Redisson概述 336
8.1.1 Redisson简介与作用 337
8.1.2 Redisson的功能特性 339
8.1.3 典型应用场景之布隆过滤器与主题 340
8.1.4 典型应用场景之延迟队列与分布式锁 345
8.1.5 Spring Boot整合Redisson 348
8.2 Redisson常见功能组件实战 352
8.2.1 布隆过滤器 352
8.2.2 发布-订阅式主题 355
8.2.3 数据结构之映射Map 361
8.2.4 数据结构之集合Set 366
8.2.5 队列Queue实战 370
8.2.6 延迟队列Delayed Queue实战1 374
8.2.7 延迟队列Delayed Queue实战2 381
8.3 分布式锁实战 385
8.3.1 重温分布式锁 385
8.3.2 分布式锁之一次性锁实战 387
8.3.3 分布式锁之可重入锁实战 392
8.4 总结 398
第9章 Redisson典型应用场景实战之高性能点赞 399
9.1 整体业务流程介绍与分析 399
9.1.1 业务背景介绍 400
9.1.2 业务流程介绍与分析 401
9.1.3 业务模块划分与数据库设计 404
9.2 “点赞与取消点赞”操作模块实战 409
9.2.1 “点赞与取消点赞”业务流程分析 409
9.2.2 Controller层接收请求信息 412
9.2.3 Service层插入、更新并缓存记录信息 415
9.2.4 业务模块自测 421
9.3 “排行榜”业务模块实战 424
9.3.1 “排行榜”业务流程分析 425
9.3.2 接收前端请求并触发缓存排行榜 426
9.3.3 业务模块自测 428
9.4 总结 432
第3篇 总结
第10章 总结与回顾 434

教学资源推荐
作者: 骆斌 主编 邵栋 任桐炜 编著
作者: (美)Clovis L.Tondo,Scott E.Gimpel
作者: 汪同庆 关焕梅 汤洁
作者: Kathryn E.Sanders, Andries Van Dam
参考读物推荐