欢迎光临散文网 会员登陆 & 注册

【Java高级】如何写出优雅可靠事务代码?基于Spring事务扩展

2022-12-09 15:12 作者:任何事人挺好的认同  | 我要投稿

励志当最强课代表的我来给大家总结总结👍👍👍

如何写出优雅可靠事务代码?基于Spring事务扩展


视频内容:

1️⃣异步线程✍️

2️⃣Spring事务失效的场景还有几点📄


视频内容:

1️⃣异步线程✍️

  1. 异步线程拿到了连接和主线程,它拿到了连接肯定不是同一个,所以只有当一个数据库同一个连接,你才能去做事务控制。这种异步线程的情况在 spring 里面的事务控制里面是不支持的。多线程的事物应该怎么去控制,大家可以下来去想一下。
  2. 由于各种历史原因,或者引入的成本太高,或者这个场景本身对一致性的要求并不是特别高,是尽量去保证做到一个一致,并没有去引入这种本地消息表、事务消息这种比较重的分布式事务实现
  3. 平时尽量要保证我们的事物尽量小,开启关闭事物,这个是有资源消耗成本的。另外就是数据库的连接池,它也是有限的,如果有大事务,你会一直持有连接不释放,对于整个线程池的吞吐量是有影响的。所以在写代码的时候要避免大事务,比如能批量的就尽量批量,不要用循环,也尽量不要在事务里面去做一些 RPC 这种比较耗时的操作。
  4. 
    00:42
    


2️⃣Spring事务失效的场景还有几点📄

  1. 非public修饰
  2. final修饰也会失效, 动态代理需要重写方法才能生效事务, final修饰则无法重写
  3. static修饰也会失效
  4. 吞了异常, catch住没有抛给spring
  5. 抛了错误的异常, catch住手动抛Exception则不会回滚, 因为spirng事务只会处理RuntimeException和Error


03:37




【Java高级】如何写出优雅可靠事务代码?基于Spring事务扩展的评论 (共 条)

分享到微博请遵守国家法律