在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣去解決MyBatis引起的線程池線程打滿問題呢

jf_ro2CN3Fa ? 來源:稀土掘金 ? 作者:樹洞君 ? 2022-10-17 16:24 ? 次閱讀

背景

我們有個業務服務長期沒有進行過上線,但是服務器監控經常會發生報警,提示 cpu 使用率 100% 影響線上生產。偶發的現象,所以一開始沒注意,后續經過排查才發現原來是踩中了一個“坑”。

基于 Spring Boot + MyBatis Plus + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

排查過程

1、首先排除了新業務上線的問題

2、其次通過服務器的監控排除了硬件故障的問題

3、于是使用 java 線程分析工具,分析了導致 cpu 過高的都是哪些線程

b970de72-4dc0-11ed-a3b6-dac502259ad0.jpg

發現異常線程

排查就會發現 mybatis 執行的相關線程。

4、于是我們根據提示找到相應的源碼處進行分析。mybatis 組裝 sql 語句這里,這段代碼,在 sql 很長的并且入參很多說的時候,下面對 sql 的拼接,將#{屬性名}替換成?是很耗費 cpu 的。

b98368ee-4dc0-11ed-a3b6-dac502259ad0.jpg

MyBatis拼接大SQL耗費性能

5、那么導致這個問題的原因是什么呢?我們針對 mapper 里的 sql 語句發現,有個查詢條件入參是個 list,mapper 是這么寫:

b9ac1a28-4dc0-11ed-a3b6-dac502259ad0.jpg

foreach

6、為了驗證問題,我們自己做了一個測試,通過入參條件的調整,來進行執行時間的監控驗證,最后經過反復的測試發現「當入參 list 的數量達到 10 萬級別的時候,cpu 就飆升到了 120%,執行了 29s,是造成線程等待的元兇」

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實現的后臺管理系統 + 用戶小程序,支持 RBAC 動態權限、多租戶、數據權限、工作流、三方登錄、支付、短信、商城等功能

項目地址:https://gitee.com/zhijiantianya/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

總結

「在使用 list 做 mapper 入參,一定要考慮上限」

另外,sql 的 in 里面的數據也太多了吧,sql 太長超過 max_allow_packet 會報錯的。這個 MySQL 配置,建議不要往大了改!






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2975

    瀏覽量

    105154
  • SQL
    SQL
    +關注

    關注

    1

    文章

    775

    瀏覽量

    44254
  • RBAC
    +關注

    關注

    0

    文章

    44

    瀏覽量

    9989

