分布式中间件技术实战:Java版 PDF 超清版

  • 更新时间:
  • 4214人关注
  • 点击下载

分布式中间件技术实战:Java版》是一本关于分布式相关的电子书资源,介绍了关于分布式、中间件技术方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小79 MB,钟林森编写,目前豆瓣、亚马逊、当当、京东等综合评分为:8.4分,我们还提供了样章在线阅读,一起来看下具体内容。

分布式中间件技术(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
展开阅读

分布式相关资源

学习笔记

8小时8分钟前回答

Java编程redisson实现分布式锁代码示例

最近由于工作很忙,很长时间没有更新博客了,今天为大家带来一篇有关Redisson实现分布式锁的文章,好了,不多说了,直接进入主题。 1. 可重入锁(Reentrant Lock) Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。 public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.getLock("anyLock"); try{ // 1. 最常见的使用方法 //lock.lock(); // 2. 支持过期解锁功能,10秒钟以后自动解锁, 无需调用unlock方法手动解锁 //lock.lock(10, TimeUnit.SECONDS); // 3. 尝试加锁,最多等待3秒,上锁以后10秒自动解锁 boolean res = lock.tryLock(3, 10, TimeUnit.SECONDS); if(res){ //成功 // do your business } } catch……

2小时45分钟前回答

java语言描述Redis分布式锁的正确实现方式

分布式锁一般有三种实现方式:1.数据库乐观锁;2.基于Redis的分布式锁;3.基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。 可靠性 首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运……