SpringCloudAlibabaStudyRoute
介绍
因Netfilix的相关项目进入维护模式,使用SpringCloudAlibaba相关组件
学习路线
- https://coding.imooc.com/class/358.html (springcloud alibaba 组件学习)
- https://coding.imooc.com/class/508.html (Springcloud alibaba组件进阶)
- https://class.imooc.com/sale/javaarchitect (Springcloud 以及 springcloud alibaba相关组件)
Nacos
- 介绍
- 服务发现和健康检测
- 动态配置服务
- 动态DNS服务
- 服务及其元数据管理
- 数据模型
- Namespace:代表不同的运行环境
- Group: 代表某一个类配置:比如中间件配置,数据库配置
- DateId: 某个项目中具体的配置文件
- 服务领域模型
- Namespace:
- Group:
- Service:
- Cluster
- Instance
- 服务注册流程
- 服务提供方
- 使用openApi发起服务注册
- 建立心跳,检测服务状态
- 服务消费者
- 查询服务提供方实例列表
- 每10秒拉去一次数据
- 检测到服务提供者异常基于UDP协议推送更新
- 服务提供方
Seata
- 分布式事务理论模型
- X/OPEN 分布式事务模型
- 二阶段提交
- 三阶段提交
- X/OPEN 分布式事务模型
- 分布式事务常见的解决方案
- TCC 补偿型方案
- 基于可靠性消息的最终一致性方案
- Rocketmq事务消息
- 最大努力通知型
- Seata介绍
- Seata 是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。
- Seata 四种事务模式
- AT模式
- TCC模式
- Saga模式
- XA模式
- 三种角色
- TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。
- TM (Transaction Manager) - 事务管理器:定义全局事务的范围,开始全局事务、提交或回滚全局事务
- RM ( Resource Manager ) - 资源管理器:管理分支事务处理的资源( Resource ),与 TC 交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。
- TC 为单独部署的 Server 服务端,TM 和 RM 为嵌入到应用中的 Client 客户端。
- 整体流程
- TM 请求 TC 开启一个全局事务。TC 会生成一个 XID 作为该全局事务的编号。
- RM 请求 TC 将本地事务注册为全局事务的分支事务,通过全局事务的 XID 进行关联。
- TM 请求 TC 告诉 XID 对应的全局事务是进行提交还是回滚。
- TC 驱动 RM 们将 XID 对应的自己的本地事务进行提交还是回滚。