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

實現一個刷數任務,需要思考哪些維度?

開發 后端
如果我們是按照一個客戶維度去刷數的,你要確認A?客戶刷失敗,是不是不能影響B?客戶。這時候建議try...catch 包住可能的異常,這樣即有利于分析錯誤原因,又可以不不因為未知異常導致刷數中斷。

前言

大家好,我是田螺。

相信很多后端開發的伙伴們,都做過刷數任務了吧。今天跟大家聊聊,做好一個刷數任務,需要具備哪些后端思維。

1. 數據的備份和還原

我們做刷數任務的時候,首先要考慮的是,這些被刷的數據是否還要還原的。或者刷出問題時,需要回滾的。如果是的話,我們就要做好備份。

如果你是把數據遷移到新的表,則有可能不需要備份,這個具體問題具體分析的哈。

通常,我們在一個事務內,先備份數據,再操作刷數邏輯。

圖片圖片

當然,備份數據的方式有多種方式,可以數據庫備份,比如搞一個備份表?;蛘呶募到y快照等,在需要的時候,就還原數據。

2.刷數維度是什么?是否支持灰度?

我們刷數的時候,先確認下具體的業務需求和數據模型。然后需要確定刷數的維度是什么。

圖片圖片

  • 客戶維度:比如刷數的維度可以是一個客戶。刷數的時候,把這個客戶的所有數據撈取出來,在一個事務內,把客戶的所有數據,按照業務的規則,刷到一個表。
  • 賬號維度:刷數的維度是賬號,在執行刷數的時候,就是把這個賬號的所有數據撈取出來,在一個事務內,把賬號的所有數據,刷到另外一個表。

當然,還有其他維度,比如產品維度等等都可以,就看業務需求和你們的數據模型。

確認了刷數維度后,需要思考你的刷數是否支持灰度。比如確認客戶維度刷數后,你實現的代碼,是否支持灰度刷數,也就是說,是否支持先刷一部分客戶,確認沒問題后,再根據配置刷全量客戶。

3. 并發考慮,刷數過程是否需要加鎖。

比如,你要給一個客戶相關的業務表刷數,需要考慮并發場景,簡單點說,就是你在刷數的過程中,客戶是否可能在做交易請求,這時候,是否可能產生臟數據。

一般情況下,可以考慮給客戶維度加分布式鎖,比如加鎖的key是customerId。但是我們加鎖的時候,肯定是不希望影響客戶太久的,因為加鎖后,整個刷數的過程中,系統是處理不了這個用戶的交易請求的,也就是說影響交易了。

圖片圖片

所以也一般刷數任務,我們會選擇在夜深人靜的時候執行,這時候用戶發生交易的概率很低,影響相對較小。

4. 刷數失敗怎么辦?是否支持重試?

我們在刷數的時候,有可能會刷失敗。比如因為網絡問題、或者目標表結構等等。失敗后,我們有哪些措施保證呢:

圖片圖片

如果刷數失敗的話,我們要確保數據的完整性和一致性,一般一個刷數維度,需要加事務,確保失敗可以回滾,保證數據一致性。刷失敗之后,首先確認分布式鎖要被移除(如果有加鎖的話),因為要確認即使失敗后,交易也是能正常進行的。

還要考慮失敗支持重試??梢宰詣又卦嚮蛘呤謩又卦?,比如通過xxl-job定時任務撈取,繼續重試。有時候,可以設置重試次數和重試間隔,確保任務在一段時間內嘗試恢復。

5. 恰到好處的事務處理

我們第4小節提到,如果失敗了,需要保證數據的完整性和一致性。其實,一般我們刷數,就是通過加事務處理去保證的。

事務需要加到恰到好處,比如我們不能所有的刷數業務都放到一個事務內。如果我們是按照客戶維度來刷數的,我們就一個事務把一個客戶所有的數據刷的邏輯放到一塊,當然,有些查詢是可以放到事務外處理的,一些更新或者修改、刪除操作則放到事務內。

圖片圖片

如果你的數據是分庫處理的,則有可能刷數的時候要考慮分布式事務了。

6. 性能優化,考慮多線并行執行。

如果我們的刷數任務數據量很大,執行耗時比較久的話。就建議可以多線程并行執行。

