溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

web對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)方法是什么

發(fā)布時(shí)間:2021-12-30 16:23:35 來(lái)源:億速云 閱讀:120 作者:iii 欄目:云計(jì)算

這篇文章主要講解了“web對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)方法是什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“web對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)方法是什么”吧!

對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)

基本構(gòu)架組成

web對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)方法是什么

1.網(wǎng)關(guān)服務(wù)(Gateway):

客戶端發(fā)送請(qǐng)求(Request)到網(wǎng)關(guān)服務(wù)(Gateway)再由網(wǎng)關(guān)服務(wù)實(shí)現(xiàn)將客戶端請(qǐng)求轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)(Data)、元數(shù)據(jù)(Metadata),消息對(duì)列(MQ)的操作。一般來(lái)講網(wǎng)關(guān)服務(wù)主要承擔(dān)以下幾個(gè)角色的功能:
    協(xié)議轉(zhuǎn)換:實(shí)現(xiàn)前端客戶端協(xié)議(HTTP/RPC)等向后端模塊(TCP/RPC/MQ)之間的協(xié)議轉(zhuǎn)換。
    請(qǐng)求分發(fā):負(fù)責(zé)將前端請(qǐng)求按不同請(qǐng)求類型(數(shù)據(jù)操作。元數(shù)據(jù)操作、異步隊(duì)列操作)分發(fā)到不同后端模塊上。
    協(xié)同與調(diào)度:部分前端請(qǐng)求可能會(huì)同時(shí)涉及到與多個(gè)后端模塊之間的交互,因此網(wǎng)關(guān)服務(wù)還需要統(tǒng)一這些請(qǐng)求,并實(shí)現(xiàn)多個(gè)模塊之間的協(xié)同與調(diào)度。
    負(fù)載均衡:實(shí)現(xiàn)客戶端請(qǐng)求的負(fù)載均衡,提升整體系統(tǒng)的并發(fā)吞吐性能。
高速緩存:實(shí)現(xiàn)熱數(shù)據(jù)的高速緩存,提高客戶端請(qǐng)求的命中率,同時(shí)降低底層模塊的訪問(wèn)壓力。當(dāng)出現(xiàn)底層模塊不可用時(shí),仍然能夠提供部分?jǐn)?shù)據(jù)來(lái)支撐客戶端的請(qǐng)求訪問(wèn),提供類似降級(jí)服務(wù),從而在一定程度上提高整體服務(wù)的可用性。
正是鑒于上面講到的幾個(gè)功能特性,如果把整個(gè)對(duì)象存儲(chǔ)比作一輛超級(jí)大卡車,網(wǎng)關(guān)服務(wù)相當(dāng)于“方向盤,變速箱,儀表盤”這些和司機(jī)有著密切交道的操控設(shè)備,車子開(kāi)起來(lái)順不順手,很大程度上都由這些決定。

2.數(shù)據(jù)存儲(chǔ)服務(wù)(Data store):

同時(shí)滿足水平擴(kuò)展,高性能、高可用等分布式存儲(chǔ)的特性,為整個(gè)對(duì)象存儲(chǔ)提供底層數(shù)據(jù)存儲(chǔ)最堅(jiān)實(shí)的基石,用一句話來(lái)形容就是"堅(jiān)如磐石"。數(shù)據(jù)存儲(chǔ)服務(wù)模塊可以對(duì)上提供多種類型的數(shù)據(jù)存儲(chǔ)I/O接口,比如文件存儲(chǔ)、對(duì)象存儲(chǔ)、塊存儲(chǔ),上層通過(guò)調(diào)用這些標(biāo)準(zhǔn)化的存儲(chǔ)接口,實(shí)現(xiàn)對(duì)象數(shù)據(jù)內(nèi)容的存儲(chǔ)。如果把對(duì)象存儲(chǔ)系統(tǒng)比作一輛車,那么數(shù)據(jù)存儲(chǔ)服務(wù)相當(dāng)于整個(gè)對(duì)象存儲(chǔ)的"車身、懸架、輪胎"。

3.元數(shù)據(jù)存儲(chǔ)(KV store):

一個(gè)完整的對(duì)象數(shù)據(jù)主要由數(shù)據(jù)內(nèi)容和元數(shù)據(jù)兩部分構(gòu)成,除了通過(guò)上面提到的數(shù)據(jù)存儲(chǔ)服務(wù)以外,一些元數(shù)據(jù)信息也需要用到存儲(chǔ)。值得注意的是數(shù)據(jù)內(nèi)容一般都是非結(jié)構(gòu)化化或者半結(jié)構(gòu)化,但元數(shù)據(jù)一般都是可以結(jié)構(gòu)化的內(nèi)容,比如文件的MIME,MD5值、修改時(shí)間(mtime),屬主(ower)等,這些信息一般都是以key-value方式存儲(chǔ)并關(guān)聯(lián)到具體的對(duì)象,而且這些元數(shù)據(jù)信息經(jīng)常性的需要進(jìn)行快速遍歷和查詢、更新等,同時(shí)為了更好的做到模塊之間的解耦,將元數(shù)據(jù)存儲(chǔ)單獨(dú)抽離出來(lái)并以Key-value方式存儲(chǔ)在特定的KV存儲(chǔ)引擎中變得非常有必要,特別是當(dāng)對(duì)象存儲(chǔ)數(shù)據(jù)規(guī)模到達(dá)海量以后,獨(dú)立的KV存儲(chǔ)(元數(shù)據(jù)存儲(chǔ))能夠極大的避免成為整個(gè)系統(tǒng)的性能瓶頸。可以毫不夸張的說(shuō)元數(shù)據(jù)存儲(chǔ)的重要性相當(dāng)于整個(gè)對(duì)象存儲(chǔ)系統(tǒng)的"傳動(dòng)系統(tǒng)、變速器"。

