在线视频大香蕉

股票名稱:
民生銀行信用卡中心夢想值引擎項目背后的故事
2020-09-21
熱門標簽:

故事的開頭,是一個深夜, 窗外漆黑一片,屋里燈火通明。


在线视频大香蕉 辦公室里,寸頭短發的IT男們列坐兩邊,中間一兩個妹子分外顯眼。


在线视频大香蕉 空氣里充斥著緊張的氣氛,大家緊鎖眉頭,盯著電腦,表情異常嚴肅,深更半夜,這群人是誰,在干嘛?



原來他們是長亮科技大數據團隊駐扎在民生銀行信用卡項目的一組程序猿,負責該項目的閔工回憶起當時的場景仍記憶猶新:



2020年4月,我們的項目團隊接到了民生銀行卡中心的緊急需求——在2020年6月16日上線中國民生銀行信用卡中心夢想值引擎項目。

夢想值是啥?說白點就類似于積分的作用,用戶在民生銀行信用卡APP中通過做任務可以獲得夢想值,再用夢想值兌換商品。而我們負責的這個夢想值引擎項目主要為夢想值提供服務接口、數據處理,保證夢想值賬務的正確性。

大家掐指一算,這工期滿打滿算也只有1.5個月!而且這個項目對穩定性、擴展性、性能等方面要求都非常嚴格,同時要求7X24小時線上運行,真的是時間太緊了,任務太重了!

怎么辦?在長亮科技技術寶寶的字典里就沒有“不可能”這仨字兒,那就擼起袖子加油干吧。

本來一切都在緊張有序的推進中,感覺盡在掌握,直到民生銀行信用卡測試團隊進行集成測試。

那是6月10日,民生測試團隊發現有時夢想值未能正常調增。

看到這個現象,我心里咯噔一下,做這行,大家都知道夢想值的正確性是整個項目的根基!如果在生產上出現該問題,很難在短時間內解決,后果將十分嚴重! 

但距離項目正式上線只剩6天,我的心緊繃起來,心里只剩下一個念頭,一定要快速找出原因,解決這個問題!

但這個BUG最大的問題不在于它有多難解決,而在于它是偶然性的,會不會復現、什么時候復現都不知道,根本無法準確定位。

我們項目組立即開會,向測試團隊了解測試場景,猜測可能的各種原因。



老韓說:會不會是網絡問題,網絡有抖動?
老劉說:是不是上游提供消息有遺漏或者消費消息有錯誤?調整夢想值出現問題?
云云說:會不會是redis什么地方出現了問題?
還有人猜測kafka、mysql、hbase或……出現什么問題?


你一言我一語,經過一番最大化的發散討論后,我們達成一致,考慮到BUG的不確定性,決定采用雖然最耗時但卻是最穩妥的排查方案,從最源頭開始逐步分段進行排查,分析各種日志及監控源碼。于是便出現了開頭的那一幕,大家都在緊張地進行排查,嚴陣以待,尋找BUG所在。

時間一分一秒過去,凌晨1點,項目組基本定位了問題來源,原來是因為同一賬號相關的多條消息放入kafka,在調用調增接口后,第一條消息獲取redis鎖后短時間不釋放,而其他消息跳過等待期直接返回,導致這些消息丟失。

定位了問題,大家心里都稍微松了一口氣,但絲毫不敢懈怠,立即分頭行動,云云用自己半吊子的英文加上翻譯軟件開始翻英文版的redis官方手冊,老劉、老韓則分頭查找redis鎖機制、鎖原理,鎖控制實現代碼,大家緊密配合。

凌晨3點,云云終于從官方手冊找到解決方案。我們將源代碼修改(將redis鎖的等待時間設置為10s,將鎖的超時時間設置為20s)并自測完成后,立即提交行方專業測試團隊,最終回歸測試成功,BUG完美解決,直到這一刻,大家懸著的那顆心才真正落了下來。

奮戰一晚,我們卻困意全無,心中充滿了苦戰一場、大獲全勝的痛快,離開項目組已是凌晨4點多,新的一天即將到來。

6月16日,終于迎來了該項目成功上線,不僅完美頂住了616活動峰值壓力,也展現出了優越的性能,我們項目組獲得了行方相關領導的高度表揚,對我們來說,這不僅是對長亮科技項目服務能力的認可,更是對我們長亮人拼搏精神的一種認可!


后續:

后來小編再次問閔工,在這次事件中,讓他印象最深的是什么。他說:那肯定是我們的組員齊心協力,共同戰勝困難的樣子呀,那一刻大家沒有一個人有情緒、有抱怨,忘記時間、忘記疲倦,只是單純地奔著問題、解決問題,這也是大家最美的樣子……


柴靜在《看見》里面曾說:“每一個微笑的背后,都有一個咬緊牙關的靈魂。”