我个人理解的分布式事务是:多个数据库、数据库和JMS 的一致性控制。
例如银行卡消费场景:A消费了200元,同时扣减了A的账户-200&A收到银行发送消费扣减的短信通知(或者另一个DB写入用户A的交易记录)。如果A消费了200元但是消费失败,却又收到了消费短信通知,那么很容易让A用户产生银行卡被盗刷的想法;若果用户A消费了200,账户立马扣减了,但是交易记录写入失败,用户A的对账就会出现问题。
所以分布式事务在一些一致性要求较高的金融场景,是很有价值的。那再说一个不需要分布式事务的场景。
例如:A消费了200元,同时扣减了A的账户-200&同时新增交易表中用户的交易记录(同一个DB)。由于用户A账户扣减和交易表均在同一个DB 同一个数据源,可以通过jdbc的事务直接实现事务控制。
网友评论