《分布式中间件技术实战:Java版》是由机械工业出版社出版的一本关于分布式方面的书籍,作者是钟林森,主要介绍了关于分布式、中间件技术方面的知识内容,目前在分布式类书籍综合评分为:8.1分。
书籍介绍
《分布式中间件技术(Java版)》从初学者的角度介绍了几种流行的分布式中间件,引导读者从零开始一步步学习Java企业应用开发。在讲解了必要的理论知识和应用场景后,书中给出了实际的项目案例,可以提高读者的开发水平和项目实战能力。
分布式中间件技术(Java版)共10章,共分3篇。第一部分《开发工具的准备》,介绍了分布式系统架构的相关知识点,包括其功能、作用和演进,进而引出分布式中间件的相关介绍。第二部分介绍了实际开发中广泛使用的几种Java中间件,包括缓存中间件Redis、消息中间件RabbitMQ、统一协调管理中间件ZooKeeper和综合中间件Redisson等。重点介绍了这些中间件的基本概念、典型应用场景以及相应的功能组件。第三个总结重点是对相关内容进行回顾和总结。值得一提的是,《分布式中间件技术实战(Java版)》在介绍几种中间件的理论知识时,也是以SpringBoot微服务框架为基础,整合相关中间件之间的依赖关系,结合作者的实际项目经验进行代码实战。
分布式中间件技术(Java版)特别适合对中间件没有实际经验的开发者。对于具有一定Java应用开发经验的工程师,通过阅读《分布式中间件技术(Java版)》,可以了解中间件在构建企业级应用过程中提供的思路和解决方案;IT培训机构的学生也可以通过分布式中间件技术实战(Java版)系统地学习中间件技术。
目录
- 第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