4.異步任務(wù)隊(duì)列(Async queue):

為什么一個(gè)對(duì)象存儲(chǔ)系統(tǒng)需要用到一個(gè)獨(dú)立的異步任務(wù)隊(duì)列系統(tǒng),相信這是很多新手司機(jī)的困惑。同樣也是基于解耦的初衷,讓我們看看下面幾個(gè)場(chǎng)景。
    1).用戶數(shù)據(jù)需要進(jìn)行一些定期的數(shù)據(jù)操作,比如通過(guò)lifecycle,實(shí)現(xiàn)定期篩選并清除用戶數(shù)據(jù),亦或是定期從熱存儲(chǔ)資源池將數(shù)據(jù)遷移到冷存儲(chǔ)資源池。
    2).用戶已經(jīng)刪除了對(duì)象,底層需要按一定的規(guī)則觸發(fā)相應(yīng)的垃圾回收(GC)機(jī)制,釋放那些被占用的磁盤空間。
    3).用戶需要跨越物理區(qū)域去同步多個(gè)存儲(chǔ)集群之間的數(shù)據(jù),考慮到網(wǎng)絡(luò)延遲、磁盤延遲等各方面因素,這些操作都無(wú)法做到實(shí)時(shí)同步。
    4).用戶需要將傳上來(lái)的數(shù)據(jù)進(jìn)行加工處理,比如對(duì)上傳上來(lái)的視頻文件進(jìn)行轉(zhuǎn)碼,對(duì)圖片進(jìn)行壓縮,對(duì)文件進(jìn)行加密等,這些操作都需要消耗大量的計(jì)算資源,而且都無(wú)法做到實(shí)時(shí)返回結(jié)果。


了解完上面的幾種場(chǎng)景,你會(huì)發(fā)現(xiàn),如果采取同步機(jī)制去要求所有的客戶端操作都立即返回執(zhí)行結(jié)果,是非常不現(xiàn)實(shí)的,至少目前硬件層面還無(wú)法做到這么高的實(shí)時(shí)性,于是我們只能做出適當(dāng)取舍,設(shè)計(jì)一個(gè)獨(dú)立的異步任務(wù)隊(duì)列來(lái)滿足這些需求,把一些耗時(shí)操作都丟給這個(gè)異步的任務(wù)隊(duì)列。引入異步隊(duì)列系統(tǒng)確實(shí)能解決整個(gè)對(duì)象存儲(chǔ)系統(tǒng)中一些無(wú)法實(shí)時(shí)操作的痛點(diǎn),但同時(shí)也引入了一些新的問(wèn)題:
    1).如何確保用戶的數(shù)據(jù)一致性,特別是用戶頻繁進(jìn)行數(shù)據(jù)和元數(shù)據(jù)操作的時(shí)候,如何保障這些異步操作原子化,最大程度的符合用戶對(duì)數(shù)據(jù)一致性的預(yù)期。
    2).異步隊(duì)列自身的健壯性,如何保障每一個(gè)提交到異步隊(duì)列的實(shí)務(wù)(task)能夠?qū)崟r(shí)有效的執(zhí)行,特別是在異步隊(duì)列自身出現(xiàn)故障等各種問(wèn)題的時(shí)候,如何快速有效且正確的去執(zhí)行這些實(shí)務(wù)。
    3).平滑的水平擴(kuò)展,如何在處理現(xiàn)有任務(wù)隊(duì)列的同時(shí)確保整個(gè)隊(duì)列系統(tǒng)的平滑水平擴(kuò)展。
    4).任務(wù)時(shí)序化和優(yōu)先級(jí),對(duì)象存儲(chǔ)系統(tǒng)一般實(shí)現(xiàn)的都是數(shù)據(jù)的最終一致性,如何確保所有任務(wù)嚴(yán)格按時(shí)間序列或者其他規(guī)則執(zhí)行,如何確定同一時(shí)刻對(duì)同一個(gè)對(duì)象的不同操作的優(yōu)先級(jí)順序。
上面只是我這邊簡(jiǎn)單羅列的幾個(gè)引入異步隊(duì)列所帶來(lái)的問(wèn)題,相信各位讀者對(duì)這些問(wèn)題都有著自己不同的理解,一千個(gè)讀者就有一千個(gè)哈姆雷特,這里因?yàn)槠邢?,我們不再深入下去,談到這些需要思考的問(wèn)題主要是想告訴各位讀者,異步任務(wù)隊(duì)列是一把"雙刃劍",如果你功底深厚可以做出很多超出你想象的功能特性,將整個(gè)對(duì)象存儲(chǔ)服務(wù)在功能上提高好幾個(gè)Level,但是反之,一旦陷入深坑,也可能“萬(wàn)劫不復(fù)”。所以我個(gè)人的經(jīng)驗(yàn)是,對(duì)待異步隊(duì)列時(shí)刻保持警惕態(tài)度,盡可能少的去涉及這個(gè)模塊,用一句話概括就是"simple is the best"。可以毫不掩飾的說(shuō),異步任務(wù)隊(duì)列是一個(gè)對(duì)象存儲(chǔ)產(chǎn)品是否成熟的關(guān)鍵指標(biāo),類似"倒車?yán)走_(dá),定速巡航"一類高級(jí)功能,如果把選購(gòu)對(duì)象存儲(chǔ)產(chǎn)品比作選購(gòu)汽車,這也將成為區(qū)別“普通汽車”與“高檔汽車”的關(guān)鍵。

感謝各位的閱讀,以上就是“web對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)方法是什么”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)web對(duì)象存儲(chǔ)服務(wù)構(gòu)架設(shè)計(jì)方法是什么這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI