日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

架構(gòu)重構(gòu)秘籍:第一式對癥下藥

來源: 責(zé)編: 時間:2024-05-20 17:52:52 144觀看
導(dǎo)讀系統(tǒng)架構(gòu)是一個不斷演化的過程。雖然有時少部分架構(gòu)演化可能需要徹底推倒重寫,但大多數(shù)情況下,架構(gòu)演化是通過架構(gòu)重構(gòu)來實現(xiàn)的。相比全新的架構(gòu)設(shè)計,架構(gòu)重構(gòu)對架構(gòu)師提出了更高的要求,主要體現(xiàn)在以下幾個方面:業(yè)務(wù)已上線

系統(tǒng)架構(gòu)是一個不斷演化的過程。雖然有時少部分架構(gòu)演化可能需要徹底推倒重寫,但大多數(shù)情況下,架構(gòu)演化是通過架構(gòu)重構(gòu)來實現(xiàn)的。相比全新的架構(gòu)設(shè)計,架構(gòu)重構(gòu)對架構(gòu)師提出了更高的要求,主要體現(xiàn)在以下幾個方面:LcP28資訊網(wǎng)——每日最新資訊28at.com

業(yè)務(wù)已上線

在架構(gòu)重構(gòu)過程中,業(yè)務(wù)已經(jīng)在線運行,這意味著重構(gòu)需要在保證業(yè)務(wù)持續(xù)發(fā)展的同時完成架構(gòu)調(diào)整,類似于“給飛行中的波音747換引擎”。相比之下,新架構(gòu)設(shè)計在業(yè)務(wù)尚未上線時進行,即使出現(xiàn)問題對業(yè)務(wù)的影響也較小。LcP28資訊網(wǎng)——每日最新資訊28at.com

關(guān)聯(lián)方眾多

架構(gòu)重構(gòu)涉及多個業(yè)務(wù)關(guān)聯(lián)方,各方資源投入、業(yè)務(wù)發(fā)展速度和對架構(gòu)問題的敏感程度各不相同。如何減少對關(guān)聯(lián)方的影響,或者協(xié)調(diào)各方共同行動,是一項挑戰(zhàn)。新架構(gòu)設(shè)計在上線前對關(guān)聯(lián)方?jīng)]有影響。LcP28資訊網(wǎng)——每日最新資訊28at.com

舊架構(gòu)的約束

架構(gòu)重構(gòu)必須在舊架構(gòu)基礎(chǔ)上進行,這是一個約束,會限制架構(gòu)師的技術(shù)選擇。新架構(gòu)設(shè)計中,架構(gòu)師的技術(shù)選擇范圍更廣。LcP28資訊網(wǎng)——每日最新資訊28at.com

數(shù)據(jù)轉(zhuǎn)換

即使完全推倒重來設(shè)計新架構(gòu),新架構(gòu)也會受到舊架構(gòu)的約束和影響,因為業(yè)務(wù)在舊架構(gòu)上產(chǎn)生的數(shù)據(jù)不能重來。新架構(gòu)必須考慮如何將舊架構(gòu)產(chǎn)生的數(shù)據(jù)轉(zhuǎn)換過來。LcP28資訊網(wǎng)——每日最新資訊28at.com

綜合能力要求

架構(gòu)重構(gòu)對架構(gòu)師的綜合能力要求很高。他們需要說服產(chǎn)品經(jīng)理暫緩或暫停業(yè)務(wù),與其他團隊達成一致的架構(gòu)重構(gòu)計劃和步驟,提出讓技術(shù)團隊認(rèn)可的重構(gòu)方案。因此,架構(gòu)師需要在業(yè)務(wù)、團隊和技術(shù)方面具備廣泛的能力。LcP28資訊網(wǎng)——每日最新資訊28at.com

通常情況下,當(dāng)系統(tǒng)架構(gòu)無法滿足業(yè)務(wù)發(fā)展時,會出現(xiàn)一系列問題。這些問題可能表現(xiàn)為系統(tǒng)響應(yīng)緩慢、數(shù)據(jù)錯誤、部分用戶訪問失敗等輕微情況,嚴(yán)重時可能導(dǎo)致系統(tǒng)宕機、數(shù)據(jù)庫癱瘓、數(shù)據(jù)丟失,或者系統(tǒng)開發(fā)效率低下。LcP28資訊網(wǎng)——每日最新資訊28at.com

起初,技術(shù)團隊可能會針對具體問題進行解決,一次又一次地應(yīng)對。然而,如果問題持續(xù)存在,可能長達數(shù)月甚至一年之久,團隊可能會開始懷疑系統(tǒng)架構(gòu)是否存在問題。這時,就會開始討論是否需要進行架構(gòu)重構(gòu)。一旦確定需要重構(gòu)架構(gòu),架構(gòu)師將領(lǐng)導(dǎo)架構(gòu)重構(gòu)的分析和實施。LcP28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)架構(gòu)師開始進行架構(gòu)重構(gòu)分析時,往往會感到如同進入了一個迷霧森林,到處都是問題,每個問題都需要解決,讓人感到無從下手。有些架構(gòu)師會開始收集系統(tǒng)當(dāng)前存在的問題,并匯總成一個長達100行的Excel表格。看到這樣的表格,他們會感到困惑:這么多問題,要解決完需要花費很長時間啊!LcP28資訊網(wǎng)——每日最新資訊28at.com

然而,期望通過架構(gòu)重構(gòu)解決所有問題是不現(xiàn)實的。因此,架構(gòu)師的首要任務(wù)是從這些問題中識別出真正需要通過架構(gòu)重構(gòu)來解決的問題,并集中精力快速解決這些問題。重要的是專注于解決核心問題,而不是試圖通過架構(gòu)重構(gòu)解決所有問題。否則,團隊可能會陷入人手不足、任務(wù)繁多、頭緒混亂的境地,花費大量時間和精力,最終發(fā)現(xiàn)雖然做了很多工作,但每個問題依然存在。LcP28資訊網(wǎng)——每日最新資訊28at.com

特別是對于剛接手一個新系統(tǒng)的架構(gòu)師或技術(shù)主管來說,控制住沖動,避免過度重構(gòu)和優(yōu)化是很重要的。要避免進行攤大餅式或運動式的重構(gòu)和優(yōu)化。LcP28資訊網(wǎng)——每日最新資訊28at.com

我們來看幾個具體的重構(gòu)案例。LcP28資訊網(wǎng)——每日最新資訊28at.com

1.平臺系統(tǒng)重構(gòu):解決不合理的耦合

M 系統(tǒng)是一個后臺管理系統(tǒng),負(fù)責(zé)管理所有游戲相關(guān)的數(shù)據(jù),重構(gòu)的主要原因是因為系統(tǒng)耦合了 P 業(yè)務(wù)獨有的數(shù)據(jù)和所有業(yè)務(wù)公用的數(shù)據(jù),導(dǎo)致可擴展性比較差。其大概架構(gòu)如下圖所示。LcP28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片LcP28資訊網(wǎng)——每日最新資訊28at.com

舉一個簡單的例子:數(shù)據(jù)庫中的某張表,一部分字段是所有業(yè)務(wù)公用的“游戲數(shù)據(jù)”,一部分字段是 P 業(yè)務(wù)系統(tǒng)“獨有的數(shù)據(jù)”,開發(fā)時如果要改這張表,代碼和邏輯都很復(fù)雜,改起來效率很低。LcP28資訊網(wǎng)——每日最新資訊28at.com

針對 M 系統(tǒng)存在的問題,重構(gòu)目標(biāo)就是將游戲數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)拆分,解開兩者的耦合,使得兩個系統(tǒng)都能夠獨立快速發(fā)展。重構(gòu)的方案如下圖所示。LcP28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片LcP28資訊網(wǎng)——每日最新資訊28at.com

重構(gòu)后的效果非常明顯,重構(gòu)后的 M 系統(tǒng)和 P 業(yè)務(wù)后臺系統(tǒng)每月上線版本數(shù)是重構(gòu)前的 4 倍!LcP28資訊網(wǎng)——每日最新資訊28at.com

2. 游戲接入系統(tǒng)重構(gòu):解決全局單點的可用性問題

