微服务实战(Dubbox+Spring Boot+Docker)
内容介绍
在这个凡事皆互联的时代,越来越多的人和物成为互联网上的节点,不断扩充着互联网这张大网的边界。节点即价值,更多的节点意味着更大的价值。那么如何去承载更多的节点就成为IT从业人士首要解决的问题。本书围绕秒杀抢购应用场景,对当下流行的Dubbox+Spring Boot+Docker微服务架构解决方案进行讲解。主要内容包括微服务架构介绍、Dubbox原理及运用、使用Spring Boot实现微服务、使用ActiveMQ+Redis承载高并发流量、使用ActiveMQ实现分布式事务、分布式下的第三方接入等。 本书以项目为驱动,引领读者对相关技术进行实践性学习。同时为了提升读者对相关技术的实际运用能力,本书将实际开发经验注入到整个项目开发周期中,使用目前较为流行的Dubbox+Spring Boot+Docker微服务架构实现“双11”抢购项目。 为保证*学习效果,本书配以完善的学习资料和支持服务,包括视频教程、案例素材下载、学习交流社区、讨论组等终身学习内容,为开发者带来全方位的学习体验。
目录
- 前言
- 第1章 架构设计 1
- 任务1 了解秒杀抢购业务场景 2
- 1.1.1 秒杀抢购业务场景介绍 2
- 1.1.2 秒杀抢购业务需求分析 3
- 任务2 架构设计 3
- 1.2.1 业务架构设计 3
- 1.2.2 应用架构设计 4
- 1.2.3 技术架构设计 4
- 1.2.4 部署架构设计 4
- 本章总结 6
- 本章练习 6
- 第2章 微服务架构 7
- 任务1 了解软件行业分类并掌握软件架构分类 8
- 2.1.1 软件行业分类 8
- 2.1.2 软件架构分类 8
- 任务2 掌握微服务架构的相关概念 11
- 2.2.1 Provider和Consumer 12
- 2.2.2 RPC和RESTful 12
- 2.2.3 分布式 13
- 2.2.4 集群 13
- 任务3 熟悉常见微服务架构并掌握微服务架构设计原则 13
- 2.3.1 常见微服务架构 13
- 2.3.2 微服务架构设计原则 14
- 2.3.3 微服务架构解决方案 14
- 本章总结 14
- 本章练习 14
- 第3章 Docker环境搭建 15
- 任务1 了解Docker相关概念 16
- 3.1.1 Docker和虚拟机 16
- 3.1.2 Docker Container 17
- 3.1.3 Docker Image 18
- 3.1.4 Docker Registry 18
- 3.1.5 Docker运行原理 19
- 3.1.6 Docker容器IP和端口映射 19
- 3.1.7 Docker集群 20
- 任务2 掌握Docker安装步骤 20
- 任务3 掌握Docker常用命令 21
- 3.3.1 Docker镜像操作命令 21
- 3.3.2 Docker容器操作命令 23
- 任务4 了解Docker可视化 27
- 任务5 使用Docker搭建项目环境 27
- 3.5.1 环境要求 28
- 3.5.2 搭建步骤 28
- 3.5.3 相关配置和检查 29
- 3.5.4 测试服务 33
- 3.5.5 生成镜像 34
- 3.5.6 发布服务 34
- 本章总结 36
- 本章练习 36
- 第4章 Spring Boot初体验 37
- 任务1 掌握Spring Boot的定义和作用 38
- 4.1.1 定义 38
- 4.1.2 作用 38
- 任务2 掌握Spring Boot项目环境搭建的步骤 39
- 4.2.1 环境要求 39
- 4.2.2 环境搭建 39
- 4.2.3 核心组件 41
- 任务3 整合MyBatis和Redis 43
- 4.3.1 整合MyBatis 43
- 4.3.2 整合Redis 46
- 任务4 自定义Spring Boot的自动配置 48
- 本章总结 51
- 本章练习 51
- 第5章 使用Dubbox+Spring Boot搭建微服务架构 52
- 任务1 了解Dubbox的概念和运行环境 53
- 5.1.1 Dubbox介绍 53
- 5.1.2 依赖环境介绍 53
- 任务2 掌握Dubbox的运行原理 54
- 任务3 掌握Dubbox的搭建步骤 55
- 任务4 使用Dubbox实现提供者和消费者 58
- 5.4.1 创建通用接口项目 58
- 5.4.2 Dubbox实现提供者 59
- 5.4.3 Dubbox实现消费者 61
- 任务5 搭建“双11”抢购项目微服务架构 64
- 本章总结 64
- 本章练习 64
- 第6章 基于Redis+ActiveMQ实现高并发访问 65
- 任务1 初识分布式锁并使用Redis实现分布式锁 66
- 6.1.1 分布式锁的概念 66
- 6.1.2 使用Redis实现分布式锁 66
- 任务2 初识消息中间件 68
- 6.2.1 消息中间件概念 68
- 6.2.2 消息中间件作用 68
- 6.2.3 常见消息中间件 70
- 任务3 掌握消息中间件ActiveMQ的使用 70
- 6.3.1 安装与配置 70
- 6.3.2 使用Spring Boot整合ActiveMQ 71
- 任务4 在“双11”抢购项目中应用消息队列 75
- 6.4.1 缓存抢购请求 76
- 6.4.2 控制库存事务 76
- 本章总结 77
- 本章练习 77
- 第7章 分布式下的第三方接入 78
- 任务1 实现分布式下的微信登录功能 79
- 7.1.1 接入背景介绍 79
- 7.1.2 准备工作 79
- 7.1.3 授权流程说明 80
- 7.1.4 实现步骤及参数解析 80
- 7.1.5 编码实现 83
- 7.1.6 注意事项 85
- 任务2 实现分布式下的微信支付功能 87
- 7.2.1 微信支付功能介绍 87
- 7.2.2 微信支付申请流程 87
- 7.2.3 微信支付类型 87
- 7.2.4 微信扫码支付 88
- 7.2.5 相关参数获取 89
- 7.2.6 微信支付安全规范 90
- 7.2.7 微信扫码支付开发步骤 90
- 7.2.8 微信扫码支付前端设计 95
- 任务3 实现分布式下的支付宝支付功能 97
- 7.3.1 接入背景 97
- 7.3.2 开发步骤 97
- 本章总结 109
- 本章练习 109
- 第8章 高并发测试 110
- 任务1 了解压力测试相关概念 111
- 8.1.1 高并发压力测试 111
- 8.1.2 常见压力测试工具 111
- 任务2 使用JMeter进行高并发测试 112
- 8.2.1 下载并安装JMeter 112
- 8.2.2 使用JMeter进行“双11”抢购项目测试 113
- 任务3 使用JMeter生成测试报告 119
- 8.3.1 生成测试报告 119
- 8.3.2 分析测试报告 120
- 本章总结 123
- 本章练习 123