深入分析事物以及什么是分布式事物?
什么是事物? 事物是关系型数据库中,由一组sql组成的执行单元,该单元要么整体成功,要么整体失败。 事物的ACID特性 事物ACID特性,原子性,一致性,隔离性,持久性,这4个属性统称为ACID特性。 原子性:指事物包含的所有操作sql,要么整体成功,要么整体失败。 一致性:事物前的状态结果和事物后的状态的结果都是一致的。参考银行转账。 持久性:指一个事物一旦被提交了,那么数据就永久存储在磁盘中,即使系统故障了,数据也不会丢失。 如果事物没有进行隔离会出现三种严重的问题:脏读,不可重复读,幻读。 什么是脏读? 指一个事物处理的过程中读取了另一个未提交(回滚)的事物的数据。 什么是不可以重复读? 指多次查询却返回了不同的数值,这是由于查询间隔原因,被另一个事物修改并提交了。 什么是幻读? 指当事物A在读取某个范围内的记录时,B事物又在该范围内插入了新的记录,当A事物再次读取该范围内的记录时,就产生了幻读。 什么是分布式事物? 分布式事物,是指一个业务需要同时操作多个数据库的情况下,而且必须保持ACID的特性。一般应用于微服务的多服务处理。 在电商系统中,支付订单,就是一个分布式事物了 第一步:支付服务,修改支付订单状态。 第二步:订单服务,订单状态修改为已支付 第三步:库存服务,减库存 第四步:积分服务,为该用户送积分 以上4个步骤,在分布式系统中,是一个整体,也就是一个分布式事物。