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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣去解決MyBatis引起的線(xiàn)程池線(xiàn)程打滿(mǎn)問(wèn)題呢

jf_ro2CN3Fa ? 來(lái)源:稀土掘金 ? 作者:樹(shù)洞君 ? 2022-10-17 16:24 ? 次閱讀

背景

我們有個(gè)業(yè)務(wù)服務(wù)長(zhǎng)期沒(méi)有進(jìn)行過(guò)上線(xiàn),但是服務(wù)器監(jiān)控經(jīng)常會(huì)發(fā)生報(bào)警,提示 cpu 使用率 100% 影響線(xiàn)上生產(chǎn)。偶發(fā)的現(xiàn)象,所以一開(kāi)始沒(méi)注意,后續(xù)經(jīng)過(guò)排查才發(fā)現(xiàn)原來(lái)是踩中了一個(gè)“坑”。

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶(hù)小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶(hù)、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://gitee.com/zhijiantianya/ruoyi-vue-pro

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

排查過(guò)程

1、首先排除了新業(yè)務(wù)上線(xiàn)的問(wèn)題

2、其次通過(guò)服務(wù)器的監(jiān)控排除了硬件故障的問(wèn)題

3、于是使用 java 線(xiàn)程分析工具,分析了導(dǎo)致 cpu 過(guò)高的都是哪些線(xiàn)程

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

發(fā)現(xiàn)異常線(xiàn)程

排查就會(huì)發(fā)現(xiàn) mybatis 執(zhí)行的相關(guān)線(xiàn)程。

4、于是我們根據(jù)提示找到相應(yīng)的源碼處進(jìn)行分析。mybatis 組裝 sql 語(yǔ)句這里,這段代碼,在 sql 很長(zhǎng)的并且入?yún)⒑芏嗾f(shuō)的時(shí)候,下面對(duì) sql 的拼接,將#{屬性名}替換成?是很耗費(fèi) cpu 的。

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

MyBatis拼接大SQL耗費(fèi)性能

5、那么導(dǎo)致這個(gè)問(wèn)題的原因是什么呢?我們針對(duì) mapper 里的 sql 語(yǔ)句發(fā)現(xiàn),有個(gè)查詢(xún)條件入?yún)⑹莻€(gè) list,mapper 是這么寫(xiě):

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

foreach

6、為了驗(yàn)證問(wèn)題,我們自己做了一個(gè)測(cè)試,通過(guò)入?yún)l件的調(diào)整,來(lái)進(jìn)行執(zhí)行時(shí)間的監(jiān)控驗(yàn)證,最后經(jīng)過(guò)反復(fù)的測(cè)試發(fā)現(xiàn)「當(dāng)入?yún)?list 的數(shù)量達(dá)到 10 萬(wàn)級(jí)別的時(shí)候,cpu 就飆升到了 120%,執(zhí)行了 29s,是造成線(xiàn)程等待的元兇」

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶(hù)小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶(hù)、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://gitee.com/zhijiantianya/yudao-cloud

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

總結(jié)

「在使用 list 做 mapper 入?yún)ⅲ欢ㄒ紤]上限」

另外,sql 的 in 里面的數(shù)據(jù)也太多了吧,sql 太長(zhǎng)超過(guò) max_allow_packet 會(huì)報(bào)錯(cuò)的。這個(gè) MySQL 配置,建議不要往大了改!






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2983

    瀏覽量

    106501
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    779

    瀏覽量

    44708
  • RBAC
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    10120

