MyCat - 架构剖析 - 核心技术之分布式事务的支持 | 学习笔记

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS AI 助手,专业版
简介: 快速学习 MyCat - 架构剖析 - 核心技术之分布式事务的支持

开发者学堂课程【全面讲解开源数据库中间件MyCat使用及原理(三):MyCat - 架构剖析 - 核心技术之分布式事务的支持】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/757/detail/13301


MyCat - 架构剖析 - 核心技术之分布式事务的支持

内容介绍

一、 MyCat 分布式事务实现

二、 Mycat SQL 路由实现

三、 Mycat 跨库 JOIN

四、 Mycat 数据汇聚与排序

 

一、 MyCat 分布式事务实现

在这一章节主要讲解在 Mycat 当中如何支持分布式事务,不讲解分布式事务的解决方案,如两阶段提交、分阶段提交事务补偿以及基于 MQ 来实现事务的最终一致性。

Mycat 在 1.6 版本以后已经支持 XA 分布事务类型,具体使用流程如下:

1.在应用层需要设置事物不能自动提交(开启事务的手动提交)

set autommit=0

2.在 SQL 中设置 XA 为开始状态(开启一个基于 XA 的分布式事务类型)

set xa=on

3.执行 SQL

(1)insert into user(id,name,sex)values(1,‘Tom’,‘1’),(2,‘rose’,‘2’),(3,‘leo’,‘1’)(4,‘lee’,‘1’)

4.对事务进行提交或回滚

(1)commit/rollback

image.png

这幅流程图描述了应用程序操作 Mycat,Mycat 最终操作底层的 MySQL 的流程。

在应用程序中要执行一个比较复杂的操作,涉及到事务的话,首先要设置提交方式为手动提交;其次设置image.png标识为二;标识已经开启了命令为XA的事务管理器,XA事务管理器需要通知底层的 MySQL 要进行的一些事务的操作,然后再进行一个预操作。

预操作指的是要插入对应的数据,插入数据是要到各个节点中去插入数据,如果有任何一个节点在执行 insert 语句返回的结果是失败,那么整个事物都要进行回滚(rollback),在分布式事务当中,这个事物叫群居事物;每一个 MySQL 事务是分支事务,在分支事务当中有任何一个事务在执行中失败了,那么整个群居事务都需要回滚(rollback),即其他的节点也需要回滚(rollback),以保证事物的一致性。

假如在执行 insert 语句时,三个 MySQL 都执行成功了,那么整个事务都可以进行提交(commit)

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
存储 缓存 安全
某鱼电商接口架构深度剖析:从稳定性到高性能的技术密码
某鱼电商接口架构揭秘:分层解耦、安全加固、性能优化三维设计,实现200ms内响应、故障率低于0.1%。详解三层架构、多引擎存储、异步发布、WebSocket通信与全链路防护,助力开发者突破电商接口“三难”困境。
|
5月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
1046 23
|
5月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
531 2
|
5月前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)
670 0
|
5月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
439 3
|
8月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
911 0

热门文章

最新文章