在controller层,为了记录接口的调用日志,使用aop切面在方法执行之前有个insert操作,方法执行之后有个update操作,然后接口方法里面没有新增和修改数据库记录的操作,但是运维却监控到长事务的告警,后面本地debug发现是因为切面里的事务传播到接口方法里导致的,spring默认的传播机制是required,所以导致select也在事务里面,这个方法执行时间很长,所以导致select引发长事务告警,改进的方法是将insert和update操作用线程去执行。
记录AOP中切面类的事务传播性引发的一个小问题
最新推荐文章于 2023-05-29 23:26:23 发布