微服务实战 Dubbox + Spring Boot + Docker pdf

图书网 2022年1月17日20:53:41
评论
1.1K

微服务实战 Dubbox + Spring Boot + Docker 作者:肖睿,吴刚山,黄兴

微服务实战 Dubbox + Spring Boot + Docker 出版社:人民邮电出版社

微服务实战 Dubbox + Spring Boot + Docker 内容简介

在这个凡事皆互联的时代,越来越多的人和物成为互联网上的节点,不断扩充着互联网这张大网的边界。节点即价值,更多的节点意味着更大的价值。那么如何去承载更多的节点就成为IT从业人士首要解决的问题。本书围绕秒杀抢购应用场景,对当下流行的Dubbox+Spring Boot+Docker微服务架构解决方案进行讲解。主要内容包括微服务架构介绍、Dubbox原理及运用、使用Spring Boot实现微服务、使用ActiveMQ+Redis承载高并发流量、使用ActiveMQ实现分布式事务、分布式下的第三方接入等。本书以项目为驱动,引领读者对相关技术进行实践性学习。同时为了提升读者对相关技术的实际运用能力,本书将实际开发经验注入到整个项目开发周期中,使用目前较为流行的Dubbox+Spring Boot+Docker微服务架构实现“双11”抢购项目。为保证最优学习效果,本书配以完善的学习资料和支持服务,包括视频教程、案例素材下载、学习交流社区、讨论组等终身学习内容,为开发者带来全方位的学习体验。

微服务实战 Dubbox + Spring Boot + Docker 目录

版权信息

内容提要

序言

前言

第1章 架构设计

任务1 了解秒杀抢购业务场景

1.1.1 秒杀抢购业务场景介绍

1.1.2 秒杀抢购业务需求分析

任务2 架构设计

1.2.1 业务架构设计

1.2.2 应用架构设计

1.2.3 技术架构设计

1.2.4 部署架构设计

本章总结

本章练习

第2章 微服务架构

任务1 了解软件行业分类并掌握软件架构分类

2.1.1 软件行业分类

2.1.2 软件架构分类

任务2 掌握微服务架构的相关概念

2.2.1 Provider和Consumer

2.2.2 RPC和RESTful

2.2.3 分布式

2.2.4 集群

任务3 熟悉常见微服务架构并掌握微服务架构设计原则

2.3.1 常见微服务架构

2.3.2 微服务架构设计原则

2.3.3 微服务架构解决方案

本章总结

本章练习

第3章 Docker环境搭建

任务1 了解Docker相关概念

3.1.1 Docker和虚拟机

3.1.2 Docker Container

3.1.3 Docker Image

3.1.4 Docker Registry

3.1.5 Docker运行原理

3.1.6 Docker容器IP和端口映射

3.1.7 Docker集群

任务2 掌握Docker安装步骤

任务3 掌握Docker常用命令

3.3.1 Docker镜像操作命令

3.3.2 Docker容器操作命令

任务4 了解Docker可视化

任务5 使用Docker搭建项目环境

3.5.1 环境要求

3.5.2 搭建步骤

3.5.3 相关配置和检查

3.5.4 测试服务

3.5.5 生成镜像

3.5.6 发布服务

本章总结

本章练习

第4章 Spring Boot初体验

任务1 掌握Spring Boot的定义和作用

4.1.1 定义

4.1.2 作用

任务2 掌握Spring Boot项目环境搭建的步骤

4.2.1 环境要求

4.2.2 环境搭建

4.2.3 核心组件

任务3 整合MyBatis和Redis

4.3.1 整合MyBatis

4.3.2 整合Redis

任务4 自定义Spring Boot的自动配置

本章总结

本章练习

第5章 使用Dubbox+Spring Boot搭建微服务架构

任务1 了解Dubbox的概念和运行环境

5.1.1 Dubbox介绍

5.1.2 依赖环境介绍

任务2 掌握Dubbox的运行原理

任务3 掌握Dubbox的搭建步骤

任务4 使用Dubbox实现提供者和消费者

5.4.1 创建通用接口项目

5.4.2 Dubbox实现提供者

5.4.3 Dubbox实现消费者

任务5 搭建“双11”抢购项目微服务架构

本章总结

本章练习

第6章 基于Redis+ActiveMQ实现高并发访问

任务1 初识分布式锁并使用Redis实现分布式锁

6.1.1 分布式锁的概念

6.1.2 使用Redis实现分布式锁

任务2 初识消息中间件

6.2.1 消息中间件概念

6.2.2 消息中间件作用

6.2.3 常见消息中间件

任务3 掌握消息中间件ActiveMQ的使用

6.3.1 安装与配置

6.3.2 使用Spring Boot整合ActiveMQ

任务4 在“双11”抢购项目中应用消息队列

6.4.1 缓存抢购请求

6.4.2 控制库存事务

本章总结

本章练习

第7章 分布式下的第三方接入

任务1 实现分布式下的微信登录功能

7.1.1 接入背景介绍

7.1.2 准备工作

7.1.3 授权流程说明

7.1.4 实现步骤及参数解析

