XA事务 面试准备

简介: 【8月更文挑战第7天】

#
XA事务遵循了两阶段提交协议,我个人认为,两阶段协议是一种学术理论,而XA则是把两阶段提交协议具象化后得一个标准。它定义了协调者和参与者之间的接口。用专业的术语来说,就是定义了事务管理器(Transaction Manager)和资源管理器(Resource Manager)之间的接口。

在提交阶段,协调者会不断重试直到把 Commit 请求发送给协调者;协调者如果在提交阶段中途崩溃,也要确定是否需要提交或者回滚。那么你就应该可以理解,在重试成功之前,或者在协调者恢复过来重新提交或者回滚之前,数据是不一致的。所以我个人倾向 XA 不满足 ACID。但是相比其他的方案,它更加接近 ACID。

  • 如果公司使用了分库分表,是否允许跨库事务?
  • 如果允许跨库事务,那么是如何解决的?
  • 如果你使用了分库分表中间件,那么它支持哪些类型的事务
  • 在微服务层面,使用的是什么样的分布式事务方案?是TCC、SAGA还是AT?
  • 在使用分布式事务的时候,中间步骤出错了怎么办?

最好收集一些实际的案例,在面试的时候作为证据

面试微服务架构的时候就可能面到分布式事务,面试可能会问这两个问题?

  1. 在单体应用拆分为微服务架构之后,怎么解决分布式事务?
  2. 服务是共享一个数据库吗?不是的话,怎么解决分布式事务问题

在分库分表里也会有类似的问法。

  • 在单库拆分之后,怎么解决分布式事务问题
  • 当你开启一个事务的时候,分库分表中间件做了什么
  • 怎么在分库分表的事务里保证ACID

有些时候面试官不会直接问分布式事务,而是问你数据一致性的问题,其实基本上也是问的分布式事务。他可能这样问:“如果你的 DELETE 语句,经过分库分表之后要删除多张表的数据,那你怎么保证数据一致性?”
所以对于数据一致性的问题,你也要做好准备。其实面试翻车的一个主要原因就是你不熟悉各种异常情况的处理方案,所以在接下来各种方案里面,容错都是一个比较重要的部分。

目录
相关文章
|
缓存 关系型数据库 MySQL
【面试题精讲】MySQL-事务隔离-ACID
【面试题精讲】MySQL-事务隔离-ACID
|
4月前
|
负载均衡 NoSQL 算法
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
这篇文章是关于Java面试中Redis相关问题的笔记,包括Redis事务实现、集群方案、主从复制原理、CAP和BASE理论以及负载均衡算法和类型。
一天五道Java面试题----第十天(简述Redis事务实现--------->负载均衡算法、类型)
|
4月前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。
|
21天前
|
Java 关系型数据库 数据库
京东面试:聊聊Spring事务?Spring事务的10种失效场景?加入型传播和嵌套型传播有什么区别?
45岁老架构师尼恩分享了Spring事务的核心知识点,包括事务的两种管理方式(编程式和声明式)、@Transactional注解的五大属性(transactionManager、propagation、isolation、timeout、readOnly、rollbackFor)、事务的七种传播行为、事务隔离级别及其与数据库隔离级别的关系,以及Spring事务的10种失效场景。尼恩还强调了面试中如何给出高质量答案,推荐阅读《尼恩Java面试宝典PDF》以提升面试表现。更多技术资料可在公众号【技术自由圈】获取。
|
2月前
|
SQL 关系型数据库 MySQL
阿里面试:MYSQL 事务ACID,底层原理是什么? 具体是如何实现的?
尼恩,一位40岁的资深架构师,通过其丰富的经验和深厚的技術功底,为众多读者提供了宝贵的面试指导和技术分享。在他的读者交流群中,许多小伙伴获得了来自一线互联网企业的面试机会,并成功应对了诸如事务ACID特性实现、MVCC等相关面试题。尼恩特别整理了这些常见面试题的系统化解答,形成了《MVCC 学习圣经:一次穿透MYSQL MVCC》PDF文档,旨在帮助大家在面试中展示出扎实的技术功底,提高面试成功率。此外,他还编写了《尼恩Java面试宝典》等资料,涵盖了大量面试题和答案,帮助读者全面提升技术面试的表现。这些资料不仅内容详实,而且持续更新,是求职者备战技术面试的宝贵资源。
阿里面试:MYSQL 事务ACID,底层原理是什么? 具体是如何实现的?
|
2月前
|
Java 程序员 Spring
Spring事务的1道面试题
每次聊起Spring事务,好像很熟悉,又好像很陌生。本篇通过一道面试题和一些实践,来拆解几个Spring事务的常见坑点。
Spring事务的1道面试题
|
4月前
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
4月前
|
算法 关系型数据库 MySQL
一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)
这篇文章是关于MySQL的面试题总结,包括索引结构的优劣、索引设计原则、MySQL锁的类型、执行计划的解读以及事务的基本特性和隔离级别。
|
4月前
|
算法 Go 数据库
[go 面试] 并发与数据一致性:事务的保障
[go 面试] 并发与数据一致性:事务的保障
|
5月前
|
XML Java 关系型数据库
面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景
面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景
133 0