一.MybatisPlus
1.MybatisPlus快速入门
2.MybatisPlus常见注解![]()
3.MybatisPlus条件构造器
4.MybatisPlus自定义sql
mybatisplus对于条件复杂sql语句很方便,但是并符合某些企业开发规范。所以自定义sql.
即不再业务层编写sql保证企业开发规范,同时也享受到了mybatisplus的便捷。
5.MybatisPlus的IService接口使用方法
二.服务治理
微服务之间不同服务间的调用,消费者通过RestTemplate类向提供者发起http请求得到http响应。会携带url路径里面会写死端口地址,但是微服务会多实例化部署,就会有多个不同实例。就会出现问问题,消费者不知道该向哪一个路径发请求,也不知道该路径是否宕机,不知道服务变更,所以要服务治理。所以就引入注册中心。
1.注册中心原理
2.nacos注册中心的服务注册与服务发现
例:
3.OpenFeign快速入门
OpenFeign是一个声明式的http客户端,是springCloud在Eureka公司开源的Fegin基础上和改造而来的,
起作用是基于SringMVC的常见注解,帮我们优雅实现http请求的发送。
三.网关
1.什么是网关
2.网关路由快速入门
网关路由对应的java类型是RouteDefinfition,其中常见属性有:
id: 路由唯一标识
uri: 路由目标地址
predicates: 路由断言,判断请求是否符合当前路由
filters:路由过滤器,对请求或响应做特殊处理
3.网关登录校验
(1).思路分析
(2).自定义过滤器
(3)网关到微服务传递用户信息
(4)微服务之间调用传递信息
四.Nacos配置管理
1.配置共享
2.配置热更新
五.微服务保护与分布式事务
1.雪崩问题
微服务调用链路中的某个服务故障。引起整个链路中的所有微服务都不可用,这就是雪崩。
2.雪崩问题解决
3.Sentinel是阿里巴巴开源的一款微服务流量控制组件。
4.Sentinel用法
5.分布式事务
(1).分布式事务解决思路
(2).部署Seata TC服务
准备数据库
准备配置文件
Docker部署
(3).微服务集成Seata
2.3.2引进共享配置文件
在bootstrap.yaml里配置共享配置文件(引入文件名)**
(4).XA模式
4.1实现XA模式
(5).AT模式
5.1AT模式实现
六.MQ课程介绍**
1.同步异步优缺点
2.MQ技术选型
3.RabbitMQ
4.RabbitMQ数据隔离
通常根据不同项目或业务创建独立的用户,给用户创建独立虚拟主机,实现数据隔离效果。
5.RabbitMQ快速入门
6.java客户端-WorkQueue
![]()
7.交换机
7.1 Fanout交换机
7.2Direct交换机
7.3Topic交换机
7.4基于Bean声明队列交换机
7.5基于注解声明队列交换机
7.6消息转换器
8.发送者可靠性
8.1发送者重连
8.2发送者确认机制
9.MQ可靠性-数据持久化
MQ可靠性-lazyQueue
数据持久化消息.队列.交换机.持久化,就不会担心因为mq宕机导致数据丢失,也不会因为消息堆积pageout导致阻塞。但是数据持久化后不仅要保存在内存还要在磁盘中写一份,这样每条消息处理耗时增加导致整体并发能力下降,所以引入lazyQueue它不仅解决了持久化机制还解决了并发性能问题。
10.消费者可靠性
10.1消费者可靠性-消费者确认机制
10.2消费者可靠性-消费者失败重试机制
10.3消费者可靠性-业务幂等性
之前保证消费者可靠性采用消费者确认机制和消费者重试机制,这种机制很可能会出现消费者同一个消息重复处理的可能性。比如消费者处理消息成功业务也处理成功,这时候spring会帮我们返回ACK来确认消息处理完成,但是如果此时出现网络故障,导致消费者跟mq之间连接断开,那么这个ACK显然是没有成功发出去的,此时MQ发现这个连接断开,他认为消费者宕机了,一旦网络恢复,它势必会重新投递消息给消费者,就会出现重复消费,在某些场景下重复消费会出现问题(即没有收到ACK,再次发送)。所以我们保证消息可靠性的同时,还要想办法解决消息重复消费的问题,就需要用到业务的幂等性了。
11.兜底方案-延迟消息
11.2延迟消息-延迟消息插件