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

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

系統(tǒng)設(shè)計(jì)目標(biāo):如何讓系統(tǒng)易于擴(kuò)展?

來源: 責(zé)編: 時(shí)間:2023-10-06 19:20:14 298觀看
導(dǎo)讀從架構(gòu)設(shè)計(jì)上來說,高可擴(kuò)展性是一個(gè)設(shè)計(jì)的指標(biāo),它表示可以通過增加機(jī)器的方式來線性提高系統(tǒng)的處理能力,從而承擔(dān)更高的流量和并發(fā)。你可能會(huì)問:"在架構(gòu)設(shè)計(jì)之初,為什么不預(yù)先考慮好使用多少臺(tái)機(jī)器,支持現(xiàn)有的并發(fā)呢?" 答案

從架構(gòu)設(shè)計(jì)上來說,高可擴(kuò)展性是一個(gè)設(shè)計(jì)的指標(biāo),它表示可以通過增加機(jī)器的方式來線性提高系統(tǒng)的處理能力,從而承擔(dān)更高的流量和并發(fā)。qYF28資訊網(wǎng)——每日最新資訊28at.com

你可能會(huì)問:"在架構(gòu)設(shè)計(jì)之初,為什么不預(yù)先考慮好使用多少臺(tái)機(jī)器,支持現(xiàn)有的并發(fā)呢?" 答案是峰值的流量不可控。qYF28資訊網(wǎng)——每日最新資訊28at.com

通常情況下,在業(yè)務(wù)平穩(wěn)期,我們會(huì)預(yù)留30%至50%的冗余資源,以處理運(yùn)營(yíng)活動(dòng)或推廣可能引發(fā)的峰值流量。然而,當(dāng)突發(fā)事件發(fā)生時(shí),流量可能會(huì)瞬間增加到2至3倍甚至更高的水平。以微博為例,這種情況是很常見的。qYF28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)出現(xiàn)鹿晗和關(guān)曉彤互相確認(rèn)戀情等突發(fā)事件時(shí),微博的流量會(huì)迅速增加,導(dǎo)致信息流無法及時(shí)刷新。在這種情況下,我們需要迅速應(yīng)對(duì)流量激增,最快的方法是增加服務(wù)器。然而,需要確保增加了三倍的服務(wù)器后,系統(tǒng)能夠支持三倍的流量。有人可能會(huì)覺得這很明顯,但實(shí)際上,這個(gè)過程中存在一些挑戰(zhàn)。讓我們看看這些挑戰(zhàn)是什么。qYF28資訊網(wǎng)——每日最新資訊28at.com

為什么提升擴(kuò)展性會(huì)很復(fù)雜

增加處理核心是提高系統(tǒng)并行處理能力的一種方法,但它并不總是有效的。當(dāng)任務(wù)并行數(shù)增加時(shí),系統(tǒng)可能因?yàn)橘Y源爭(zhēng)用而性能下降,達(dá)到一個(gè)拐點(diǎn)。這不僅適用于單機(jī)系統(tǒng),也適用于由多臺(tái)機(jī)器組成的集群系統(tǒng)。集群系統(tǒng)中,不同的層次可能存在一些限制系統(tǒng)橫向擴(kuò)展的“瓶頸點(diǎn)”。qYF28資訊網(wǎng)——每日最新資訊28at.com

讓我通過一個(gè)例子來解釋這個(gè)概念。假設(shè)系統(tǒng)的每秒請(qǐng)求量是1000次,與數(shù)據(jù)庫(kù)的請(qǐng)求量相同。如果流量增加了10倍,系統(tǒng)可以通過擴(kuò)容來滿足需求,但數(shù)據(jù)庫(kù)可能成為瓶頸。qYF28資訊網(wǎng)——每日最新資訊28at.com

再舉一個(gè)例子,單臺(tái)服務(wù)器的網(wǎng)絡(luò)帶寬是50Mbps,如果擴(kuò)展到30臺(tái)服務(wù)器,前端負(fù)載均衡的帶寬將超過千兆帶寬的限制,也成為瓶頸。那么,系統(tǒng)中有哪些服務(wù)可能會(huì)成為限制系統(tǒng)擴(kuò)展的關(guān)鍵因素呢?無狀態(tài)的服務(wù)和組件更容易擴(kuò)展,而像MySQL這樣的有狀態(tài)存儲(chǔ)服務(wù)則難以擴(kuò)展。qYF28資訊網(wǎng)——每日最新資訊28at.com

這是因?yàn)樵谙虼鎯?chǔ)集群中添加或刪除服務(wù)器時(shí),涉及大量數(shù)據(jù)遷移,而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)通常不支持這種操作。這是提高系統(tǒng)擴(kuò)展性復(fù)雜性的主要原因之一。此外,從示例中可以看出,我們需要從整體架構(gòu)的角度考慮系統(tǒng)的擴(kuò)展性,而不僅僅是業(yè)務(wù)服務(wù)器的角度。因此,數(shù)據(jù)庫(kù)、緩存、第三方依賴、負(fù)載均衡、網(wǎng)絡(luò)帶寬等都是需要考慮的因素。我們需要了解系統(tǒng)達(dá)到一定并發(fā)水平后,哪些因素將成為瓶頸,然后有針對(duì)性地?cái)U(kuò)展系統(tǒng)。qYF28資訊網(wǎng)——每日最新資訊28at.com

針對(duì)這些復(fù)雜的擴(kuò)展性問題,我提煉了一些系統(tǒng)設(shè)計(jì)思路。qYF28資訊網(wǎng)——每日最新資訊28at.com

高可擴(kuò)展性的設(shè)計(jì)思路

拆分是提高系統(tǒng)擴(kuò)展性的關(guān)鍵策略,它將復(fù)雜的系統(tǒng)分解成獨(dú)立的、具有單一職責(zé)的模塊。與處理整個(gè)大系統(tǒng)相比,考慮如何擴(kuò)展每個(gè)小模塊顯然更加簡(jiǎn)單。我們的方法是將復(fù)雜的問題分解為簡(jiǎn)單的部分。qYF28資訊網(wǎng)——每日最新資訊28at.com

在不同類型的模塊拆分方面,我們需要遵循不同的原則。舉個(gè)簡(jiǎn)單的例子,如果你要設(shè)計(jì)一個(gè)社區(qū),可能會(huì)有以下5個(gè)模塊:用戶、關(guān)系、內(nèi)容、評(píng)論/贊、搜索。通常,這些模塊都會(huì)使用最簡(jiǎn)單的三層部署架構(gòu),其中負(fù)載均衡用于請(qǐng)求分發(fā),應(yīng)用服務(wù)器用于處理業(yè)務(wù)邏輯,數(shù)據(jù)庫(kù)用于數(shù)據(jù)存儲(chǔ)。然而,問題是所有這些模塊的業(yè)務(wù)代碼都混合在一起,數(shù)據(jù)也存儲(chǔ)在同一個(gè)數(shù)據(jù)庫(kù)中。qYF28資訊網(wǎng)——每日最新資訊28at.com

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

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

1. 存儲(chǔ)層的擴(kuò)展性

不同的業(yè)務(wù)模塊之間的數(shù)據(jù)量和并發(fā)訪問量可能差異很大。以一個(gè)成熟的社區(qū)系統(tǒng)為例,關(guān)系模塊的數(shù)據(jù)量可能遠(yuǎn)大于用戶數(shù)據(jù),但用戶數(shù)據(jù)的訪問量卻更高。因此,如果存儲(chǔ)容量成為瓶頸,我們可以選擇僅拆分關(guān)系模塊的數(shù)據(jù),而不必拆分用戶模塊的數(shù)據(jù)。這種存儲(chǔ)拆分是基于業(yè)務(wù)維度的,將系統(tǒng)拆分為用戶庫(kù)、內(nèi)容庫(kù)、評(píng)論庫(kù)、點(diǎn)贊庫(kù)和關(guān)系庫(kù)等,從而隔離了故障。如果其中一個(gè)庫(kù)出現(xiàn)問題,不會(huì)影響其他數(shù)據(jù)庫(kù)的正常運(yùn)行。qYF28資訊網(wǎng)——每日最新資訊28at.com

拆分之后,這個(gè)簡(jiǎn)單的社區(qū)系統(tǒng)就有了用戶庫(kù)、內(nèi)容庫(kù)、評(píng)論庫(kù)、點(diǎn)贊庫(kù)和關(guān)系庫(kù)。這么做還能隔離故障,某一個(gè)庫(kù)“掛了”不會(huì)影響到其它的數(shù)據(jù)庫(kù)。qYF28資訊網(wǎng)——每日最新資訊28at.com

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