比如你是分庫分表的,是有30個表,你可以A線程執行1-10的表,B線程執行11-20的表,C線程執行21-30的表。

圖片圖片

7. 日志記錄

我們執行一個刷數任務,一定要做好日志記錄。

我記得我們技術領導說過一句話,很有道理:評價你的日志是否打印得是否夠好。就是你根據控制臺打印出的日志,能知道你的復雜業務執行到什么流程。如果異常中斷,你能根據日志快速知道什么異常,哪個業務數據有問題,那就夠了。

刷數日志打印,一般包括:

  • 記錄詳細的刷數任務日志
  • 包括執行的步驟
  • 刷數成功與否
  • 刷數耗時等信息

8.監控告警

我們開發刷數邏輯的時候,如果某種返回不符合預期的時候,就需要告警上報監控(比如插入數據庫返回跟預期插入條數不一致)。

又或者是你刷數失敗,需要包這個異常日志打印出來,并且上報監控(比如普羅米修斯,和企業微信通知)。比如這塊代碼:

try{
    flushService.flushDataCustomerLevel(customerNo);
}catch(Exception e){
  Logger.error("flush customer data fail: {}", customerNo, e);
  prometheusMonitor.report("刷數失敗",customerNo);
  notify();
  weChatWorkSend();
}

9. 數據量大的時候,最好壓測

如果你刷的數據量很大的時候,最好做壓測。壓測通常包括模擬多種負載情況,以確保系統在不同條件下都能正常運行。

做刷數任務壓測,主要考慮這幾方面:

  • 數據量:使用大量數據進行測試,以確保系統在處理大規模數據時的性能。這可以包括數據量的增長、查詢和寫入的吞吐量等。
  • 網絡延遲和吞吐量:在模擬網絡延遲和限制吞吐量的情況下進行測試,以了解系統在這些條件下的表現。
  • 錯誤處理:引入模擬的錯誤場景,例如數據庫連接中斷、請求超時等,以驗證系統對錯誤的處理能力。

刷數壓測的好處:

圖片圖片

  • 性能評估:壓測可以幫助評估系統在處理大量數據時的性能。通過模擬真實負載,可以更好地了解系統的響應時間、吞吐量和資源利用情況。
  • 容量規劃:通過壓測,可以更好地了解系統在不同負載條件下的容量需求。這有助于進行容量規劃,確保系統能夠應對未來的增長。
  • 發現潛在問題:壓測可以幫助發現系統中可能存在的潛在問題,如內存泄漏、并發問題、資源瓶頸等。通過在模擬環境中發現并解決這些問題,可以避免它們在生產環境中引起嚴重后果。
  • 驗證容錯能力:壓測可以測試系統在出現錯誤、超時、網絡故障等異常條件下的容錯能力。這有助于確保系統能夠適應不可預測的情況。
  • 性能優化:壓測結果提供了性能瓶頸的線索,幫助團隊進行性能優化。通過分析性能數據,可以識別需要改進的部分并優化系統。
  • 規遇風險:通過壓測,可以更早地發現潛在的性能問題和瓶頸,有助于規遇系統上線后可能面臨的風險。

10. 實戰壓軸匯總:做一個刷數任務,如何更好保護你的系統

10.1 設置個配置時間,可以控制任務跑多長時間后終止。

有些時候,我們如果擔心刷數任務跑太久,可能會影響交易,這時候我們可以搞個配置變量,比如apollo配置變量,控制刷數多長時間后,可以停止。

10.2 循環分頁查詢,設置最大次數告警監控

我們做刷數任務的時候,經常是分頁循環掃描某個客戶/用戶表,然后一批一批出來執行刷數邏輯。比如偽代碼像這樣:

long minId
 while(true){
   List<CustomerDo> customerList =  customer.pageQueryAscID(pageSize,minId);
   flushCustomerData(customerList);
   if(customerList.size()< pageSize){
     break;
   }
   minId = customerList.get(customerList.size()-1).getId();
 }

這塊代碼,其實沒啥問題。有些時候,我們可能手抖寫錯了,可能導致死循環。

其實為了保護我們的系統,我們可以先確認下客戶有多少,然后設置個循環次數,當超過最大循環次數之后,就告警排查確認。

