除此之外 , 還有大量周邊的支撐系統(tǒng)在支持應用的正常運行 , 包括日志系統(tǒng)、配置系統(tǒng) , 還有大量的運維系統(tǒng) , 它們提供監(jiān)控、安全、資源調度等功能 , 它們和核心組件的區(qū)別是 , 這些系統(tǒng)一般不參與實際的用戶請求處理 , 但它們在背后默默保障系統(tǒng)的正常運行 。
到這里 , 你可以發(fā)現(xiàn) , 一個端到端的系統(tǒng)是非常復雜的 , 它包含了大量的軟硬件 。為了保障我們的應用代碼能夠正常運行 , 我們就需要保證這里的每個組件不出問題 , 否則一旦組件出問題 , 很可能就導致系統(tǒng)整體的不可用 。
技術架構的挑戰(zhàn)應用代碼怎么組織(比如模塊劃分和服務分層) , 那主要是業(yè)務架構的事 , 這部分在前面我們已經討論過很多了;而技術架構的職責 , 首先是負責系統(tǒng)所有組件的技術選型 , 然后確保這些組件可以正常運行 。
我們知道 , 系統(tǒng)是由硬件和軟件組成的 。接下來 , 我們就分別從軟硬件的角度來看下 , 技術架構都會面臨什么挑戰(zhàn) , 我們需要如何應對 。
硬件的問題硬件是一個系統(tǒng)最基礎的部分 , 負責真正干活的 , 但它有兩方面的問題 。
首先是硬件的處理能力有限 。對于服務器來說 , 它的 CPU 頻率、內存容量、磁盤速度等等都是有限的 。雖然說按照摩爾定律 , 隨著制造工藝的發(fā)展 , 大概每隔 18 個月 , 硬件的性能
可以提升一倍 , 但還是趕不上快速增長的系統(tǒng)處理能力的要求 , 特別是目前許多互聯(lián)網平臺 , 面向的都是海量的 C 端用戶 , 對系統(tǒng)處理能力的要求可以說是沒有上限的 。
從技術架構的角度 , 提升硬件的處理能力一般有兩種方式 。
Scale Up
也就是垂直擴展 , 簡單地說就是通過升級硬件來提升處理能力 。CPU 不夠快 , 升級內核數量;內存不夠多 , 升級容量;網絡帶寬不夠 , 升級帶寬 。所以說 , Scale Up 實際上是提升硬件的質量 。
Scale Out
也就是水平擴展 , 通過增加機器數量來提升處理能力 。一臺機器不夠 , 就增加到 2 臺、4臺 , 以及更多 , 通過大量廉價設備的疊加 , 增強系統(tǒng)整體的處理能力 。所以說 , Scale Out是提升硬件的數量 。
垂直擴展是最簡單的方式 , 對系統(tǒng)來說 , 它看到的是一個性能更強的組件 , 技術架構上不需要任何改造 。如果碰到性能有問題 , 垂直擴展是我們的首選 , 但它有物理上的瓶頸或成本的問題 。受硬件的物理限制 , 機器的性能是有天花板的;或者有時候 , 硬件超出了主流的配置 , 它的成本會指數級增長 , 導致我們無法承受 。
水平擴展通過硬件數量彌補性能問題 , 理論上可以應對所有服務器處理能力不足的情況 , 并實現(xiàn)系統(tǒng)處理能力和硬件成本保持一個線性增長的關系 。
但水平擴展對于系統(tǒng)來說 , 它看到的是多個組件 , 比如說多臺 Web 服務器 。如何有效地管理大量的機器 , 一方面 , 使得性能上可以實現(xiàn)類似 1+1=2 的效果;另一方面 , 要讓系統(tǒng)各個部分能夠有效地銜接起來 , 穩(wěn)定地運行 , 這不是一件容易的事情 。我們需要通過很復雜的技術架構設計來保障 , 比如說 , 通過額外的負載均衡 , 來支持多臺 Web 服務器并行工作 。
以上關于本文的內容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!
「愛刨根生活網」www.malaban59.cn小編還為您精選了以下內容,希望對您有所幫助:- js中計時器的用法 javascript計時器頻率設置
- 健身項目“方向標”
- 男人健身的7個題目
- 滅火器維護檢查項目
- java獲取checkbox勾選的值 獲取選中的checkbox的值
- 怎樣鍛煉 讓腿部布滿氣力
- 產品推廣計劃方案模板 項目營銷方案
- 簡單的java程序代碼 java大小寫轉換函數
- 大學團建活動有哪些項目
- java中的對象和類理解 java對象是什么意思
