1、长事务
如果事务耗时过长,只有等事务结束之后,DB连接才会释放,此类长时间占用DB连接的称为长事务。一旦外部有大量请求就会造成连接池爆满。这种情况会导致访问速度很快的请求被阻塞。查看jstack会发现很多速度很快的请求被阻塞。
改善方式:
- 减少慢查询
- 事务不应该包含任何RPC调用,HTTP调用,IO操作,减少事务粒度
- 次级服务消息队列不应该放在事务内,而且消息队列组件等需要设置超时时间
- 跨库、跨库类型如redis,不应该放同一个事务,避免交叉感染
1、长事务
如果事务耗时过长,只有等事务结束之后,DB连接才会释放,此类长时间占用DB连接的称为长事务。一旦外部有大量请求就会造成连接池爆满。这种情况会导致访问速度很快的请求被阻塞。查看jstack会发现很多速度很快的请求被阻塞。
改善方式: