精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

接口中的大事務,該如何進行優化?

開發 前端
可見大事務是我們接口效率低下的罪魁禍首,有時候我們為了快速實現功能,可能會忽略一些關乎于性能的東西,而這些東西是我們能力提升的一個契機。

作為后端開發的程序員,我們常常會的一些相對比較復雜的邏輯,比如我們需要給前端寫一個調用的接口,這個接口需要進行相對比較復雜的業務邏輯操作,比如會進行,查詢、遠程接口或本地接口調用、更新、插入、計算等一些邏輯,將最終接口的返回結果給到前端,而經過這么一系列的業務邏輯操作,接口對DB的操作、對代碼業務邏輯判斷、進行接口調用這些都是需要時間的,而只要這是一個事務操作,每次對數據庫進行的交互都會產生一條事務記錄。

那么這樣就會對我們接口返回的效率產生影響,而且這個影響是隨著數據量的增長而增長的,這時候我們就需要對一整個大事務進行拆分,從而提升整體接口的效率。

何為大事務

就拿我最近開發寫的一個接口來說吧,大致是這么一個邏輯,我需要根據頁面的提交的數據生成一個收款單,整體接口處理的業務如下,我把它們寫在了一個接口里,可以理解為這是一個大事物,這個接口執行的時間是相對比較長的,而且將這些邏輯全部寫在一個接口里面,本身來說也是不太合理的。

圖片圖片


大事務存在的一些問題

并發數據不一致

不加鎖的情況下,由于種種原因第一次接口的調用還沒執行完,還在等待第三方的調用回寫數據,第二次調用又進來對數據進行了更改,第二次調用先執行完,這時候第一次接口調用拿到了第三方接口的返回,去回寫狀態發現已經被更新,導致無效操作。

加鎖容易阻塞

加鎖的情況下, 不會出現數據不一致情況,但是由于大事物執行時間較長,容易造成鎖超時失效,鎖定太多的數據造成阻塞,嚴重影響效率。

Undo logo事務日志性能問題

容易造成Undo logo日志數據量很大,降低了日志的查詢性能,包括對事務的回滾效率也會降低。

并發數據庫壓力太大

并發量達到一定程度,會對數據庫讀寫造成不小的壓力,會堆積大量等待線程。

如何優化大事務

事務里面不要進行遠程RPC調用

首先事務里面進行遠程的接口調用,如果不采用分布式事務框架,本身就會存在事務不一致的情況,無法進行數據的回滾操作,并發情況下遠程服務響應不及時,會出現接口返回不一致問題,當然必須采用異步調用,后面會提到。

編程型事務更加靈活

聲明式事務只需要加在方法頭加@Transactional注解即可開啟事務,但是還是不太靈活,意味著整個方法所進行對數據庫操作都要加進事務,當然一次查詢也要進入事務,這并不是我們想要的,我們在update、insert操作上進行事務操作,方便進行回滾。

public Boolean transactionCommit(String userName) {
    //查詢用戶
    SysUser sysUser = userMapper.selectUserByUserName(userName,null);

    transactionTemplate.execute(new TransactionCallbackWithoutResult() {
        @Override
        protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
            try {
                if (null != sysUser) {
                    //用戶信息狀態更新 status更新為1
                    userMapper.updateStatus(userName);
                }
            } catch (Exception e){
                //回滾
                transactionStatus.setRollbackOnly();
            }
        }
    });
    //再次查詢
    SysUser sysUser1 = userMapper.selectUserByUserName(userName,"1");
    /log/.info("狀態為1的用戶信息"+JSON./toJSONString/(sysUser1));
    return  true;
}

編程式事務的靈活點在于可以控制事務執行方法,運用transactionTemplate類進行事務操作,查詢操作可以寫在外面,這樣查詢獲取數據的操作就不會進入mysql事務表。

數據分批處理