按照業(yè)務(wù)拆分雖然在一定程度上提升了系統(tǒng)的擴(kuò)展性,但隨著系統(tǒng)運(yùn)行時(shí)間的增長(zhǎng),單一的業(yè)務(wù)數(shù)據(jù)庫(kù)可能會(huì)面臨容量和并發(fā)請(qǐng)求量超過單機(jī)限制的問題。在這種情況下,我們需要考慮對(duì)數(shù)據(jù)庫(kù)進(jìn)行第二次拆分。qYF28資訊網(wǎng)——每日最新資訊28at.com

這次的拆分是基于數(shù)據(jù)特征進(jìn)行水平拆分的。例如,我們可以向用戶庫(kù)添加兩個(gè)節(jié)點(diǎn),然后使用特定的算法將用戶數(shù)據(jù)分布到這三個(gè)庫(kù)中。qYF28資訊網(wǎng)——每日最新資訊28at.com

水平拆分后,數(shù)據(jù)庫(kù)就可以突破單機(jī)的限制。但需要注意的是,不應(yīng)隨意增加節(jié)點(diǎn),因?yàn)楣?jié)點(diǎn)的增加涉及到數(shù)據(jù)的手動(dòng)遷移,會(huì)增加成本。因此,從長(zhǎng)遠(yuǎn)考慮,最好一次性增加足夠數(shù)量的節(jié)點(diǎn),以避免頻繁擴(kuò)容。qYF28資訊網(wǎng)——每日最新資訊28at.com

此外,在數(shù)據(jù)庫(kù)按照業(yè)務(wù)和數(shù)據(jù)維度進(jìn)行拆分后,應(yīng)盡量避免使用事務(wù)。因?yàn)楫?dāng)一個(gè)事務(wù)涉及同時(shí)更新不同的數(shù)據(jù)庫(kù)時(shí),需要使用二階段提交來協(xié)調(diào),這會(huì)隨著資源擴(kuò)展而導(dǎo)致協(xié)調(diào)成本不斷增加,最終可能無法承受。接下來,我們將討論業(yè)務(wù)層如何實(shí)現(xiàn)易于擴(kuò)展。qYF28資訊網(wǎng)——每日最新資訊28at.com

2. 業(yè)務(wù)層的擴(kuò)展性

我們一般會(huì)從三個(gè)維度考慮業(yè)務(wù)層的拆分方案,它們分別是:業(yè)務(wù)維度,重要性維度和請(qǐng)求來源維度。qYF28資訊網(wǎng)——每日最新資訊28at.com

首先,我們需要把相同業(yè)務(wù)的服務(wù)拆分成單獨(dú)的業(yè)務(wù)池,比方說上面的社區(qū)系統(tǒng)中,我們可以按照業(yè)務(wù)的維度拆分成用戶池、內(nèi)容池、關(guān)系池、評(píng)論池、點(diǎn)贊池和搜索池。qYF28資訊網(wǎng)——每日最新資訊28at.com

每個(gè)業(yè)務(wù)依賴獨(dú)自的數(shù)據(jù)庫(kù)資源,不會(huì)依賴其它業(yè)務(wù)的數(shù)據(jù)庫(kù)資源。這樣當(dāng)某一個(gè)業(yè)務(wù)的接口成為瓶頸時(shí),我們只需要擴(kuò)展業(yè)務(wù)的池子,以及確認(rèn)上下游的依賴方就可以了,這樣就大大減少了擴(kuò)容的復(fù)雜度。qYF28資訊網(wǎng)——每日最新資訊28at.com

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

此外,我們還可以根據(jù)業(yè)務(wù)接口的重要性,將業(yè)務(wù)劃分為核心池和非核心池。以關(guān)系池為例,關(guān)注和取消關(guān)注接口可能相對(duì)重要,因此它們可以放入核心池。而拉黑和取消拉黑等操作可能不那么重要,可以放入非核心池。qYF28資訊網(wǎng)——每日最新資訊28at.com

這種方法允許我們首先確保核心池的性能。當(dāng)整體流量增加時(shí),我們可以首先擴(kuò)容核心池,并對(duì)一些非核心池的接口進(jìn)行降級(jí),以確保整體系統(tǒng)的穩(wěn)定性。qYF28資訊網(wǎng)——每日最新資訊28at.com

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

最后,你還可以根據(jù)接入客戶端類型的不同做業(yè)務(wù)池的拆分。比如說,服務(wù)于客戶端接口的業(yè)務(wù)可以定義為外網(wǎng)池,服務(wù)于小程序或者 HTML5 頁(yè)面的業(yè)務(wù)可以定義為 H5 池,服務(wù)于內(nèi)部其它部門的業(yè)務(wù)可以定義為內(nèi)網(wǎng)池,等等。qYF28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-12142-0.html系統(tǒng)設(shè)計(jì)目標(biāo):如何讓系統(tǒng)易于擴(kuò)展?

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

上一篇: 插入排序:簡(jiǎn)單而有效的排序方法

下一篇: 讓你遙遙領(lǐng)先的七個(gè)編程習(xí)慣

標(biāo)簽:
  • 熱門焦點(diǎn)
  • MIX Fold3包裝盒泄露 新機(jī)本月登場(chǎng)

    小米的全新折疊屏旗艦MIX Fold3將于本月發(fā)布,近日該機(jī)的真機(jī)包裝盒在網(wǎng)上泄露。從圖上來看,新的MIX Fold3包裝盒在外觀設(shè)計(jì)方面延續(xù)了之前的方案,變化不大,這也是目前小米旗艦
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對(duì)Reader和Writer接口的組合,
  • 企業(yè)采用CRM系統(tǒng)的11個(gè)好處

    客戶關(guān)系管理(CRM)軟件可以為企業(yè)提供很多的好處,從客戶保留到提高生產(chǎn)力?! RM軟件用于企業(yè)收集客戶互動(dòng),以改善客戶體驗(yàn)和滿意度?! RM軟件市場(chǎng)規(guī)模如今超過580
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術(shù),可以幫助我們寫出更加優(yōu)雅、泛用的函數(shù)。本文將首先介紹柯里化和反柯里化的概念、實(shí)現(xiàn)原理和應(yīng)用
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時(shí)候了!學(xué)弟,最近學(xué)習(xí)的怎么樣啊 了不起學(xué)弟:最近學(xué)習(xí)的還不錯(cuò),每天都在學(xué)習(xí),每天都在進(jìn)步! 了不起:那你最近學(xué)習(xí)的什么呢? 了不起學(xué)弟:最近在學(xué)習(xí)C
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營(yíng),這意味著騰訊音樂長(zhǎng)音頻業(yè)務(wù)走向消亡。騰訊在長(zhǎng)音頻領(lǐng)域還在摸索。為
  • 華為開發(fā)者大會(huì)2023日程公開:開設(shè)鴻蒙HarmonyOS 4體驗(yàn)區(qū)

    IT之家 7 月 31 日消息,華為今日公布了 HDC.Together 開發(fā)者大會(huì) 2023 的詳細(xì)日程。整場(chǎng)大會(huì)將于 8 月 4 日-6 日之間舉行,屆時(shí)將發(fā)布最新一代鴻蒙 H
  • 華為Mate60標(biāo)準(zhǔn)版細(xì)節(jié)曝光:經(jīng)典星環(huán)相機(jī)模組回歸

    這段時(shí)間以來,關(guān)于華為新旗艦的爆料日漸密集。據(jù)此前多方爆料,今年華為將開始恢復(fù)一年雙旗艦戰(zhàn)略,除上半年推出的P60系列外,往年下半年的Mate系列也將
  • iQOO Neo8 Pro真機(jī)諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機(jī)型,不僅搭載了天璣9000+,而且是同價(jià)位唯一一款天璣9000+直屏旗艦,一經(jīng)上市便受到了用戶的廣泛關(guān)注。在時(shí)隔半年后,
Top 主站蜘蛛池模板: 布尔津县| 周至县| 武平县| 吉林省| 仪征市| 高邮市| 城步| 华阴市| 石城县| 信丰县| 米林县| 锡林浩特市| 泰兴市| 武宣县| 通渭县| 永泰县| 沐川县| 玛曲县| 鄱阳县| 咸阳市| 隆德县| 阜南县| 南丹县| 乐业县| 阳新县| 桐梓县| 个旧市| 当雄县| 陈巴尔虎旗| 广宁县| 永丰县| 页游| 库尔勒市| 兴义市| 望奎县| 马关县| 仙游县| 万州区| 和田县| 泗洪县| 红安县|