原文標題:MyBatis引起的線程池線程打滿問題排查過程

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    跨平臺的線程組件--TP組件

    /銷毀代價是很高的。那么我們要怎么設計多線程編程???答案:對于長駐的線程,我們可以創建獨立的線程
    的頭像 發表于 04-06 15:39 ?914次閱讀

    Java中的線程包括哪些

    線程是用來統一管理線程的,在 Java 中創建和銷毀線程都是一件消耗資源的事情,線程可以重復
    的頭像 發表于 10-11 15:33 ?859次閱讀
    Java中的<b class='flag-5'>線程</b><b class='flag-5'>池</b>包括哪些

    為什么會有線程怎樣操作線程

    信號是什么?信號是如何產生的?為什么會有線程怎樣操作線程
    發表于 12-23 07:27

    線程是如何實現的

    線程的概念是什么?線程是如何實現的?
    發表于 02-28 06:20

    基于線程技術集群接入點的應用研究

    本文在深入研究高級線程技術的基礎上,分析、研究了固定線程數目的線程線程數目動態變化的
    發表于 01-22 14:21 ?5次下載

    基于Nacos的簡單動態化線程實現

    本文以Nacos作為服務配置中心,以修改線程核心線程數、最大線程數為例,實現一個簡單的動態化線程
    發表于 01-06 14:14 ?891次閱讀

    線程線程

    線程通常用于服務器應用程序。 每個傳入請求都將分配給線程池中的一個線程,因此可以異步處理請求,而不會占用主線程,也不會延遲后續請求的處理
    的頭像 發表于 02-28 09:53 ?833次閱讀
    多<b class='flag-5'>線程</b>之<b class='flag-5'>線程</b><b class='flag-5'>池</b>

    Java線程核心原理

    看過Java線程源碼的小伙伴都知道,在Java線程池中最核心的類就是ThreadPoolExecutor,
    的頭像 發表于 04-21 10:24 ?908次閱讀

    如何用C++實現一個線程

    C++線程是一種多線程管理模型,把線程分成任務執行和線程調度兩部分。
    發表于 06-08 14:53 ?1839次閱讀
    如何用C++實現一個<b class='flag-5'>線程</b><b class='flag-5'>池</b><b class='flag-5'>呢</b>?

    線程線程怎么釋放

    線程分組看,pool名開頭線程占616條,而且waiting狀態也是616條,這個點就非常可疑了,我斷定就是這個pool開頭線程導致的問題。我們先排查為何這個
    發表于 07-31 10:49 ?2349次閱讀
    <b class='flag-5'>線程</b><b class='flag-5'>池</b>的<b class='flag-5'>線程</b>怎么釋放

    Spring 的線程應用

    我們在日常開發中,經常跟多線程打交道,Spring 為我們提供了一個線程方便我們開發,它就是 ThreadPoolTaskExecutor ,接下來我們就來聊聊 Spring 的線程
    的頭像 發表于 10-13 10:47 ?651次閱讀
    Spring 的<b class='flag-5'>線程</b><b class='flag-5'>池</b>應用

    線程基本概念與原理

    一、線程基本概念與原理 1.1 線程概念及優勢 C++線程簡介
    的頭像 發表于 11-10 10:24 ?579次閱讀

    線程的基本概念

    ? 呃呃,我這么問就很奇怪,因為線程是什么我都沒說,怎么會知道為什么會有線程?所以我打算帶大家去思考一個場景: 當我們的程序中:有一批
    的頭像 發表于 11-10 16:37 ?560次閱讀
    <b class='flag-5'>線程</b><b class='flag-5'>池</b>的基本概念

    線程的創建方式有幾種

    線程是一種用于管理和調度線程的技術,能夠有效地提高系統的性能和資源利用率。它通過預先創建一組線程并維護一個工作隊列,將任務提交給線程
    的頭像 發表于 12-04 16:52 ?936次閱讀

    什么是動態線程?動態線程的簡單實現思路

    因此,動態可監控線程一種針對以上痛點開發的線程管理工具。主要可實現功能有:提供對 Spring 應用內線程
    的頭像 發表于 02-28 10:42 ?722次閱讀
    主站蜘蛛池模板: 伦理片日本韩国电影三级在线观看 | 男人j进入女人j视频大全 | 亚洲产国偷v产偷v自拍色戒 | 在线三级网址 | jiuma和我啪啪| 成年大片免费视频播放手机不卡 | 国产成人精品亚洲77美色 | 一本到卡二卡三卡视频 | 插插天天| 男人操女人在线观看 | 亚洲小便 | 成人亚洲欧美在线电影www色 | 日美一级毛片 | 一级a级国产不卡毛片 | 我要色综合网 | 99免费视频观看 | 久久免费精品高清麻豆 | 国产性老妇女做爰在线 | 国模久久| 成年人视频黄色 | 新版天堂中文在线8官网 | 成人a毛片免费全部播放 | 操碰视频在线 | 五月婷婷在线免费观看 | 天天综合视频网 | 天天色天 | 人人人插| аⅴ资源中文在线天堂 | 69pao强力打造免费高速 | 中国一级特黄剌激爽毛片 | 久久精品美女久久 | 欧美色婷婷天堂网站 | 亚洲天天更新 | 狠狠干干| 91中文在线观看 | 午夜在线观看网站 | 香蕉成人国产精品免费看网站 | 性欧美护士18xxxxhd视频 | 日韩一级特黄毛片在线看 | 久久久亚洲欧美综合 | 末发育娇小性色xxxxx视频 |