提高系統(tǒng)穩(wěn)定性-兼容性

前言

兼容性一直是個很隱秘的問題, 在配備良好的研發(fā)流程和人員的情況下, 在大流量系統(tǒng)中兼容性問題仍然會偶爾出現(xiàn), 直接原因在于兼容性的測試復(fù)雜性, 隱蔽性, 需要考慮新舊代碼共存的兼容性關(guān)系, 所以這里梳理了一些情況, 下一篇會整理一些常用的解決問題的方法, 大家還有要分享的情況可以私聊指導(dǎo)我一下

兼容性場景

接口兼容性:

修改/刪除現(xiàn)有出入?yún)⒆侄?/p>

字段類型: 比如原來的字段是 String 類型, 代表著支付金額, 結(jié)果我們把這個字段的類型變成了 BigDecimal, 結(jié)果因序列化框架的配置原因, 把 23.001 序列化成了 23.00, 導(dǎo)致支付金額不正確

字段格式: 比如可還款金額原來是 1000.00 這種, 后來我們將字段格式變?yōu)榱?1,000.00, 調(diào)用我們系統(tǒng)使用 new BigDecimal() 時候就會瘋狂報錯

字段含義: 這個就是原來這個字段代表利息, 后來將這個字段代表罰息, 會造成系統(tǒng)的混亂

驗證要求: 比如使用了 @Length(min=10,max=100) 注解到了 userName 字段, 后面感覺長度 100 太長啦, 改為了 50, 結(jié)果出現(xiàn)了一個 50+ 的人名, 就會造成調(diào)用方系統(tǒng)報錯

修改/刪除老的接口方法

修改 http 方式: 本來是 put, 改為了 post 方式, 這樣一來這個接口的調(diào)用方就會因為找不到這個接口而報錯

修改出入?yún)? 效果同修改字段的相關(guān), 在加上比如有個入?yún)?aaa, 感覺沒人用的就刪除了, 調(diào)用方用到這個字段也會報錯或者效果不一致

修改接口名稱: 這樣一來這個接口的調(diào)用方就會因為找不到這個接口而報錯

存儲兼容性:

緩存兼容性

序列化方式: 一般使用緩存框架都有一種序列化方式, json 或者 string 這種, 如果改了序列化方式為 json, 而生產(chǎn)上的數(shù)據(jù)目前是 string 類型的, 就會導(dǎo)致報錯, 如果此時沒做緩存報錯的弱依賴, 就會導(dǎo)致大的問題

數(shù)據(jù)格式: 原來緩存進去的是 Order, 后來這個程序作了擴展, 緩存進去是是 List<Order> 就會在發(fā)布的時候因為讀取之前的數(shù)據(jù)而引發(fā)報錯

數(shù)據(jù)庫兼容性

字段的修改/刪除也參考第一段的影響, 比如用枚舉接收數(shù)據(jù)庫字段, 結(jié)果新的數(shù)據(jù)增加了枚舉 A, 這個時候應(yīng)用代碼還沒有部署最新的版本, 就會造成程序報錯

新增字段歷史數(shù)據(jù)問題: 新增的字段如果有默認(rèn)值一般可以沒問題, 要是沒有默認(rèn)值應(yīng)用程序?qū)用婵赡軙罂罩羔樀葐栴}

異步消息的兼容性:

生產(chǎn)者修改刪除字段, 可能有舊的消費者代碼依賴相應(yīng)字段, 所以刪除了會導(dǎo)致消費異常

注冊中心的兼容性:

當(dāng)使用分布式中間件等切換注冊中心需要考慮發(fā)布過程中一組機器用舊的注冊中心, 一組用新的, 可能導(dǎo)致分布式鎖失效, 服務(wù)找不到等異常

日志的兼容性:

可能有些字段用來生成監(jiān)控指標(biāo)和報警, 可能由于日志框架或者日志格式的變化導(dǎo)致報警失效或者指標(biāo)計算錯誤等, 需要考慮日志的兼容性

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斤寂,一起剝皮案震驚了整個濱河市币他,隨后出現(xiàn)的幾起案子蕾总,更是在濱河造成了極大的恐慌活鹰,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搂赋,死亡現(xiàn)場離奇詭異劫哼,居然都是意外死亡划乖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門昼捍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來识虚,“玉大人,你說我怎么就攤上這事妒茬〉4福” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵乍钻,是天一觀的道長肛循。 經(jīng)常有香客問我,道長银择,這世上最難降的妖魔是什么多糠? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮浩考,結(jié)果婚禮上夹孔,老公的妹妹穿的比我還像新娘。我一直安慰自己析孽,他們只是感情好搭伤,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袜瞬,像睡著了一般怜俐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吞滞,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天佑菩,我揣著相機與錄音盾沫,去河邊找鬼。 笑死殿漠,一個胖子當(dāng)著我的面吹牛赴精,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播绞幌,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼蕾哟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了莲蜘?” 一聲冷哼從身側(cè)響起谭确,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎票渠,沒想到半個月后逐哈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡问顷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年昂秃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杜窄。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡肠骆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出塞耕,到底是詐尸還是另有隱情蚀腿,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布扫外,位于F島的核電站莉钙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏筛谚。R本人自食惡果不足惜胆胰,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望刻获。 院中可真熱鬧蜀涨,春花似錦、人聲如沸蝎毡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沐兵。三九已至别垮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間扎谎,已是汗流浹背碳想。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工烧董, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胧奔。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓逊移,卻偏偏與公主長得像,于是被迫代替她去往敵國和親龙填。 傳聞我的和親對象是個殘疾皇子胳泉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容