一、多数据源事务控制 在多数据源下,由于涉及到数据库的多个读写。一旦发生异常就可能会导致数据不一致的情况, 在这种情况希望使用事务 进行回退。 但是Spring的声明式事务在一次请求线程中只能使用一个数据源进行控制 但是对于多源数据库: 1.单一事务管理器(TransactionManager)无法切换数据源,需要配置多个TransactionManager。 2.@Transactionnal是无法管理多个数据源的。 如果想真正实现多源数据库事务控制,肯定是需要分布式事务。 这里指的是多源数据库事务控制的一种变通方式。 1. 只使用主库TransactionManger 使用主库事务管理器,也就是说事务中产生异常时,只能回滚主库数据。但是因为数据操作顺序是先主后从,所以分一下三种情况:
2. 一个方法开启2个事务 spring编程式事务 : spring声明式事务: @Transactional