复杂性:分布式事务要求事务的参与方提供事务的存储方式,并且需要在理解原理的基础上进行配置,比如配置当前参与者事务的存储位置等。这种配置过程相对复杂,可能会增加开发和维护的难度。
性能损耗:事务管理操作完全依赖于业务系统的AOP逻辑,这可能会给业务系统造成一定的性能损耗。特别是当系统宕机时,会中断事务管理,虽然业务重启能恢复,但会延长事务数据流转到最终态的时间。
可用性下降:只有在参与分布式事务的各个数据库实例都能够正常工作的前提下,分布式事务才能够顺利完成。只要有一个实例工作不正常,整个事务就不能完成。这样,系统的可用性就相当于参加分布式事务的各实例的可用性之积,实例越多,可用性下降越明显。
响应时间增加:从性能和可伸缩性角度看,分布式事务的总持续时间通常是各实例操作时间之和,因为一个事务中的各个操作通常是顺序执行的。此外,提交时节点间的网络通信往返过程也为毫秒级别,对事务响应时间的影响不可忽视。
并发冲突:由于事务持续时间延长,事务对相关资源的锁定时间也相应增加,从而可能严重增加并发冲突,影响到系统吞吐率和可伸缩性。