原文標(biāo)題:MyBatis引起的線(xiàn)程池線(xiàn)程打滿(mǎn)問(wèn)題排查過(guò)程

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    跨平臺(tái)的線(xiàn)程組件--TP組件

    /銷(xiāo)毀代價(jià)是很高的。那么我們要怎么設(shè)計(jì)多線(xiàn)程編程???答案:對(duì)于長(zhǎng)駐的線(xiàn)程,我們可以創(chuàng)建獨(dú)立的線(xiàn)程
    的頭像 發(fā)表于 04-06 15:39 ?1045次閱讀

    Java中的線(xiàn)程包括哪些

    線(xiàn)程是用來(lái)統(tǒng)一管理線(xiàn)程的,在 Java 中創(chuàng)建和銷(xiāo)毀線(xiàn)程都是一件消耗資源的事情,線(xiàn)程可以重復(fù)
    的頭像 發(fā)表于 10-11 15:33 ?954次閱讀
    Java中的<b class='flag-5'>線(xiàn)程</b><b class='flag-5'>池</b>包括哪些

    為什么會(huì)有線(xiàn)程怎樣操作線(xiàn)程

    信號(hào)是什么?信號(hào)是如何產(chǎn)生的?為什么會(huì)有線(xiàn)程怎樣操作線(xiàn)程
    發(fā)表于 12-23 07:27

    線(xiàn)程是如何實(shí)現(xiàn)的

    線(xiàn)程的概念是什么?線(xiàn)程是如何實(shí)現(xiàn)的?
    發(fā)表于 02-28 06:20

    基于線(xiàn)程技術(shù)集群接入點(diǎn)的應(yīng)用研究

    本文在深入研究高級(jí)線(xiàn)程技術(shù)的基礎(chǔ)上,分析、研究了固定線(xiàn)程數(shù)目的線(xiàn)程線(xiàn)程數(shù)目動(dòng)態(tài)變化的
    發(fā)表于 01-22 14:21 ?5次下載

    基于Nacos的簡(jiǎn)單動(dòng)態(tài)化線(xiàn)程實(shí)現(xiàn)

    本文以Nacos作為服務(wù)配置中心,以修改線(xiàn)程核心線(xiàn)程數(shù)、最大線(xiàn)程數(shù)為例,實(shí)現(xiàn)一個(gè)簡(jiǎn)單的動(dòng)態(tài)化線(xiàn)程
    發(fā)表于 01-06 14:14 ?1016次閱讀

    線(xiàn)程線(xiàn)程

    線(xiàn)程通常用于服務(wù)器應(yīng)用程序。 每個(gè)傳入請(qǐng)求都將分配給線(xiàn)程池中的一個(gè)線(xiàn)程,因此可以異步處理請(qǐng)求,而不會(huì)占用主線(xiàn)程,也不會(huì)延遲后續(xù)請(qǐng)求的處理
    的頭像 發(fā)表于 02-28 09:53 ?973次閱讀
    多<b class='flag-5'>線(xiàn)程</b>之<b class='flag-5'>線(xiàn)程</b><b class='flag-5'>池</b>

    Java線(xiàn)程核心原理

    看過(guò)Java線(xiàn)程源碼的小伙伴都知道,在Java線(xiàn)程池中最核心的類(lèi)就是ThreadPoolExecutor,
    的頭像 發(fā)表于 04-21 10:24 ?1018次閱讀

    如何用C++實(shí)現(xiàn)一個(gè)線(xiàn)程

    C++線(xiàn)程是一種多線(xiàn)程管理模型,把線(xiàn)程分成任務(wù)執(zhí)行和線(xiàn)程調(diào)度兩部分。
    發(fā)表于 06-08 14:53 ?1954次閱讀
    如何用C++實(shí)現(xiàn)一個(gè)<b class='flag-5'>線(xiàn)程</b><b class='flag-5'>池</b><b class='flag-5'>呢</b>?

    線(xiàn)程線(xiàn)程怎么釋放

    線(xiàn)程分組看,pool名開(kāi)頭線(xiàn)程占616條,而且waiting狀態(tài)也是616條,這個(gè)點(diǎn)就非常可疑了,我斷定就是這個(gè)pool開(kāi)頭線(xiàn)程導(dǎo)致的問(wèn)題。我們先排查為何這個(gè)
    發(fā)表于 07-31 10:49 ?2470次閱讀
    <b class='flag-5'>線(xiàn)程</b><b class='flag-5'>池</b>的<b class='flag-5'>線(xiàn)程</b>怎么釋放

    Spring 的線(xiàn)程應(yīng)用

    我們?cè)谌粘i_(kāi)發(fā)中,經(jīng)常跟多線(xiàn)程打交道,Spring 為我們提供了一個(gè)線(xiàn)程方便我們開(kāi)發(fā),它就是 ThreadPoolTaskExecutor ,接下來(lái)我們就來(lái)聊聊 Spring 的線(xiàn)程
    的頭像 發(fā)表于 10-13 10:47 ?731次閱讀
    Spring 的<b class='flag-5'>線(xiàn)程</b><b class='flag-5'>池</b>應(yīng)用

    線(xiàn)程基本概念與原理

    一、線(xiàn)程基本概念與原理 1.1 線(xiàn)程概念及優(yōu)勢(shì) C++線(xiàn)程簡(jiǎn)介
    的頭像 發(fā)表于 11-10 10:24 ?794次閱讀

    線(xiàn)程的基本概念

    ? 呃呃,我這么問(wèn)就很奇怪,因?yàn)?b class='flag-5'>線(xiàn)程是什么我都沒(méi)說(shuō),怎么會(huì)知道為什么會(huì)有線(xiàn)程?所以我打算帶大家去思考一個(gè)場(chǎng)景: 當(dāng)我們的程序中:有一批
    的頭像 發(fā)表于 11-10 16:37 ?671次閱讀
    <b class='flag-5'>線(xiàn)程</b><b class='flag-5'>池</b>的基本概念

    線(xiàn)程的創(chuàng)建方式有幾種

    線(xiàn)程是一種用于管理和調(diào)度線(xiàn)程的技術(shù),能夠有效地提高系統(tǒng)的性能和資源利用率。它通過(guò)預(yù)先創(chuàng)建一組線(xiàn)程并維護(hù)一個(gè)工作隊(duì)列,將任務(wù)提交給線(xiàn)程
    的頭像 發(fā)表于 12-04 16:52 ?1125次閱讀

    什么是動(dòng)態(tài)線(xiàn)程?動(dòng)態(tài)線(xiàn)程的簡(jiǎn)單實(shí)現(xiàn)思路

    因此,動(dòng)態(tài)可監(jiān)控線(xiàn)程一種針對(duì)以上痛點(diǎn)開(kāi)發(fā)的線(xiàn)程管理工具。主要可實(shí)現(xiàn)功能有:提供對(duì) Spring 應(yīng)用內(nèi)線(xiàn)程
    的頭像 發(fā)表于 02-28 10:42 ?936次閱讀
    主站蜘蛛池模板: 在线永久免费播放视频 | 激情欧美一区二区三区中文字幕 | 色视频免费在线 | 欧美日本一道免费一区三区 | 黄色免费网站视频 | 四虎最新网址 | 成人看的一级毛片 | 中文字幕卡二和卡三的视频 | se色综合视频 | 日本特黄特黄刺激大片免费 | 亚洲人成电影在在线观看网色 | 亚洲免费毛片 | 色婷婷在线视频观看 | 色婷婷六月丁香七月婷婷 | 久久视频精品线视频在线网站 | 特黄毛片 | 国产精品爱久久久久久久三级 | 五月婷在线观看 | 97午夜精品| 色噜噜亚洲男人的天堂 | 一久久| 18视频网站在线观看 | 精品一区二区三区18 | 国产激情三级 | se色综合视频 | 中文字幕在线看精品乱码 | 伊人久久大香线蕉综合网站 | 在线www 天堂网在线 | 天天插天天搞 | 欧美极品在线观看 | 高清午夜毛片 | 日韩一级视频免费观看 | 啪啪影城 | 狠狠色噜噜综合社区 | 国产美女被艹 | 国模极品一区二区三区 | 成人a毛片在线看免费全部播放 | 日本三级在线视频 | 最近视频在线播放免费观看 | 久久99精品久久久久久牛牛影视 | 特黄aaaaaa久久片 |