對于事務的更新或者插入,前端可能會有批量操作,大規模數據的批量更新、插入也會對事務接口產生影響,一旦其中有更新或插入失敗,為了保證事務的一致性,整個操作都要進行回滾;

  • 前端:可以限制數據,對后端接口的訪問,可以將數據進行分頁,多次請求,可以避免事務提交大量數據。
  • 后端:也可以去數據進行分頁處理,例如每次可以限制50條進行操作,如果是新增邏輯,使用Mybatis的批量更新大大提升效率
List<List<ReceivableFeeSaveDTO>> partition = Lists.partition(receivableFeeSaveDTOList, 50);

大事務拆分小事務

可以將一個事務接口,拆分成多個事務接口,并且每個事務接口只做一件事,比如上面的收款單生成接口,金額回寫、第三方接口調用、調用后的結果回寫都可以抽成一個哥小事務接口。

就好比做一件很復雜的事情,咋一眼看上去很復雜,但是我們把這復雜的步驟,進行多個步驟的拆分,每個階段完成每個階段的事情,就可以將整個過程簡化,看起來就沒那么復雜了。

異步并行處理

重中之重,事務里如果無法避免遠程調用,那么肯定是需要進行異步調用,因為無法保證遠程接口的及時響應性,CompletableFuture異步編排特性可以用到,task1和task2任務結束后,執行task3。