long minId;
 Integer maxCycleNum =1000;
 Integer cycleNum = 0;
 while(true ){
   List<CustomerDo> customerList =  customer.pageQueryAscID(pageSize,minId);
   flushCustomerData(customerList);
   if(customerList.size()< pageSize){
     break;
   }
   minId = customerList.get(customerList.size()-1).getId();
   if(cycleNum>= maxCycleNum){
    //告警
   }
   cycleNum ++;
 }

當然這只是個一種后端思路哈。

10.3 如果定時任務是xxl-job ,路由規則是什么,并發問題考慮

大家如果使用過xxl-job作為定時任務,應該抖配置過它的路由規則吧。比如是分片的,還是第一個/最后一個等等。

如果是分片的,就是多個pod都可能執行到你的業務邏輯。這時候你要考慮并發執行,你的業務是否收影響。

10.4 SQL是否命中索引,是否存在慢SQL

我們做刷數任務的時候,很多時候,都要跟SQL打交道。

我們要確保查詢、更新、或者刪除的數據量大的表,都要有索引了。要確保沒有慢SQL。

常規的我們可以用explain分析SQL,我們還可以通過壓測分析出來。

10.5 如果加了分布式鎖,鎖時間考慮

如果你是按照客戶維度刷數,加了客戶維度的分布式鎖,你要考慮鎖時間是多久,鎖時間是否可以配置(一般這種最好配置一下。)

如果你時間設置小,那這時候刷數還沒完成,鎖就超時釋放了,那不就有問題啦。

如果你時間設置過長也不太好,當然,你在刷完數,finally執行釋放鎖也可以。

finally {
    redisService.deleteKey(customerNoKey);
  }

10.6 大事務考慮,事務是否太多?是否可以拆分為小事務

我們在刷數的時候,為了保證數據的完整性和一致性,一般要求加事務的。

但是,切忌事務不要太大,我們可以把一些查詢放到事務外,把計算邏輯也放事務外,把數據庫的更新、新增、刪除操作放到事務內就好。

就是把大事務拆分為小事務。

10.7 打印耗時時間,如果時間夠長

一般來說,做刷數,盡量打印一下耗時,這樣我們可以根據日志,觀察是否有哪些問題需要及時處理的。

比如打印刷一個客戶要多久?;蛘叽蛴∫慌蛻粢嗑?,等等。

10.8 是否可以加個配置,減少掃描

有些時候,我們需要配置一定的灰度規則來支持灰度刷數。如果刷數流程是先掃描所有客戶,然后接著判斷客戶是否命中灰度。這樣每次任務執行,都會掃描客戶表。

我么可以考慮加個配置,傳特定的客戶號,根據客戶號列表,去查客戶列表,然后開始刷數邏輯,不用再全表掃描客戶表了。

10.9 是否考慮校驗邏輯

有些時候,我們沒法確認我們刷的邏輯是否正確,這時候,可以考慮是否加校驗邏輯。

你可以異步進行校驗,也可以同步校驗(當然,如果耗時不大的時候)

10.10 try...catch 包住可能的異常

如果我們是按照一個客戶維度去刷數的,你要確認A客戶刷失敗,是不是不能影響B客戶。這時候建議try...catch 包住可能的異常,這樣即有利于分析錯誤原因,又可以不不因為未知異常導致刷數中斷。

責任編輯:武曉燕 來源: 撿田螺的小男孩
相關推薦

2023-03-01 09:39:40

調度系統

2017-10-30 13:27:35

緩存代碼解決

2021-09-01 08:58:15

項目 UTFailed

2011-08-25 09:03:40

2025-01-20 00:35:00

vitestvite組件

2022-04-27 07:15:36

中臺產品微服務

2024-05-08 10:20:00

Redis分布式

2013-12-19 09:58:36

移動應用產品市場

2020-07-10 09:55:15

程序員技能開發者

2012-11-12 10:46:37

2022-10-27 10:09:59

東數西算布局

2012-09-10 14:08:40

高效率的服務臺

2014-01-26 14:24:25

開源項目

2021-04-09 09:45:33

GitOps環境應用程序

2022-04-25 15:01:07

系統程序員調度

2023-09-16 18:16:57

Python系統

