12 月31 日返利系統問題覆盤

2022-09-08 06:06:17 字數 2036 閱讀 6914

針對 12 月31 日返利系統問題覆盤如下:

12 月 31號 返利系統費用單未及時傳送結算,導致結算無法及時計算,導致後續流程無法進行。。

12 月 31 號,下午 5 點半左右業務人員反映有兩百多萬個費用明細已審核,但未收取。經查詢,返利已審核後已經傳送結算系統,然後跟結算收取後已經推送 mq 給返利,此時開始排查接收結算通知的 mq 部分,發現大量費用單明細重複消費問題(約有 60 w 明細重複消費),進一步檢視每次消費 10 條明細訊息,存在不少處理時間超過 1 min 的(原消費端返回 ack 確認給 mq server 的最大超時等待時間為 30s)從而造成了 mq server 未收到 ack 確認,導致重**送,形成惡性迴圈。當時 18:05 左右開始修改 mq ack timeout 時間為 5min,先確保不會發生大量重**送問題。

操作步驟:關閉匯入任務,kill 計算任務,k8s 重新拉起服務(在這個過程中 2020-12-31 18:08:04 業務人員恰好正在進行費用單批量審核,這也是後面部分費用明細未進入 fee_send 表的原因)。

改完配置,重啟服務之後,檢視日誌,發現過了大概 1 min 左右,重複消費的訊息基本不再出現了,開始處理正常消費了,此時處理的訊息費用單和退補單都有,更新處理時間 50~60 ms)

19:36 業務人員反映還是未收到費用單已收取,當時懷疑是訊息量多大,重啟之後先是進行重複訊息的消費,排在前面的傳過來的大部分又是退補單,所以費用單應該是排在後面的,估計還要處理一會兒。

當時跟結算確認了一下,一共推送了大約有 50w 個訊息 ,對應明細個數為 500w。消費端此時處理了大約 100w 左右的明細。

晚上 21:15 左右大約處理了 210w 明細訊息。

21:05 到 10:10 左右消費了 15 w 訊息,對應明細大約 150w,到 10:10 左右一共消費了大約 36w 條訊息,對應明細約 360w 條,原以為此時以現在的速度到 12 點之前剩下的 150w 左右明細能消費完,但是後來又慢了下來,

11 點多加了四台機器,一共 10 臺機器發現處理速度時快時慢(後面排查,快的原因是因為部分是費用單對應的明細較少,還有一部分是退補單明細少的部分,慢的原因是退補單明細多的部分),

凌晨 12 點多,排查出來可能是因為在 update 退補單明細的收取狀態的時候沒有加聯合索引的原因導致的。加上聯合索引後,到 12:40 左右全部消費完畢。

後來仔細分析後,整個消費過程中處理快的原因是因為費用單對應的明細較少,update 操作根據 費用單號 headno 單值索引獨佔鎖鎖的行數較少,所以費用單號和退補單號對應的明細較少的 update 就比較快,相反明細較多的,每次 update 更新資料庫行鎖鎖的行數就比較多,這就是造成消費速度慢的根本原因。

以上就是 2020 年 12 月 31 號年度收官出現 mq queue 堵的整個問題的經過。

1 月 2 號發現返利傳給結算的資料缺失。

問題發生的原因及處理過程:

發生原因:12 月 31 號下午六點左右修改 mq 配置後重啟服務時,已經確定關係費用單匯入入口,但是恰巧財務此時正在批量審核費用單,批量審核費用單主要涉及到兩個操作。

第一步,更新 fee_head 表狀態為「已審核」。

第二步,將已審核的費用單對應的明細組裝資料後非同步插入到 fee_send 表。

第三步:定時任務每隔 15 分鐘將 fee_send 表中已審核的費用單明細傳給結算。

發生資料不一致的根本原因是,在第二步中,插入到 fee_send 表操作是非同步的。

1 月 2 號將 12 月 31 號重啟服務過程中正在發生批量審核的涉及到未傳送到結算系統的 29425 條費用明細臨時寫**,將所有缺失明細全部補推到結算系統。

以上就是元旦返利系統出現的問題,以及處理方法。

對於以上問題,返利在接下來如何避免以上問題的解決方案:

1.消費已收取的退補和費用問題的根本原因已經找到,現已對所有涉及到的費用單明細和退補單明細加上聯合索引,徹底解決了消費慢的問題。

2.對於系統突然 crash 或重啟可能會導致的審核費用單和退補單插入 fee_send 表資料丟失的部分,由於費用單和退補單涉及到的明細可能比較多,所以不能採取同步的方式插入(效能較差,開始採用非同步的方式也是為了避免效能的問題)。

2023年12月31日播出《羋月傳

2015年12月31日播出 羋月傳 裡的養胃方 北京衛視養生堂 羋月傳 裡的養胃方 專家 陳明 北京中醫藥大學教授 主任醫師 羋月傳 所處歷史時期,中醫中藥真實的發展狀況究竟如何?劇中提到的諸多草藥是否確有奇效?哪些可以沿用至今?又根據不同人群的體質 證型,在使用和配伍上有什麼講究?相聲演員李然因為...

藍橋杯 2023年12月31日 關於

問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案是要求fn除以10...

百度網盤青春版預計將在12月31日完成產品上線

程式設計客棧 www.cppcns.co 12月21日 訊息 11 程式設計客棧月 17 日,工信部組織網盤 騰訊微雲 天www.cppcns.com翼雲盤 和彩雲 阿里雲盤 迅雷雲盤 360 安全雲盤和網易網盤等首批 8 家網盤企業在京共同簽署 個人網盤服務業務使用者體驗保障自律公約 承諾 202...