视频课程观看网址:Spring Cloud Alibaba微服务开发从入门到实操-121集经典视频课程-孙卫琴主讲
课程源代码下载网址:Spring Cloud Alibaba微服务开发从入门到实操-范例源代码
课程PPT讲义下载网址:配套PPT讲义-供教学和自学用
本课程的配套参考书籍是孙卫琴老师创作的《Spring Cloud Alibaba微服务开发零基础入门到实操》,书的详细信息参见:《Spring Cloud Alibaba微服务开发零基础入门到实操》技术支持 (javathinker.net)
本课程循序渐进,详细介绍了各个组件的用法,并演示了实例的开发和运行步骤。无论您是小白,还是微服务开发程序员,都能从本套课程中受益匪浅。
本课程的大纲如下:
引言
第1章 微服务简介
1.1 微服务的概念与特征
1.1.1 微服务按照业务划分
1.1.2 微服务运行在独立的进程中
1.1.3 微服务采用HTTP协议通信
1.1.4 微服务采用统一的管理框架
1.2 Spring Cloud框架概述
1.3 Spring Cloud Alibaba框架概述
1.4 各种软件的版本匹配
1.5 准备微服务的开发和运行环境
1.5.1 安装Intellij IDEA
1.5.2 为IDEA配置Maven
1.5.3 安装和启动Nacos服务器
1.5.4 访问Nacos服务器的管理平台
1.5.5 查看Nacos服务器的日志
1.6 云原生的概念
第2章 第一个范例:helloapp项目
2.1 提供者和消费者的通信以及实现原理
2.2 在IDEA中创建helloapp项目
2.3 添加hello-provider模块
2.3.1 在IDEA中创建hello-provider模块
2.3.2 在pom.xml文件中添加Spring Cloud Alibaba依赖
2.3.3 创建控制器类HelloProviderController
2.3.4 在application.properties文件中配置微服
2.3.5 启动hello-provider模块
2.4 添加hello-consumer模块
2.4.1 在IDEA中创建hello-consumer模块
2.4.2 在启动类中加入@EnableFeignClients注解
2.4.3 创建HelloFeignService接口
2.4.4 创建控制器类HelloConsumerController
2.4.5 在application.properties文件中配置微服务
2.4.6 启动和访问hello-consumer模块
2.4.7 HelloFeignService接口的默认方法
2.5 启动微服务的多个实例
2.6 LoadBalancer负载均衡器
2.7 通过RestTemplate类访问微服务
2.7.1 使用LoadBalancerClient接口
2.7.2 使用@LoadBalanced注解
第3章 微服务的注册与发现
3.1 Nacos Discovery组件的配置属性
3.1.1 禁止注册微服务
3.1.2 Nacos Discovery组件的客户端缓存
3.1.3 微服务的分组和命名空间
3.2 微服务的健康检测
3.2.1 微服务的临时实例
3.2.2 微服务的永久实例
3.3 访问DiscoveryClient接口
3.4 通过Actuator监控Nacos Discovery的端点
3.6 Nacos Discovery组件对微服务列表的监控
第4章 Nacos配置中心
4.1 在Nacos服务器上创建配置属性
4.2 在微服务中读取配置属性
4.2.1 创建bootstrap.properties配置文件
4.2.2 Nacos Config组件的配置属性
4.2.3 通过Environment对象读取配置属性
4.2.4 通过@Value注解读取配置属性
4.2.5 通过@ConfigurationProperties注解读取配置属性
4.3 配置单元的Data ID、分组和命名空间
4.4 配置属性的动态更新
4.5 不同环境下配置属性的切换
4.6 扩展的配置单元
4.7 监控Nacos Config组件的端点(EndPoint)
4.8 设置YAML格式的配置属性
4.9 配置属性的持久化
4.10 配置属性的回滚
第5章 Nacos集群
5.1 Nacos集群的Raft算法
5.1.1 节点之间数据的同步
5.1.2 节点的选举机制
5.2 搭建Nacos集群
5.2.1 配置Nacos节点
5.2.2 启动Nacos节点
5.2.3 避免各个Nacos节点的端口冲突
5.2.4 Nacos集群的选举
5.2.5 微服务访问Nacos集群
5.2.6 Nacos集群的同步
5.3 Nacos集群的AP和CP运行模式
5.4 使用Nginx反向代理
5.5 通过Keepalived建立Nginx集群
第6章 远程调用组件:OpenFeign
6.1 优化设定所访问的微服务的名字
6.2 优化设定映射URL的根路径
6.3 输出详细日志
6.4 请求和响应数据的压缩
6.5 超时配置
6.6 异常处理
6.6.1 把OpenFeign与Sentinel整合
6.6.2 创建回调类
6.6.3 创建回调类和工厂类
6.7 传递对象参数
6.7.1 传递简单对象
6.7.2 传递复杂对象
第7章 远程调用框架:Dubbo
7.1 比较Dubbo和OpenFeign
7.2 创建采用Dubbo框架的范例
7.2.1 创建hello-provider提供者模块
7.2.2 创建hello-consumer消费者模块
7.2.3 消费者远程访问提供者
7.3 超时和重试次数设置
7.4 异常处理
7.5 传递对象参数
7.6 负载均衡
7.7 Dubbo与Sentinel整合
7.8 提供者回调消费者
7.9 消费者异步调用服务方法
第8章 流量控制组件:Sentinel
8.1 微服务容错的基本原理
8.1.1 限流
8.1.2 隔离
8.1.3 熔断和降级
8.2 微服务与Sentinel整合
8.2.1 hello-consumer模块与Sentinel整合
8.2.2 安装Sentinel控制台
8.2.3 在Sentinel控制台查看微服务的流量
8.3 流控(流量控制)规则
8.3.1 流控模式
8.3.2 流控效果
8.4 熔断规则
8.4.1 慢调用比例
8.4.2 异常比例
8.4.3 异常数
8.5 系统规则
8.6 授权规则
8.7 @SentinelResource注解
8.7.1 热点规则
8.7.2 对请求被拒绝的处理
8.7.3 对异常的处理
8.8 自定义对BlockException的处理方式
8.9 集群流控
8.9.1 集群流控的原理
8.9.2 Token Server的部署模式
8.9.3 配置集群流控
8.10 Sentinel规则的持久化
8.10.1 流控规则的持久化
8.10.2 熔断规则的持久化
8.10.3 系统规则的持久化
第9章 网关服务:GateWay
9.1 Spring Cloud GateWay简介
9.2 创建网关服务模块
9.3 与Nacos整合
9.4 断言(Predicate)
9.4.1 内置的断言工厂
9.4.2 自定义断言工厂
9.5 过滤器(Filter)
9.5.1 局部内置过滤器
9.5.2 默认过滤器
9.5.3 全局内置过滤器
9.5.4 自定义局部过滤器
9.5.5 自定义全局过滤器
9.5.6 使用SLF4J日志工具
9.6 与Sentinel整合
9.6.1 针对路由限流
9.6.2 对自定义的API入口限流
9.6.3 同时对路由和API入口限流
9.7 跨域配置
9.8 超时配置
9.9 通过Actuator监控网关
9.10 网关集群
第10章 消息驱动框架:Stream
10.1 消息中间件简介
10.1.1 消息中间件的运用场景
10.1.2 消息中间件的缺点
10.1.3 比较各种消息中间件产品
10.2 RocketMQ简介
10.2.1 RocketMQ涉及的基本概念
10.2.2 RocketMQ的消息收发模型
10.2.3 安装和启动RocketMQ
10.2.4 安装和启动RocketMQ的控制台
10.3 搭建RocketMQ的集群
10.3.1 搭建NameServer集群
10.3.2 搭建BrokerServer集群概述
10.3.3 多Master模式
10.3.4 多Master多Slave,异步复制模式
10.3.5 多Master多Slave,同步双写模式
10.4 Spring Cloud Stream简介
10.5 在微服务中收发消息
10.5.1 创建消息生产者
10.5.2 创建消息消费者
10.5.3 运行消息生产者和消费者
10.5.4 收发Message类型的消息
10.6 通过StreamBridge发送消息
10.6.1 StreamBridge的用法
10.6.2 用ChannelInterceptor拦截消息
10.7 发送HTTP请求正文
10.8 通过Function函数式接口收发消息
10.9 响应式收发消息
10.10 多输入通道和输出通道
10.11 批量消费消息
10.12 批量生产消息
10.13 处理错误
10.13.1 清除失败消息
10.13.2 把失败消息发送到DLQ队列
10.13.3 失败消息的重新尝试消费
10.14 消费者分组和分区
10.15 消息正文的类型转换
10.16 通过Actuator监控Stream
第11章 分布式链路追踪:SkyWalking
11.1 SkyWalking简介
11.2 比较各个链路追踪软件
11.3 安装和运行SkyWalking
11.4 在微服务中安置探针Agent
11.4.1 查看拓朴图
11.4.2 追踪链路
11.4.3 服务、实例和端点维度
11.4.4 性能分析
11.5 采集日志
11.6 自定义链路追踪
11.7 忽略端点
11.8 告警
11.8.1 编写满足告警规则的方法
11.8.2 创建处理告警的网络钩子
11.8.3 测试告警
11.9 整合Elasticsearch数据库
11.10 整合MySQL数据库
11.11 通过Nacos建立SkyWalking集群
第12章 分布式事务框架:Seata
12.1 分布式事务概述
12.2 Seata简介
12.3 Seata的事务模式
12.3.1 AT 模式
12.3.2 TCC 模式
12.3.3 Saga 模式
12.3.4 XA 模式
12.4 安装和运行Seata Server
12.5 创建AT事务模式下的范例
12.5.1 创建Seata Server的MySQL存储源
12.5.2 处理分布式事务的微服务的架构
12.5.3 创建order-service微服务
12.5.4 声明全局事务和分支事务
12.5.5 演示全局事务的提交和撤销
12.6 整合Nacos建立Seata Server集群
12.6.1 在MySQL中创建seata数据库和表
12.6.2 在Nacos配置中心配置Seata Server
12.6.3 在Seata Server的配置文件中配置Nacos
12.6.4 在微服务中配置Seata
12.6.5 运行和访问Seata Server 集群
12.7 事务组与Seata Server集群的映射
第13章 分库分表中间件:ShardingSphere
13.1 分库分表概述
13.2 ShardingSphere简介
13.2.1 Sharding-JDBC简介
13.2.1 Sharding-Proxy简介
13.3 ShardingSphere核心概念
13.3.1 和表相关的概念
13.3.2 和分片相关的概念
13.4 ShardingSphere的工作流程
13.5 ShardingSphere的SQL规范
13.6 运用Sharding-JDBC的范例
13.6.1 加入Sharding-JDBC等的依赖
13.6.2 创建拆分后的订单表
13.6.3 配置Sharding-JDBC 和MyBatis
13.6.4 创建Order实体类
13.6.5 创建OrderDao数据访问接口
13.6.6 创建OrderService服务类
13.6.7 创建OrderController控制器类
13.6.8 运行范例,演示SQL路由
13.6.9 把订单表拆分到两个数据库中
13.6.10 配置绑定表
13.6.11 配置广播表
13.6.12 主从数据库和读写分离
13.7 使用Sharding-Proxy
13.7.1 安装和配置Sharding-Proxy
13.7.2 在微服务中访问Sharding-Proxy
13.7.3 配置读写分离
13.7.4 配置数据加密
13.7.5 配置影子数据源
第14章 分布式缓存数据库:Redis
14.1 Redis简介
14.2 安装和启动Redis
14.3 在微服务中访问Redis
14.4 Redis数据类型
14.4.1 读写list类型数据
14.4.2 读写set类型数据
14.4.3 读写zset类型数据
14.4.4 读写hash类型数据
14.4.5 序列化Java对象
14.5 Redis集群
14.5.1 主从模式
14.5.2 哨兵模式
14.5.3 集群模式
14.5.4 搭建Redis集群
14.6 在微服务中访问Redis集群
第15章 分布式任务调度框架:XXL-JOB
15.1 安装和运行XXL-JOB
15.1.1 创建XXL-JOB的数据库
15.1.2 配置XXL-JOB调度中心
15.1.3 运行和访问XXL-JOB调度中心
15.1.4 配置XXL-JOB执行器
15.1.5 运行XXL-JOB执行器
15.2 创建GLUE任务
15.3 创建BEAN模式的任务
15.3.1 任务的初始化和销毁
15.3.2 带参数的任务
15.4 执行器集群和分片执行的BEAN模式任务
15.5 搭建调度中心的集群
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