2021-09-08 15:43:03

在線寫作協作文檔辦公軟件

2021-06-06 16:15:57

地區接口項目

2024-04-30 00:00:00

數倉維度建模

2021-08-03 07:40:47

宏任務微任務React
點贊
收藏

51CTO技術棧公眾號

国产日韩免费视频| 91视频免费在观看| 极品在线视频| 久久久久久久电影| 国产精品999999| 国产精品成人69xxx免费视频| 91欧美极品| 91福利在线播放| japanese在线播放| 理论视频在线| 国产成a人亚洲精品| 国产91久久婷婷一区二区| 欧美丰满熟妇bbbbbb| 伊人久久综合影院| 欧美一区二区黄色| 成人中文字幕av| 国产羞羞视频在线播放| 国产精品美女视频| 欧美激情第六页| 国产成人精品一区二三区四区五区| 欧美一级视频| 欧美高清电影在线看| 欧美波霸videosex极品| 久久大胆人体视频| 欧美一级片在线| 婷婷六月天在线| 97成人资源| 亚洲福中文字幕伊人影院| 欧美亚洲视频一区| av在线日韩国产精品| aaa亚洲精品| 91九色偷拍| 国产免费一区二区三区免费视频| 首页综合国产亚洲丝袜| 国产69久久精品成人| 九九九免费视频| 亚洲国产精品成人| www日韩欧美| 国产视频不卡在线| 九九综合在线| 亚洲美女视频网| 国产精品成人播放| 日本一区二区欧美| 狠狠色丁香久久综合频道| 亚洲最大在线视频| 少妇户外露出[11p]| 国产丝袜一区| 亚洲精品一区二区三区精华液| 国产又粗又猛大又黄又爽| 日本在线一区二区| 9191成人精品久久| 法国空姐在线观看免费| p色视频免费在线观看| 久久精品亚洲乱码伦伦中文 | 看片一区二区| 色老综合老女人久久久| 97国产精东麻豆人妻电影| av资源在线播放| 激情懂色av一区av二区av| 国产精品裸体瑜伽视频| 中文字幕人成乱码在线观看| 欧美日韩免费看| 激情网站五月天| 成人免费福利| 欧美三级欧美一级| 中文字幕免费高清在线| yiren22亚洲综合| 精品视频999| 亚洲一区二区偷拍| 一区二区在线视频观看| 亚洲国产高清高潮精品美女| 无套内谢大学处破女www小说| 色老板在线视频一区二区| 亚洲欧美中文字幕在线一区| 亚洲av成人无码久久精品| 99久久99久久精品国产片果冰| 理论片在线不卡免费观看| 国产黄色片视频| 久久久久久久欧美精品| 国产日韩av在线播放| 国产草草影院ccyycom| 不卡的av网站| 亚洲国产精品一区在线观看不卡| 在线免费观看的av网站| 亚洲欧洲制服丝袜| 久久久精品动漫| 日韩a在线看| 国产精品久久777777| 国产午夜精品视频一区二区三区| 操喷在线视频| 日本黄色一区二区| 无码人妻少妇色欲av一区二区| 久久精品66| 日韩有码片在线观看| 国产一级av毛片| 男女激情视频一区| 国产98在线|日韩| 国产剧情在线观看| 亚洲一区二区三区视频在线| 日韩欧美黄色大片| 永久免费精品视频| 最近2019中文字幕mv免费看 | 男男成人高潮片免费网站| 成人3d动漫一区二区三区91| 免费在线超碰| 亚洲精品精品亚洲| 精品视频无码一区二区三区| 爱情电影网av一区二区| 亚洲美女自拍视频| 五月婷婷一区二区| 青青草97国产精品免费观看 | 欧美四级电影在线观看| 久久人妻少妇嫩草av蜜桃| 日韩在线中文| 欧美一二三视频| www.国产麻豆| 国产精品久久毛片av大全日韩| 欧美一级免费播放| 在线观看亚洲天堂| 伊人久久一区| 亚洲人成在线观看| 日韩精品国产一区二区| 国产麻豆成人精品| 亚洲午夜精品久久久中文影院av| 国产白浆在线免费观看| 日韩一区二区三区在线观看| 99国产精品免费| 久久午夜av| 久久青青草原一区二区| 久操av在线| 欧美一区二区三区公司| 国产三级黄色片| 肉肉av福利一精品导航| 久久久久高清| 123区在线| 日韩免费观看高清完整版| frxxee中国xxx麻豆hd| 天堂成人国产精品一区| 精品国产乱码久久久久久88av| 污污片在线免费视频| 9191成人精品久久| 91香蕉一区二区三区在线观看| 日本特黄久久久高潮| 日本在线观看一区二区| 中文在线最新版地址| 日韩精品极品在线观看播放免费视频| 国产精品白浆一区二小说| 小说区亚洲自拍另类图片专区| 国产成人精品在线播放| 精品推荐蜜桃传媒| 91成人国产精品| 久久久久久国产免费a片| 首页欧美精品中文字幕| 性刺激综合网| 欧美性www| 久久精品视频播放| h狠狠躁死你h高h| 一区二区在线观看视频| 国产亚洲精品成人a| 亚洲激情国产| 久久久久久久久一区| 久久uomeier| 在线精品高清中文字幕| 国产精品国产一区二区三区四区 | 欧美日韩午夜电影网| 欧美大片在线看免费观看| 性生活免费网站| 国产视频手机在线| 亚洲欧美另类久久久精品2019| 捷克做爰xxxⅹ性视频| 最新精品国产| 国产区二精品视| 亚洲女同av| 中文字幕亚洲欧美日韩高清 | 欧美mv日韩mv国产网站app| 国产性生活网站| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲已满18点击进入久久| 日本不卡视频一区| 高清电影一区| 国产精品美女视频| 永久免费黄色片| 黑人一区二区| 欧美午夜欧美| 亚洲国产精选| 国内精品久久久| 经典三级在线| 制服丝袜亚洲色图| 国产福利拍拍拍| 中文一区在线播放| 99免费观看视频| 日本伊人午夜精品| 国产成人艳妇aa视频在线 | 国产十六处破外女视频| 99久久免费国产| av中文字幕网址| 亚洲国产清纯| 在线免费观看成人网| 久草精品视频| 国产在线久久久| 涩涩视频网站在线观看| 久久亚洲影音av资源网| 精华区一区二区三区| 精品国产人成亚洲区| 一级片视频网站| 日韩欧美在线视频免费观看| 91插插插插插插| 国产日韩精品一区二区三区 | 国产色综合久久| 人妻 丝袜美腿 中文字幕| 美女视频一区在线观看| 日韩欧美在线播放视频| 欧美精品国产一区二区| 亚洲色图自拍| 欧美美女在线| 久久精品日产第一区二区三区| 97色婷婷成人综合在线观看| 国产精品444| 在线女人免费视频| 久久久中文字幕| a级片国产精品自在拍在线播放| 一区二区三区 在线观看视| 少妇人妻一区二区| 欧美精品九九99久久| 国产一区二区视频免费| 欧美日韩一区二区在线播放| 国产亚洲色婷婷久久99精品| 亚洲欧美日韩国产另类专区| 一二三四在线观看视频| 欧美经典一区二区三区| 欧美做受xxxxxⅹ性视频| av电影一区二区| 亚洲天堂2024| 成人高清视频在线| 国产乱淫av片| 成人免费毛片aaaaa**| 欧美日韩久久婷婷| 免费在线观看不卡| www欧美激情| 美女国产一区二区三区| 国产一级做a爰片久久| 奇米精品一区二区三区在线观看| 成人午夜激情av| 日本欧美一区二区| 日本久久久久久久久久久久| 日本91福利区| 国产视频1区2区3区| 麻豆精品一区二区三区| 不卡的av中文字幕| 精品一区二区av| 午夜影院免费观看视频| 国产精品资源在线看| 国产又粗又猛又爽又黄| 国产在线精品国自产拍免费| 亚洲精品国产久| 国产成人一级电影| 中文字幕人妻一区| 99re热这里只有精品免费视频 | 亚洲美女福利视频| 精品美女被调教视频大全网站| 亚洲av色香蕉一区二区三区| 亚洲福利视频二区| 国内精品在线视频| 色狠狠久久aa北条麻妃| 18视频在线观看网站| 久久久天堂国产精品女人| 筱崎爱全乳无删减在线观看 | 亚洲男人天堂网址| 欧美裸体bbwbbwbbw| 99热精品在线播放| 亚洲大胆美女视频| 久久这里精品| 久久精品国产一区二区三区| xxx性欧美| 国产精品av电影| 精品视频在线观看免费观看| 国产精品久久久久久久久婷婷| 天天操综合520| 亚洲欧洲精品一区二区三区波多野1战4| 91亚洲自偷观看高清| 黄色一级片在线看| 日日夜夜免费精品| 亚洲丝袜在线观看| 久久众筹精品私拍模特| 欧美色视频一区二区三区在线观看| 一区二区三区在线视频观看 | 51av在线| 国产日韩欧美自拍| 欧美黑白配在线| 亚洲一卡二卡三卡| 伊人久久亚洲热| 污版视频在线观看| 成人高清av在线| 婷婷国产成人精品视频| 精品国产成人av| 国产精品羞羞答答在线| 日韩精品在线播放| 亚洲精品天堂| 国产精品久久久久久久久男| 国产精品2023| 一区二区三区欧美在线| 亚洲综合不卡| 欧美图片自拍偷拍| 亚洲欧美一区二区在线观看| 久久久久久久久久久影院| 欧美一卡在线观看| av在线首页| 日本电影亚洲天堂| 一区二区高清不卡| 久久久久久一区二区三区 | 国产伦精品一区二区三区照片91| 极品美女一区二区三区| 日本a在线免费观看| 国产一区高清在线| 懂色av粉嫩av浪潮av| 色综合一个色综合亚洲| 日本精品一二区| 久久不射电影网| 精品久久99| 日韩福利二区| 性欧美videos另类喷潮| 69xxx免费视频| 一区二区三区四区在线播放| 中文字幕久久久久| 亚洲午夜av久久乱码| 欧美在线极品| 国产美女精品在线观看| 欧美伊人久久| 国产女同无遮挡互慰高潮91| 中文字幕不卡一区| 99re国产在线| 国产一区二区三区精品久久久| 午夜伦理福利在线| 精品一区久久久| 在线视频亚洲| 中文字幕影片免费在线观看| 亚洲aⅴ怡春院| 欧美熟女一区二区| 国内精品一区二区三区| 国产精品x8x8一区二区| 人妻激情偷乱视频一区二区三区| 国产精品99久| 永久免费看mv网站入口| 欧美日一区二区三区在线观看国产免| 免费看日本毛片| 成人精品视频一区| 精品无码黑人又粗又大又长| 日韩一区二区中文字幕| 国产在线激情视频| 成人免费看黄网站| 一区二区三区四区在线观看国产日韩| 欧美一级视频在线| 亚洲视频一区二区在线| 国产精品免费无遮挡| 久久亚洲欧美日韩精品专区| 欧美2区3区4区| www.国产二区| 成人不卡免费av| 伊人手机在线视频| 亚洲人成网站999久久久综合| 亚洲www啪成人一区二区| 亚洲精品中文综合第一页| 狠狠色丁香久久婷婷综| 久久久99精品| 亚洲欧美日韩成人| 国产精品第一| 国产在线无码精品| 99国产精品久久久久久久久久久| 国产午夜免费福利| 中文字幕亚洲字幕| 久久久久亚洲精品中文字幕| www.射射射| 久久久久国产精品麻豆ai换脸| 在线免费看91| 色综合天天综合网国产成人网| 日韩av字幕| 性生活免费在线观看| 亚洲黄网站在线观看| 亚洲欧美日韩免费| 国产情人节一区| 亚洲福利专区| 久久久国产一级片| 精品免费日韩av| 国产成人免费9x9x人网站视频| 视色,视色影院,视色影库,视色网| av亚洲精华国产精华| 中文字幕网址在线| 久久久久久久国产精品视频| 精品美女久久久| 极品白嫩的小少妇| 欧美综合色免费| 美女精品导航| 亚洲精品二区| 99精品热视频| 国产精品欧美久久久久天天影视| 亚洲91精品在线| 888久久久| 欧美狂猛xxxxx乱大交3| 欧美大片在线观看一区二区| 精品视频在线一区二区在线|