
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。
因此可以通过rollbackFor来配置需要回滚的异常,与之对应的还有noRollbackFor属性,配置不需要回滚的异常,这两个属性配置的是Class对象,另外还有rollbackForClassName和noRollbackForClassName,通过品类全路径名配置。Spring事务使用分为编程式事务和声明式事务,编程式事务像MySQL的事务一样,显式的通过Start和commit开始和提
在我看来,分布式事务分为跨库事务和跨服务事务两种。事务有ACID四大特性,保证了数据的强一致性。但是分布式系统不太一样,首先说一下CAP理论,这是分布式领域的公认定理。在使用2PC提交时,AP接收到请求后,访问TM发起全局事务,进入阶段一提交事务阶段,向所有分支事务发送事务内容,在分支事务执行完时候操作后返回是否执行成功,TM接收到所有的分支事务都执行成功的信息后,就会进入阶段二执行事务提交阶段,
方案二有可能导致数据不一致问题,写线程A先删除缓存,然后读线程B进来发现没有缓存,就会去数据库读取缓存,把旧数据放到缓存,然后A再更新数据库数据,数据就不一致了,而且高并发下这种情况很容易出现。但是极端情况下,还是可能会导致数据不一致,就是读线程A读缓存,发现没有缓存,然后再去数据库读数据,但是还没有写入缓存,这时写线程B进来把数据更新了,然后删除缓存,然后A把读到的旧数据写入到了缓存,导致数据不
另外就是超时问题的处理,可以设置一个足够长的值,来保证一定会完成,但是如果太长,宕机时又会导致其他服务都卡死在这里,这个时候接需要使用看门狗机制,在主线程执行业务逻辑的同时,让一个子线程不断给锁续期,直到主线程执行完业务逻辑,然后才会释放锁,redis对此有专门的Redisson来处理,使用起来很简单。针对释放其他的服务的分布式锁的问题,可以设置一个识别是自己的值,可以是一个uuid,在删除前判断
2、善用EXPLAIN分析,在定位到一个慢SQL后,使用EXPLAIN查看SQL的执行计划,重点关注type、possible_keys和key、rows及Extra列。”,只获取需要的字段,减少网络传输和内存消耗,并且如果能走覆盖索引不用回表的话性能也会有很大提高。关于MySQL的性能优化,可以从SQL和索引优化、设计优化、配置优化、硬件优化等维度来分析。首先是SQL和索引优化,这部分优化的成本
2、善用EXPLAIN分析,在定位到一个慢SQL后,使用EXPLAIN查看SQL的执行计划,重点关注type、possible_keys和key、rows及Extra列。”,只获取需要的字段,减少网络传输和内存消耗,并且如果能走覆盖索引不用回表的话性能也会有很大提高。关于MySQL的性能优化,可以从SQL和索引优化、设计优化、配置优化、硬件优化等维度来分析。首先是SQL和索引优化,这部分优化的成本
2、善用EXPLAIN分析,在定位到一个慢SQL后,使用EXPLAIN查看SQL的执行计划,重点关注type、possible_keys和key、rows及Extra列。”,只获取需要的字段,减少网络传输和内存消耗,并且如果能走覆盖索引不用回表的话性能也会有很大提高。关于MySQL的性能优化,可以从SQL和索引优化、设计优化、配置优化、硬件优化等维度来分析。首先是SQL和索引优化,这部分优化的成本