7.1.5 编码实现

7.1.6 注意事项

任务2 实现分布式下的微信支付功能

7.2.1 微信支付功能介绍

7.2.2 微信支付申请流程

7.2.3 微信支付类型

7.2.4 微信扫码支付

7.2.5 相关参数获取

7.2.6 微信支付安全规范

7.2.7 微信扫码支付开发步骤

7.2.8 微信扫码支付前端设计

任务3 实现分布式下的支付宝支付功能

7.3.1 接入背景

7.3.2 开发步骤

本章总结

本章练习

第8章 高并发测试

任务1 了解压力测试相关概念

8.1.1 高并发压力测试

8.1.2 常见压力测试工具

任务2 使用JMeter进行高并发测试

8.2.1 下载并安装JMeter

8.2.2 使用JMeter进行“双11”抢购项目测试

任务3 使用JMeter生成测试报告

8.3.1 生成测试报告

8.3.2 分析测试报告

本章总结

本章练习

微服务实战 Dubbox + Spring Boot + Docker 精彩文摘

技能目标

☆了解“双11”抢购项目需求

☆掌握“双11”抢购项目业务架构设计

☆掌握“双11”抢购项目应用架构设计

☆掌握“双11”抢购项目技术架构设计

☆掌握“双11”抢购项目部署架构设计

本章任务

学习本章内容,需要完成以下两个工作任务。记录学习过程中遇到的问题,可以通过自己的努力或访问kgc.cn解决。

任务1:了解秒杀抢购业务场景

任务2:架构设计

近年来,互联网市场风起云涌。为了抢到更多的用户,各大商家各式各样的营销手段层出不穷。如小米的饥饿营销,淘宝的“双11”抢购,京东的618店庆等。贯穿本书的“双11”抢购项目就是基于真实抢购需求,提供的一整套关于抢购业务的解决方案。顾名思义,抢购就是用户可以在平台上与其他互联网用户一起进行某一类商品的竞争性购买的操作。图1.1所示为“双11”抢购项目的用户操作流程。

核心步骤如下:

(1)用户登录“双11”抢购项目首页。

(2)用户点击抢购商品。

(3)若库存不充足,抢购失败则直接给出提示;若库存充足,抢购成功则生成订单并锁定库存。

(4)用户在规定时间内成功支付订单则扣减商品,进行后续处理;用户在规定时间内未成功支付订单则释放库存,让其他用户可以抢购该商品。

我们仔细分析以上的抢购业务,发现其存在以下三个问题。

► 高并发

由于抢购需求大多为用户多、产品少,如小米手机的抢购,某一时刻可能有超过十万个用户同时在线抢购,因此在某一时刻的用户访问量十分庞大。

► 单用户多次操作

用户执行抢购操作时,害怕一次点击无法成功抢购到商品,经常性地连续多次点击抢购按钮,以增加自己抢到商品的概率。因此,系统在接收到用户请求后需要判断用户是否已抢购到商品。

► 需要保证抢购的顺序

既然是抢购,必须按照用户点击操作的顺序保证抢购用户的先来后到,即先到先得。

基于以上问题,我们需要提供针对每一个业务问题的解决方案。

“双11”抢购项目的业务比较简单,主业务即大量用户抢购少量商品。项目的业务架构图如图1.2所示。

根据以上对“双11”抢购项目的需求分析,我们可以将“双11”抢购项目的业务划分为如图1.3所示的四个子业务模块。

四个子业务模块包含的具体业务功能如下所示。

► 用户业务:用户登录、用户注销、用户权限验证、用户密码修改等。

► 商品业务:商品查询、商品库存判断、商品抢购等。

► 订单业务:生成订单、查询订单、取消订单、支付订单等。

► 支付业务:支付宝支付、微信支付、支付成功/失败处理等。

针对“双11”抢购项目存在的三个主要问题,提供如下解决方案。

► 高并发解决方案:为了解决“双11”抢购项目的高并发问题,满足高并发需求,我们采用消息队列来缓存消息,以降低服务器请求压力。

► 消息的幂等性解决方案:所谓消息的幂等性就是“必须保证一个用户的多次重复操作只被成功执行一次”。为了解决“双11”抢购项目用户多次操作的问题,我们采用Redis分布式锁及Redis保存机制来记录用户的操作状态。

► 抢购顺序解决方案:为了保证用户抢购操作的先后顺序,我们采用消息队列的消息排队机制来完成抢购消息的自动排队,以保证抢购的公平性。

“双11”抢购项目的系统架构图如图1.4所示。

在以上的解决方案中,我们看到很多新的名词。接下来的内容我们将根据不同的解决方案,有针对性地进行介绍。

图书网:微服务实战 Dubbox + Spring Boot + Docker pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

数学

吴军:你最喜欢的数字是什么?《数学之美》PDF

数学之美 作者:吴军 数学之美 出版:人民邮电出版社 数学之美 内容简介 你最喜欢的数字是什么?几年前,“数学之美”系列文章原刊载于谷歌黑板报,获得上百万次点击,得到读者高度评价。读者说,读了“数学之...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: