技術(shù)架構(gòu)的目標(biāo)好 , 現(xiàn)在你已經(jīng)了解了系統(tǒng)的復(fù)雜性和軟硬件的問題 , 那技術(shù)架構(gòu)就要選擇和組合各種軟硬件 , 再結(jié)合我們開發(fā)的應(yīng)用代碼 , 來解決系統(tǒng)非功能性需求 。
什么是系統(tǒng)非功能性需求呢?這是相對于業(yè)務(wù)需求來說的 , 所謂的業(yè)務(wù)需求就是保證業(yè)務(wù)邏輯正確 , 數(shù)據(jù)準(zhǔn)確 。比如一個訂單 , 我們要保證訂單各項數(shù)據(jù)是準(zhǔn)確的 , 訂單優(yōu)惠和金額計算邏輯是正確的 。而一個訂單頁面打開需要多少時間 , 頁面是不是每次都能打開 , 這些就和具體的業(yè)務(wù)邏輯沒有關(guān)系 , 屬于系統(tǒng)非功能性需求的范疇 。產(chǎn)品經(jīng)理在一般情況下 , 也不會明確提這些需求 。非功能性需求 , 有時候我們也稱之為系統(tǒng)級功能 , 和業(yè)務(wù)功能相區(qū)分 。
那對于一個系統(tǒng)來說 , 技術(shù)架構(gòu)都要解決哪些非功能性需求呢?
系統(tǒng)的高可用可用性的衡量標(biāo)準(zhǔn)是 , 系統(tǒng)正常工作的時間除以總體時間 , 通常用幾個 9 來表示 , 比如 3個 9 表示系統(tǒng)在 99.9% 的時間內(nèi)可用 , 4 個 9 表示 99.99% 的時間內(nèi)可用 , 這里的正常工作表示系統(tǒng)可以在相對合理的時間內(nèi)返回預(yù)計的結(jié)果 。
導(dǎo)致系統(tǒng)可用性出問題 , 一般是兩種情況:
一種是軟硬件本身有故障 , 比如機器斷電 , 網(wǎng)絡(luò)不通 。這要求我們要么及時解決當(dāng)前節(jié)點的故障問題 , 要么做故障轉(zhuǎn)移 , 讓備份系統(tǒng)快速頂上 。還有一種是高并發(fā)引起的系統(tǒng)處理能力的不足 , 軟硬件系統(tǒng)經(jīng)常在處理能力不足時 , 直接癱瘓掉 , 比如 CPU 100% 的時候 , 整個系統(tǒng)完全不工作 。這要求我們要么提升處理能力 , 比如采取水平擴展、緩存等措施;要么把流量控制在系統(tǒng)能處理的水平 , 比如采取限流、降級等措施 。系統(tǒng)的高性能我們這里說的高性能 , 并不是指系統(tǒng)的絕對性能要多高 , 而是系統(tǒng)要提供合理的性能 。比如說 , 我們要保證前端頁面可以在 3s 內(nèi)打開 , 這樣用戶體驗比較好 。
保證合理的性能分兩種情況:
一種是常規(guī)的流量進來 , 但系統(tǒng)內(nèi)部處理比較復(fù)雜 , 我們就需要運用技術(shù)手段進行優(yōu)化 。比如針對海量商品的檢索 , 我們就需要構(gòu)建復(fù)雜的搜索系統(tǒng)來支持 。第二種是高并發(fā)的流量進來 , 系統(tǒng)仍舊需要在合理的時間內(nèi)提供響應(yīng) , 這就更強調(diào)我們做架構(gòu)設(shè)計時 , 要保證系統(tǒng)的處理能力能夠整體上做水平擴展 , 而不僅僅是對某個節(jié)點做絕對的性能優(yōu)化 , 因為流量的提升是很難準(zhǔn)確預(yù)計的 。系統(tǒng)的可伸縮和低成本系統(tǒng)的業(yè)務(wù)量在不同的時間點 , 有高峰有低谷 , 比如餐飲行業(yè)有午高峰和晚高峰 , 還有電商的大促場景 。我們的架構(gòu)設(shè)計要保證系統(tǒng)在業(yè)務(wù)高峰時 , 要能快速地增加資源來提升系統(tǒng)處理能力;反之 , 當(dāng)業(yè)務(wù)低谷時 , 可以快速地減少系統(tǒng)資源 , 保證系統(tǒng)的低成本 。
高可用、高性能、可伸縮和低成本 , 這些技術(shù)架構(gòu)的目標(biāo)不是孤立的 , 相互之間有關(guān)聯(lián) , 比如說有大流量請求進來 , 如果系統(tǒng)有很好的伸縮能力 , 它就能通過水平擴展的方式 , 保證系統(tǒng)有高性能 , 同時也實現(xiàn)了系統(tǒng)的高可用 。如果系統(tǒng)的處理能力無法快速提升 , 無法保證高性能 , 那我們還是可以通過限流、降級等措施 , 保證核心系統(tǒng)的高可用 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- js中計時器的用法 javascript計時器頻率設(shè)置
- 健身項目“方向標(biāo)”
- 男人健身的7個題目
- 滅火器維護檢查項目
- java獲取checkbox勾選的值 獲取選中的checkbox的值
- 怎樣鍛煉 讓腿部布滿氣力
- 產(chǎn)品推廣計劃方案模板 項目營銷方案
- 簡單的java程序代碼 java大小寫轉(zhuǎn)換函數(shù)
- 大學(xué)團建活動有哪些項目
- java中的對象和類理解 java對象是什么意思
