亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

java項目開發(fā)實例 java系統(tǒng)架構有哪些( 三 )


硬件的第二個問題是 , 硬件不是 100% 的可靠 , 它本身也會出問題 。
比如說 , 服務器斷電了 , 網(wǎng)絡電纜被挖斷了 , 甚至是各種自然災害導致機房整體不可用 。尤其是一個大型系統(tǒng) , 服務器規(guī)模很大 , 網(wǎng)絡很復雜 , 一旦某個節(jié)點出問題 , 整個系統(tǒng)都可能受影響 , 所以 , 機器數(shù)量變多 , 也放大了系統(tǒng)出故障的概率 , 導致系統(tǒng)整體的可用性變差 。我們在做技術架構設計時 , 就要充分考慮各種硬件故障的可能性 , 做好應對方案 。比如說針對自然災害 , 系統(tǒng)做異地多機房部署 。
軟件的問題接下來我們說下軟件的問題 , 這里的軟件 , 主要說的是各種中間件和系統(tǒng)級軟件 , 它們配合我們的應用代碼一起工作 。
軟件是硬件的延伸 , 它主要是解決硬件的各種問題 , 軟件通過進一步封裝 , 給系統(tǒng)帶來了兩大好處 。
首先是彌補了硬件的缺陷 。比如 Redis 集群 , 通過數(shù)據(jù)分片 , 解決了單臺服務器內(nèi)存和帶寬的瓶頸問題 , 實現(xiàn)服務器處理能力的水平擴展;通過數(shù)據(jù)多副本和故障節(jié)點轉移 , 解決了單臺服務器故障導致的可用性問題 。其次 , 封裝讓我們可以更高效地訪問系統(tǒng)資源 。比如說 , 數(shù)據(jù)庫是對文件系統(tǒng)的加強 , 使數(shù)據(jù)的存取更高效;緩存是對數(shù)據(jù)庫的加強 , 使熱點數(shù)據(jù)的訪問更高效 。但軟件在填硬件的各種坑的同時 , 也給系統(tǒng)挖了新的坑 。舉個例子 , Redis 集群的多節(jié)點 , 它解決了單節(jié)點處理能力問題 , 但同時也帶來了新的問題 , 比如節(jié)點內(nèi)部的網(wǎng)絡有問題(即網(wǎng)絡分區(qū)現(xiàn)象) , 集群的可用性就有問題;Redis 數(shù)據(jù)的多副本 , 它解決了單臺服務器故障帶來的可用性問題 , 但同時也帶來了數(shù)據(jù)的一致性問題 。
我們知道 , 分布式系統(tǒng)有個典型的 CAP 理論 , C 代表系統(tǒng)內(nèi)部的數(shù)據(jù)一致性 , A 代碼系統(tǒng)的可用性 , P 代表節(jié)點之間的網(wǎng)絡是否允許出問題 , 我們在這三者里面只能選擇兩個 。對于一個分布式系統(tǒng)來說 , 網(wǎng)絡出問題是比較常見的 , 所以我們首先要選擇 P , 這意味著我們在剩下的 C 和 A 之間只能選擇一個 。
CAP 理論只是針對一個小的數(shù)據(jù)型的分布式系統(tǒng) , 如果放大到整個業(yè)務系統(tǒng) , C 和 A 的選擇就更加復雜了 。
比如有時候 , 我們直接對訂單進行寫庫 , 這是傾向于保證數(shù)據(jù)一致性 C , 但如果數(shù)據(jù)庫故障或者流量太大 , 寫入不成功 , 導致當前的業(yè)務功能失敗 , 也就是系統(tǒng)的可用性 A 產(chǎn)生了問題 。如果我們不直接落庫 , 先發(fā)訂單數(shù)據(jù)到消息系統(tǒng) , 再由消費者接收消息進行落庫 , 這樣
即使單量很大或數(shù)據(jù)庫有問題 , 最終訂單還是可以落地 , 不影響當前的下單功能 , 保證了系統(tǒng)的可用性 , 但可能不同地方(比如緩存和數(shù)據(jù)庫)的訂單數(shù)據(jù)就有一致性的問題 。
魚和熊掌不能兼得 , 系統(tǒng)無法同時滿足 CAP 的要求 , 我們就需要結合具體的業(yè)務場景 , 識別最突出的挑戰(zhàn) , 然后選擇合適的組件 , 并以合理的方式去使用它們 , 最終保障系統(tǒng)的穩(wěn)定運行 , 不產(chǎn)生大的業(yè)務問題 。


以上關于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關的問題,請您及時就醫(yī)或請專業(yè)人士給予相關指導!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: