记一次重大的生产上线事故,借此反思成长
目錄
寫在前面
生產(chǎn)上線出現(xiàn)問(wèn)題
問(wèn)題1:logger日志沒(méi)打印報(bào)錯(cuò)信息
問(wèn)題2:日志打印不全的問(wèn)題
問(wèn)題3:equals報(bào)空指針問(wèn)題
問(wèn)題4:還是空指針問(wèn)題
問(wèn)題5:json報(bào)文字段上送有誤
問(wèn)題6:微服務(wù)配置問(wèn)題
問(wèn)題7:上線問(wèn)題
問(wèn)題8:代碼的可讀性
寫在最后
加油,打工人
寫在前面
? ? 畢業(yè)兩年,一直都是做的一些小型的管理系統(tǒng),對(duì)于真正的互聯(lián)網(wǎng)大項(xiàng)目接觸的很少,基本上只有在自己學(xué)習(xí)的時(shí)候才能接觸到。
? ? 自認(rèn)為自己掌握的技術(shù)已經(jīng)足夠了,可是,最近這堂課,真的是結(jié)結(jié)實(shí)實(shí)的讓我明白了,其實(shí)技術(shù)只是其中一回事,經(jīng)驗(yàn)真的非常重要。
? ? 但是最最重要的,還是自己的態(tài)度,自己的認(rèn)真和仔細(xì)。
生產(chǎn)上線出現(xiàn)問(wèn)題
? ?項(xiàng)目開發(fā)完了,是springcloud的項(xiàng)目,因?yàn)樽约哼@種互聯(lián)網(wǎng)的項(xiàng)目接觸的的確比較少,所以生產(chǎn)出現(xiàn)了很多問(wèn)題。
問(wèn)題1:logger日志沒(méi)打印報(bào)錯(cuò)信息
log.error("sftp上傳文件失敗"); 以上代碼有沒(méi)有出現(xiàn)在你的項(xiàng)目中?如果有,就需要反思一下了。 這種日志打印是不會(huì)打印報(bào)錯(cuò)的堆棧信息的!!出現(xiàn)問(wèn)題連找都不知道從哪找!并且只是一串光禿禿的文字打印,到時(shí)候生產(chǎn)日志一堆,從哪里找你的日志? 以下是調(diào)整: log.error("id為{}的任務(wù)sftp上傳文件失敗", id, e);問(wèn)題2:日志打印不全的問(wèn)題
日志打印是非常重要的,這是測(cè)試、生產(chǎn)查找和定位問(wèn)題的關(guān)鍵。
日志一定要在關(guān)鍵位置打,并且攜帶時(shí)間、流水號(hào)、提示信息。
這樣查找問(wèn)題一定會(huì)事半功倍!
問(wèn)題3:equals報(bào)空指針問(wèn)題
String name = student.getName(); if(name.equals("張三")){ //xxx }如上代碼貌似看起來(lái)也沒(méi)什么問(wèn)題。但是!name如果是null的話,就不可避免的出現(xiàn)空指針了。
以下是調(diào)整:
String name = student.getName(); if("張三".equals(name)){ //xxx }問(wèn)題4:還是空指針問(wèn)題
空指針問(wèn)題一定要嚴(yán)防!一定要控制在任何可能出現(xiàn)空指針的地方做好判斷!
尤其是string字符串操作的時(shí)候,一定要謹(jǐn)慎謹(jǐn)慎!
問(wèn)題5:json報(bào)文字段上送有誤
有的字段,比如說(shuō)職業(yè),有的接口是枚舉值(0、1、2等),有的接口就是漢字,一定要確認(rèn)確認(rèn)再確認(rèn)!
有的字段,還是拿職業(yè)來(lái)說(shuō),如果送的是漢字,結(jié)果自己理解成枚舉值,結(jié)果落庫(kù)時(shí)字段長(zhǎng)度設(shè)置少了,就會(huì)報(bào)數(shù)據(jù)庫(kù)的錯(cuò)。
還有,報(bào)文字段一定要一一對(duì)應(yīng)好,這個(gè)字段該送什么,那個(gè)字段該送什么,不明白的一定要問(wèn),不要怕打擾別人。畢竟不管怎么樣總比生產(chǎn)出問(wèn)題強(qiáng)。
問(wèn)題6:微服務(wù)配置問(wèn)題
因?yàn)轫?xiàng)目使用微服務(wù),所以有多個(gè)微服務(wù),導(dǎo)致配置量增多。
每次上線都要檢查很多配置項(xiàng),其中如果不夠仔細(xì)就會(huì)遺漏。所以,每次開發(fā)的時(shí)候,一定要隨手將自己要添加、修改的配置項(xiàng)進(jìn)行記錄,上線的時(shí)候做好充分檢查。
問(wèn)題7:上線問(wèn)題
因?yàn)殚_發(fā)人員和上線人員畢竟不是同一個(gè)人,所以上線文檔要寫的詳細(xì)詳細(xì)再詳細(xì)!
其中有一項(xiàng)不詳細(xì),就很容易造成生產(chǎn)事故!
問(wèn)題8:代碼的可讀性
代碼的可讀性很重要。可以參考(重構(gòu)-改善既有的代碼設(shè)計(jì)),這本書雖然比較古老,但是讀完之后真的對(duì)我受益良多,強(qiáng)力推薦!
寫在最后
不管是代碼出現(xiàn)bug、生產(chǎn)出現(xiàn)問(wèn)題,第一件事永遠(yuǎn)不是想著要甩鍋。
是自己的問(wèn)題就要勇于承擔(dān),但是最最重要的就是,要時(shí)刻進(jìn)行反思與總結(jié)。
出現(xiàn)問(wèn)題不可怕,可怕的是一錯(cuò)再錯(cuò)不知悔改!
加油,打工人
總結(jié)
以上是生活随笔為你收集整理的记一次重大的生产上线事故,借此反思成长的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql登录、导入导出、用户权限、事务
- 下一篇: 记一次生产事故-mysql执行updat