SpringCloud、SpringCloud Alibaba
前置知识:
核心新组件:
所用版本:
学习方法:
1.看理论:官网
2.看源码:github
一、微服务理论知识
二、关于SpringCloud各种组件的停更/升级/替换
主业务逻辑是:下订单+做支付
Spring全家桶可以实现以下内容:
2.1 服务注册与发现(做服务注册与发现)
Eureka:停更被动维护中
Consul:功能比Eureka好
Etcd:go语言用这个比较合适
Alibaba Nacos:
2.2 服务调用和负载均衡
Ribbon:
OpenFign:
LoadBalancer:被放在SpringCloudCommons里面,替代Ribbon
2.3 分布式事务(⭐)
Alibaba Seata:
LCN:
Hmily:
什么是事务?
什么是本地事务?
什么是分布式事务?
你们公司在解决分布式事务的时候有哪些方案?
请按照2PC、3PC、TCC、本地消息独立微服务、MQ保障的一致性和最大努力通知,这几个解决方式上、维度上请跟我说一下。
2.4 服务熔断和降级
Hystrix:现在不适用了,熔断降级的框架,现在停更了。
Spring Cloud Circuit Breaker: 现在的主流框架,接口和规范、list接口,实现类有Resilience4Java、Spring Retry
Alibaba Sentinel:哨兵,主流。
2.5 服务链路追踪
Spring Cloud Sleuth + Zipkin:(现在是半退休状态)Sleuth 进行数据的收集,Zipkin 进行数据图形化的展现
Micrometer Tracing:
2.6 服务网关
Zuul:(不使用了)
Gate Way:
2.7 分布式配置管理
Spring Cloud Config + Spring Cloud Bus:不推荐使用
Consul:
Alibaba Nacos:
三、微服务架构编码 Base 工程模块构建
约定 > 配置 > 编码
3.1 IDEA 新建Project 和 Maven 父工程
3.1.1 微服务 Cloud 整体聚合 Maven 父工程Project
- New Project
- 聚合总父工程名字
- 字符编码
- 注解生效激活
- java版本编译版本选17
- File Type 过滤
3.2 Mapper4一键生成
3.2.1 mybatis-genetator
网址:
mybatis 目前是写数据库增删改查、Dao层的默认标准
3.2.2 MyBtis 通用 Mapper4 官网
网址:https://github.com/abel533/Mapper
3.2.3 一键生成步骤
Controller ------》Service ------》Dao
直接生成entity+mapper接口+xml实现SQL
3.2 Rest 通用 Base 工程构建
微服务小口诀:
1、建 module
2、改 POM
3、写 YML
4、主启动
5、业务类