故事的開頭,是一個深夜, 窗外漆黑一片,屋里燈火通明。
辦公室里,寸頭短發(fā)的IT男們列坐兩邊,中間一兩個妹子分外顯眼。
空氣里充斥著緊張的氣氛,大家緊鎖眉頭,盯著電腦,表情異常嚴(yán)肅,深更半夜,這群人是誰,在干嘛?
原來他們是長亮科技大數(shù)據(jù)團(tuán)隊(duì)駐扎在民生銀行信用卡項(xiàng)目的一組程序猿,負(fù)責(zé)該項(xiàng)目的閔工回憶起當(dāng)時的場景仍記憶猶新:
2020年4月,我們的項(xiàng)目團(tuán)隊(duì)接到了民生銀行卡中心的緊急需求——在2020年6月16日上線中國民生銀行信用卡中心夢想值引擎項(xiàng)目。
夢想值是啥?說白點(diǎn)就類似于積分的作用,用戶在民生銀行信用卡APP中通過做任務(wù)可以獲得夢想值,再用夢想值兌換商品。而我們負(fù)責(zé)的這個夢想值引擎項(xiàng)目主要為夢想值提供服務(wù)接口、數(shù)據(jù)處理,保證夢想值賬務(wù)的正確性。
大家掐指一算,這工期滿打滿算也只有1.5個月!而且這個項(xiàng)目對穩(wěn)定性、擴(kuò)展性、性能等方面要求都非常嚴(yán)格,同時要求7X24小時線上運(yùn)行,真的是時間太緊了,任務(wù)太重了!
怎么辦?在長亮科技技術(shù)寶寶的字典里就沒有“不可能”這仨字兒,那就擼起袖子加油干吧。
本來一切都在緊張有序的推進(jìn)中,感覺盡在掌握,直到民生銀行信用卡測試團(tuán)隊(duì)進(jìn)行集成測試。
那是6月10日,民生測試團(tuán)隊(duì)發(fā)現(xiàn)有時夢想值未能正常調(diào)增。
看到這個現(xiàn)象,我心里咯噔一下,做這行,大家都知道夢想值的正確性是整個項(xiàng)目的根基!如果在生產(chǎn)上出現(xiàn)該問題,很難在短時間內(nèi)解決,后果將十分嚴(yán)重!
但距離項(xiàng)目正式上線只剩6天,我的心緊繃起來,心里只剩下一個念頭,一定要快速找出原因,解決這個問題!
但這個BUG最大的問題不在于它有多難解決,而在于它是偶然性的,會不會復(fù)現(xiàn)、什么時候復(fù)現(xiàn)都不知道,根本無法準(zhǔn)確定位。
我們項(xiàng)目組立即開會,向測試團(tuán)隊(duì)了解測試場景,猜測可能的各種原因。
老韓說:會不會是網(wǎng)絡(luò)問題,網(wǎng)絡(luò)有抖動?
老劉說:是不是上游提供消息有遺漏或者消費(fèi)消息有錯誤?調(diào)整夢想值出現(xiàn)問題?
云云說:會不會是redis什么地方出現(xiàn)了問題?
還有人猜測kafka、mysql、hbase或……出現(xiàn)什么問題?
你一言我一語,經(jīng)過一番最大化的發(fā)散討論后,我們達(dá)成一致,考慮到BUG的不確定性,決定采用雖然最耗時但卻是最穩(wěn)妥的排查方案,從最源頭開始逐步分段進(jìn)行排查,分析各種日志及監(jiān)控源碼。于是便出現(xiàn)了開頭的那一幕,大家都在緊張地進(jìn)行排查,嚴(yán)陣以待,尋找BUG所在。
時間一分一秒過去,凌晨1點(diǎn),項(xiàng)目組基本定位了問題來源,原來是因?yàn)橥毁~號相關(guān)的多條消息放入kafka,在調(diào)用調(diào)增接口后,第一條消息獲取redis鎖后短時間不釋放,而其他消息跳過等待期直接返回,導(dǎo)致這些消息丟失。
定位了問題,大家心里都稍微松了一口氣,但絲毫不敢懈怠,立即分頭行動,云云用自己半吊子的英文加上翻譯軟件開始翻英文版的redis官方手冊,老劉、老韓則分頭查找redis鎖機(jī)制、鎖原理,鎖控制實(shí)現(xiàn)代碼,大家緊密配合。
凌晨3點(diǎn),云云終于從官方手冊找到解決方案。我們將源代碼修改(將redis鎖的等待時間設(shè)置為10s,將鎖的超時時間設(shè)置為20s)并自測完成后,立即提交行方專業(yè)測試團(tuán)隊(duì),最終回歸測試成功,BUG完美解決,直到這一刻,大家懸著的那顆心才真正落了下來。
奮戰(zhàn)一晚,我們卻困意全無,心中充滿了苦戰(zhàn)一場、大獲全勝的痛快,離開項(xiàng)目組已是凌晨4點(diǎn)多,新的一天即將到來。
6月16日,終于迎來了該項(xiàng)目成功上線,不僅完美頂住了616活動峰值壓力,也展現(xiàn)出了優(yōu)越的性能,我們項(xiàng)目組獲得了行方相關(guān)領(lǐng)導(dǎo)的高度表揚(yáng),對我們來說,這不僅是對長亮科技項(xiàng)目服務(wù)能力的認(rèn)可,更是對我們長亮人拼搏精神的一種認(rèn)可!
后續(xù):
后來小編再次問閔工,在這次事件中,讓他印象最深的是什么。他說:那肯定是我們的組員齊心協(xié)力,共同戰(zhàn)勝困難的樣子呀,那一刻大家沒有一個人有情緒、有抱怨,忘記時間、忘記疲倦,只是單純地奔著問題、解決問題,這也是大家最美的樣子……
柴靜在《看見》里面曾說:“每一個微笑的背后,都有一個咬緊牙關(guān)的靈魂。”