CompletableFuture<Object> task1 =CompletableFuture.supplyAsync(() -> {
    System.out.println("單號check線程" + Thread.currentThread().getId());
    //單號check接口 校驗失敗拋出異常

    return "賬單實體信息";
}, executor);
CompletableFuture<Object> task2 = CompletableFuture.supplyAsync(() -> {
    System.out.println("收款單生成線程" + Thread.currentThread().getId());
    try {
        //收款單生成

        return “賬單編號”;
        Thread.sleep(3000);
        System.out.println("任務2結束:");
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

}, executor);

 //task1、task2 執行完執行task3 ,需要感知task1和task2的執行結果
CompletableFuture<Boolean> future = task1.thenCombineAsync(task2, (t1, t2) -> {

    System.out.println("賬單金額回寫線程" + Thread.currentThread().getId());
    // t1 、t2返回判斷

    //回寫返回結果
    return ture;
}, executor);

總結

可見大事務是我們接口效率低下的罪魁禍首,有時候我們為了快速實現功能,可能會忽略一些關乎于性能的東西,而這些東西是我們能力提升的一個契機。

責任編輯:武曉燕 來源: 程序員小富
相關推薦

2024-03-01 12:19:00

接口性能優化

2017-07-28 11:31:59

iOS結構優化項目

2019-08-16 09:46:51

2021-05-10 14:49:21

分析指標下跌

2015-09-25 11:03:14

數據中心日志分析

2014-11-27 10:07:43

IT運維

2010-03-16 14:41:06

Java Runnab

2010-02-26 11:15:51

WCF接口方法

2024-02-22 10:27:00

Python開發

2017-11-22 15:33:56

MySQL快速插入語句優化

2011-07-06 08:46:30

2009-12-16 17:50:58

Ruby on Rai

2020-02-12 08:50:05

Linux命令啟動時間

2017-01-06 14:57:02

2011-09-06 10:00:19

Vista右鍵菜單

2021-02-03 10:34:35

多云云安全CISO

2024-12-27 09:21:58

2019-08-21 17:30:42

網絡攻擊安全系統服務器

2011-09-08 18:01:57

2011-06-29 10:06:23

Linux服務器優化
點贊
收藏

51CTO技術棧公眾號

久久先锋影音av鲁色资源| 我不卡一区二区| 91日韩中文字幕| 高潮在线视频| 国产精品不卡| 一本色道久久加勒比精品| 美日韩精品免费视频| 久久人妻精品白浆国产| 国产小视频免费观看| 久久久久久久久国产一区| 在线观看不卡一区| 欧美日韩在线精品一区二区三区| 欧美成人三级在线观看| 亚洲91在线| 国产精品国产三级国产aⅴ中文| 欧美一级片一区| xxxxxx黄色| 国产丝袜在线播放| 成人av资源站| 国内精品久久久久影院优| 中文字幕乱妇无码av在线| 久久bbxx| 精品一区二区日韩| www.99久久热国产日韩欧美.com| 成人性视频欧美一区二区三区| 三级黄视频在线观看| 国产亚洲一级| 亚洲精品综合久久中文字幕| 亚洲国产精品久久久久婷蜜芽| 黄色小视频免费在线观看| 日本vs亚洲vs韩国一区三区二区| 亚洲香蕉av在线一区二区三区| 日韩a在线播放| 日韩精品视频无播放器在线看| 精品一区二区三区在线观看国产 | 欧美一区二区三区免费看| 欧美日韩在线观看一区二区| 亚洲区一区二区三区| 午夜影院免费在线观看| 最新亚洲精品| 欧美日韩日日摸| 中文字幕超清在线免费观看| 国产wwwxxx| 极品尤物久久久av免费看| 亚洲精品国产精品国自产在线| 黄色影院一级片| 男男gaygays亚洲| 91小视频在线| 国产综合久久久久| 黄色一级片在线免费观看| 欧美三级电影在线| 日韩欧美成人精品| 亚洲视频电影| 99免在线观看免费视频高清| 国产九九视频一区二区三区| 午夜精品久久久久久久男人的天堂| 水蜜桃av无码| 全国精品免费看| 日韩av网站大全| 狠狠躁狠狠躁视频专区| av在线下载| 久久亚洲精精品中文字幕早川悠里 | 超碰91在线观看| 午夜影院久久久| 欧美人与性禽动交精品| 四虎成人免费在线| 国内一区二区在线| 日本老师69xxx| 欧美丰满艳妇bbwbbw| 亚洲精彩视频| 久久久久这里只有精品| 五月婷婷激情网| 亚洲第一偷拍| 欧美激情三级免费| 黑人と日本人の交わりビデオ| 成人中文字幕视频| 欧美日韩三级视频| www.久久com| 成人做爰视频www网站小优视频| 一区二区三区.www| 亚洲综合欧美日韩| 日本伦理一区二区| 国产精品视频yy9299一区| 精品免费日产一区一区三区免费| 国产又大又粗又长| 可以看av的网站久久看| 久久久久久国产精品三级玉女聊斋| 日韩免费成人av| 亚洲欧美偷拍自拍| 精品国产一区av| 久久久久无码国产精品不卡| 国产精品精品| av一级亚洲| 天天色综合成人网| 日韩妆和欧美的一区二区| 亚洲中文字幕在线观看| 午夜一级在线看亚洲| 国内精品美女av在线播放| 伊人手机在线视频| 国产精品久久久久久久免费软件| 日本一区二区不卡| av免费在线观看不卡| ww亚洲ww在线观看国产| japanese在线视频| 超级碰碰久久| 日韩欧美在线观看视频| 一区二区久久精品| 国产95亚洲| 欧美一区二区日韩| 992kp免费看片| 不卡精品视频| 欧美一区二区三区视频在线观看| av在线播放网址| 97精品一区| 久久天天躁夜夜躁狠狠躁2022| 久久久久亚洲AV成人无在| 欧美xxx在线观看| 国产精品极品在线| 亚洲无码久久久久| 99久久精品国产一区二区三区| 国内一区在线| 欧美日韩视频精品二区| 久久综合九色综合久久久精品综合 | 26uuu精品一区二区在线观看| 日本xxxxx18| 国产在线观看av| 色狠狠桃花综合| 婷婷免费在线观看| 精品一区二区三区在线观看视频| 欧美一区二区三区爱爱| 国产精品理论在线| 国产精品综合| 久久精品美女| 日本www在线观看视频| 亚洲人成网站在线| 老太脱裤让老头玩ⅹxxxx| 亚洲欧美韩国| 欧美日韩一区二区三区在线看| 中国美女乱淫免费看视频| jlzzjlzz亚洲女人| 欧美大奶子在线| 国产精品毛片一区视频播| 中文字幕欧美日韩一区| 欧美a级黄色大片| 粉嫩一区二区三区在线观看| 日韩中文字幕第一页| 国产精品高清无码| 国产福利一区二区| 免费中文日韩| 黄色片免费在线观看| 欧美日韩三级在线| 黑人と日本人の交わりビデオ| 男人的天堂亚洲一区| 亚洲最大成人免费视频| 亚洲日本在线播放| 亚洲欧洲色图综合| 国产av天堂无码一区二区三区| 试看120秒一区二区三区| 亚洲女人天堂网| 精品国产午夜福利| 国产亚洲一区二区在线观看| 欧美中文字幕在线观看视频| av高清不卡| 亚洲人成在线观看网站高清| 欧美三级日本三级| 粉嫩久久99精品久久久久久夜| 神马欧美一区二区| 欧美在线se| 精品综合久久久久久97| 中文人妻熟女乱又乱精品| av不卡免费电影| 中国女人做爰视频| 国产成人午夜性a一级毛片| 亚洲成人久久久| 内射一区二区三区| 日韩vs国产vs欧美| 精品午夜一区二区| 日韩精品影院| 亚洲国产欧美在线成人app| 亚洲第一精品在线观看| 国产成人免费视频网站高清观看视频| 青青草视频国产| 视频91a欧美| 久久久久久av| 成年人在线观看网站| 亚洲v日本v欧美v久久精品| a级大片在线观看| 国产偷自视频区视频一区二区| 欧洲亚洲一区二区| 成年男女免费视频网站不卡| 亚洲精品综合久久中文字幕| 91麻豆视频在线观看| 欧美激情在线观看视频免费| 波多野结衣50连登视频| 日韩中字在线| 国产精品直播网红| 国产在线91| 日韩欧美国产成人| 男女做暖暖视频| 久久欧美中文字幕| 日本wwwwwww| 好吊日精品视频| 国产精品日韩一区二区三区 | 欧美国产成人精品| 国产成人av片| 国产一区久久| 欧美激情论坛| 成人免费在线电影网| 国产日韩欧美黄色| 欧美gay视频| 久久久久久久999精品视频| 国产福利第一视频在线播放| 色噜噜狠狠成人中文综合| 免费看一级大片| 日本一区二区三区四区在线视频| 亚洲视频天天射| 韩国女主播成人在线| 久久黄色免费看| 亚洲少妇自拍| 国产日韩亚洲欧美在线| 久久精品亚洲成在人线av网址| 久久久久久久999精品视频| 三区四区电影在线观看| 欧美一区二区三区婷婷月色| 亚洲av无码精品一区二区| 国产精品久久久久久久久果冻传媒 | 国产第一亚洲| 国产mv免费观看入口亚洲| av影院在线免费观看| 精品第一国产综合精品aⅴ| 亚洲一区欧美在线| 一区二区在线观看不卡| 日本少妇xxxx| 成人一区二区在线观看| 国产熟女高潮视频| 1024成人| 翔田千里亚洲一二三区| 最新亚洲精品| 欧美1o一11sex性hdhd| 欧美电影完整版在线观看| 成人自拍视频网站| 成人欧美magnet| 97国产在线视频| 看黄在线观看| 日韩在线视频观看| 人妻少妇一区二区三区| 色噜噜狠狠成人中文综合| 国产免费av一区| 欧美视频一区二区三区…| 国产精品777777| 欧美日韩亚洲天堂| 天堂网avav| 一区二区三区鲁丝不卡| 久久久夜色精品| 亚洲成av人片在线| 国产无套内射又大又猛又粗又爽| 欧美精彩视频一区二区三区| 你懂得视频在线观看| 国产精品乱人伦| 午夜精品福利在线视频| 亚洲高清久久久| 亚洲AV成人无码精电影在线| 91美女福利视频| av直播在线观看| 国产成人av电影在线观看| 午夜福利三级理论电影| 97成人超碰视| 卡一卡二卡三在线观看| 亚洲日本在线视频观看| 久久久香蕉视频| 色婷婷久久综合| 97人妻精品一区二区三区动漫| 日韩一区二区免费高清| 欧产日产国产69| 欧美婷婷六月丁香综合色| 欧美日韩综合在线观看| 色婷婷亚洲一区二区三区| 一级全黄少妇性色生活片| 日韩免费性生活视频播放| 精品乱码一区内射人妻无码| 欧美电影一区二区三区| 中文字幕码精品视频网站| 欧美人成免费网站| 日本加勒比一区| 中文字幕v亚洲ⅴv天堂| 男女污污视频在线观看| 综合网日日天干夜夜久久| 特级毛片在线| 国产999在线观看| 欧美黄色一级| 欧美一区二区三区四区在线观看地址 | 日韩成人激情视频| a天堂在线资源| 亚州精品天堂中文字幕| 日日夜夜一区| 精品国产一区二区三区麻豆小说 | 宇都宫紫苑在线播放| 91美女蜜桃在线| 久久久久久激情| 欧美日韩在线一区二区| 蜜桃视频污在线观看| 精品国产自在精品国产浪潮| 二区在线视频| 欧美俄罗斯乱妇| 久久精品97| 成人高h视频在线| 国产精品一区二区三区av| 精品欧美一区二区在线观看视频| 久久综合99| av视屏在线播放| 93久久精品日日躁夜夜躁欧美| av最新在线观看| 欧美色图片你懂的| 男男电影完整版在线观看| 久久频这里精品99香蕉| 亚洲欧洲日韩精品在线| 欧洲亚洲一区二区三区四区五区| 亚洲精品免费观看| www.欧美com| 亚洲色图另类专区| 亚洲一卡二卡在线观看| 亚洲亚裔videos黑人hd| 忘忧草在线日韩www影院| 成人在线观看91| 国产综合精品一区| 五月天开心婷婷| 亚洲欧洲国产日本综合| 中文字幕乱码无码人妻系列蜜桃| 亚洲人成在线电影| 伊人久久视频| 欧美精品v日韩精品v国产精品| 精品福利av| 亚洲一级Av无码毛片久久精品| 99国产精品久久久久| 免费一级黄色大片| 欧美一级欧美一级在线播放| 黄色网址在线免费| 成人免费激情视频| 午夜精品毛片| 99精品999| 夜夜嗨av一区二区三区网页| 国产农村妇女毛片精品| 日韩激情视频在线| 密臀av在线播放| 精品综合久久久| 媚黑女一区二区| 中文字幕在线视频一区二区| 亚洲视频一区在线| 国产精品毛片一区视频播| 久久久91精品| 激情不卡一区二区三区视频在线 | 亚洲精品字幕| theav精尽人亡av| 色综合久久久久| 成人好色电影| 成人淫片在线看| 午夜激情一区| 国产 xxxx| 91成人免费电影| 国产在线激情视频| 国产精品二区在线| 香蕉久久夜色精品国产| 免费网站在线高清观看| 欧美另类videos死尸| 在线你懂的视频| 国产精品xxx视频| 日韩免费av| 香蕉视频在线观看黄| 香蕉成人伊视频在线观看| 国产一二三区在线视频| 国产日本欧美在线观看| 国内视频精品| 国精产品一区二区三区| 亚洲va欧美va人人爽午夜| 五月婷婷六月丁香| 国产精品免费一区二区三区都可以| 成人台湾亚洲精品一区二区 | 人狥杂交一区欧美二区| 日韩免费电影一区二区| 国产美女精品一区二区三区| 亚洲一区二区三区蜜桃| 欧美日韩国产小视频| 免费电影网站在线视频观看福利| 久久天天狠狠| 国产一区二区电影| 特级毛片www| 欧美猛交ⅹxxx乱大交视频| 欧美xxxx在线| 福利视频999| 五月婷婷综合网| 麻豆tv免费在线观看| 精品一区在线播放| 国产在线视频精品一区| 亚洲 欧美 成人| 欧美日韩成人黄色| 成人亚洲一区二区| 亚洲成人av免费看| 中文字幕欧美日韩一区| 动漫av一区二区三区| 国产乱肥老妇国产一区二|