系統(tǒng)是游戲接入的核心系統(tǒng),一旦發(fā)生故障,將導(dǎo)致大量游戲玩家無法登錄游戲。然而,S系統(tǒng)并不具備多中心的能力,一旦主機房發(fā)生故障,整個S系統(tǒng)業(yè)務(wù)將不可用。其大概架構(gòu)如下圖所示,可以看出數(shù)據(jù)庫主庫是全局單點,一旦主庫不可用,兩個集群的寫業(yè)務(wù)都將不可用。LcP28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片LcP28資訊網(wǎng)——每日最新資訊28at.com

針對 S 系統(tǒng)存在的問題,重構(gòu)目標(biāo)就是實現(xiàn)雙中心,使得任意一個機房都能夠提供完整的服務(wù),在某個機房故障時,另外一個機房能夠全部接管所有業(yè)務(wù)。重構(gòu)方案如下圖所示。LcP28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片LcP28資訊網(wǎng)——每日最新資訊28at.com

重構(gòu)后系統(tǒng)的可用性從 3 個 9 提升到 4 個 9,重構(gòu)前最夸張的一個月有 4 次較大的線上故障,重構(gòu)后雖然也經(jīng)歷了機房交換機宕機、運營商線路故障、機柜斷電等問題,但對業(yè)務(wù)都沒有什么大的影響。LcP28資訊網(wǎng)——每日最新資訊28at.com

3.X 系統(tǒng):解決大系統(tǒng)帶來的開發(fā)效率問題

X系統(tǒng)是創(chuàng)新業(yè)務(wù)的主系統(tǒng)。在業(yè)務(wù)快速嘗試和快速發(fā)展階段,系統(tǒng)設(shè)計著重于方便操作和快速開發(fā),沒有投入太多精力和時間。許多功能都被“塞”到同一個系統(tǒng)中,導(dǎo)致現(xiàn)在已經(jīng)難以進行改動。為了實現(xiàn)新功能或業(yè)務(wù),需要花費大量時間來討論和梳理各種業(yè)務(wù)邏輯,存在踩坑風(fēng)險。X系統(tǒng)的架構(gòu)如下圖所示。LcP28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片LcP28資訊網(wǎng)——每日最新資訊28at.com

X系統(tǒng)和M系統(tǒng)在可擴展性問題上看似相似,但根本原因不同。M系統(tǒng)的可擴展性問題源于數(shù)據(jù)耦合,而X系統(tǒng)則是因為將所有業(yè)務(wù)功能集中在一個系統(tǒng)中,導(dǎo)致可擴展性不足。此外,所有功能集中在一個系統(tǒng)中也可能導(dǎo)致某個功能出現(xiàn)問題時整站不可用的情況。舉例來說,如果某個功能導(dǎo)致數(shù)據(jù)庫負(fù)載過高,整站的業(yè)務(wù)都會受到影響而變慢。LcP28資訊網(wǎng)——每日最新資訊28at.com

針對 X 系統(tǒng)存在的問題,重構(gòu)目標(biāo)是將各個功能拆分到不同的子系統(tǒng)中,降低單個系統(tǒng)的復(fù)雜度。重構(gòu)后的架構(gòu)如下圖所示(僅僅是示例,實際架構(gòu)遠比下圖復(fù)雜)。LcP28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片LcP28資訊網(wǎng)——每日最新資訊28at.com

重構(gòu)后,各個系統(tǒng)之間通過接口交互,雖然增加了接口的工作量,但整體上各系統(tǒng)的發(fā)展和開發(fā)速度比原來快了很多。系統(tǒng)也相對更加簡單,不會出現(xiàn)某個子系統(tǒng)有問題導(dǎo)致所有業(yè)務(wù)都有問題的情況。LcP28資訊網(wǎng)——每日最新資訊28at.com

回顧重構(gòu)這三個系統(tǒng)的方案,現(xiàn)在看來似乎是理所當(dāng)然的,但實際上在進行分析和決策時并不簡單。以M系統(tǒng)為例,當(dāng)時接手后遇到了許多問題:LcP28資訊網(wǎng)——每日最新資訊28at.com

  1. 數(shù)據(jù)經(jīng)常出錯。
  2. 單機系統(tǒng)宕機后所有后臺操作不能進行。
  3. 性能較差,有的操作耗時較長。
  4. 界面丑陋,操作不人性化。
  5. 代碼混亂,歷史上經(jīng)過多次轉(zhuǎn)手。
  6. 業(yè)務(wù)數(shù)據(jù)和游戲數(shù)據(jù)耦合,開發(fā)效率低下。

