<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
事件起因:專案使用了activiti工作流,系統是由老的spring mvc專案改造成的spring boot專案,資料庫連結池從dbcp切換到druid,新系統上線後,同事多次系統隔一段時間後資料查詢就很慢,基本出不來。
由此開始了線上bug排查之路。這個問題從一開始就模糊定位到資料庫層面的問題,因為只有和資料相關的操作會很慢,其他服務不受影響,並且在中午休息時沒有問題,在下午剛上班後不就出現。
首先第一反應是看紀錄檔:紀錄檔一切正常,並沒有任何異常資訊丟擲,然後將紀錄檔級別調整到debug,發現了一些問題,中午休息時,使用者沒有操作的情況下,紀錄檔一直在輸出jpa的連線資訊,最後定位是工作流的非同步執行器在輪詢,因為在spring boot環境下spring.activiti.async-executor-activate=true預設是true的,如果不需要使用可以設定為false,改完後情況依舊
使用OpenEntityManagerInViewInterceptor後伺服器端在接收到一個請求的時候開啟EntityManager,在請求結束的時候才去關閉這個EntityManager,所以在使用者數多,並行高,操作耗時的情況下會造成資料連線不夠用的情況,而我們的業務有這個特徵。
在spring boot環境中,OpenEntityManagerInViewInterceptor預設是開啟的,然而我們使用spring.jpa.open-in-view=false關閉後,問題依舊,不過比之前的間隔時間久一點了
使用top定位到程式pid,然後使用jstack -l 2591 >>dump.out 拿到當前堆疊快照後發現如下
"http-nio-8080-exec-54" daemon prio=10 tid=0x0000000000e61000 nid=0xcc9 waiting on condition [0x00007f4a753d4000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000007a143f230> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at com.alibaba.druid.pool.DruidDataSource.takeLast(DruidDataSource.java:1732) at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1330) at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1198) at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4619)
所有的請求都被druid的獲取連線操作阻塞了,最後看原始碼如下
因為資料連結沒有釋放,連線池中無可用連線,導致請求被阻塞了
到這裡基本上就是真相了,最後換成spring boot自帶的連線池tomcat jdbc後一切正常
定位到問題後,發現網上很多人遇到了連線洩露的情況,可見druid的官方issue,如https://github.com/alibaba/druid/issues/1160
不過druid也提供了相應的方案,如下
雖然官方說可能是應用自己導致連線未被釋放導致連線洩露,但是為什麼切換別家的連線池後就毛事都沒有呢,元芳,你怎麼看呢?
以上就是阿里Druid資料連線池引發的線上異常解決的詳細內容,更多關於Druid資料連線池線上異常的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45