從這些問題中識別出重構(gòu)的目標(biāo)并不容易;要解決所有問題又需要耗費大量人力和時間!因此,架構(gòu)師需要透過問題表象看到問題本質(zhì),找出真正需要通過架構(gòu)重構(gòu)解決的核心問題,從而做到有的放矢。這對架構(gòu)師的分析和判斷能力要求非常高,不能一看到問題就想到架構(gòu)重構(gòu),也不能只是針對問題進行系統(tǒng)優(yōu)化。LcP28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)然,原來發(fā)現(xiàn)的那些非架構(gòu)重構(gòu)問題也不能放任不管。重構(gòu)完成后,我們啟動了多個優(yōu)化項目來解決這些問題,但這些優(yōu)化主要由團隊內(nèi)部完成,和其他團隊關(guān)聯(lián)較少,因此優(yōu)化速度很快。如果沒有重構(gòu)而是直接進行優(yōu)化,則每次優(yōu)化都需要拉一大堆關(guān)聯(lián)業(yè)務(wù)的團隊來討論方案,效率非常低下。LcP28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-89397-0.html架構(gòu)重構(gòu)秘籍:第一式對癥下藥

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 五種 Python 列表推導(dǎo)式妙用法

下一篇: 基于Jenkins Pipeline構(gòu)建企業(yè)級CI/CD

標(biāo)簽:
  • 熱門焦點
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價

    雖然沒有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會補貨,這一切都是為了即將到來的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機在停產(chǎn)之后
  • 6月iOS設(shè)備性能榜:M2穩(wěn)居榜首 A系列只能等一手3nm來救

    沒有新品發(fā)布,自然iOS設(shè)備性能榜的上榜設(shè)備就沒有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動,畢竟蘋果新品的發(fā)布節(jié)奏就是這樣的,一年下來也就幾個移動端新品,不會像安卓廠商,一
  • 5月iOS設(shè)備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發(fā)布的iOS設(shè)備性能榜的上榜設(shè)備并沒有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動,剛剛開始的蘋果WWDC2023,推出的產(chǎn)品也依舊是新款Mac Pro、新款Mac Stu
  • 服務(wù)存儲設(shè)計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數(shù)據(jù)從主存儲加載到KV緩存中,加速后續(xù)的訪問。在存在重復(fù)度的場景,Cache-Aside可以提升服務(wù)性能,降低底層存儲的壓力,缺點是緩存和底
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數(shù)據(jù)的地方,是數(shù)據(jù)源的一種,比如大家經(jīng)常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數(shù)據(jù),它既可以保
  • 三分鐘白話RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(消息堆積)、消費 三大塊領(lǐng)域。那接下來,我們白話一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過程。注意,如果白話中不小心提到相關(guān)代
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發(fā)者大會2023(HDC.Together)大會上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來,HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • 三星Galaxy Z Fold5今日亮相:厚度縮減但仍略顯厚重

    據(jù)官方此前宣布,三星將于7月26日也就是今天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 三翼鳥智能家居亮相電博會,讓用戶體驗更真實

    2021電博會在青島國際會展中心開幕中,三翼鳥直接把“家”搬到了現(xiàn)場,成為了展會的一大看點。這也是三翼鳥繼9月9日發(fā)布了行業(yè)首個一站式定制智慧家平臺后的
Top 主站蜘蛛池模板: 庆城县| 中阳县| 凤山县| 泊头市| 平舆县| 西安市| 东乡| 瑞丽市| 广州市| 鄂托克前旗| 宜春市| 敖汉旗| 丘北县| 汾西县| 连平县| 女性| 梓潼县| 阿克陶县| 盐亭县| 玉林市| 林芝县| 石楼县| 新竹县| 绥滨县| 洪湖市| 封开县| 屏山县| 河池市| 偃师市| 河南省| 饶平县| 调兵山市| 民和| 河池市| 屯留县| 普安县| 饶平县| 察隅县| 濉溪县| 崇信县| 冷水江市|