如何搭建一套分布式文件存儲(chǔ)系統(tǒng) 分布式系統(tǒng)中
"身份證 "在分布式系統(tǒng)中是分布式ID和唯一的。如何在分布式系統(tǒng)中生成唯一的Id?在考慮這個(gè)問(wèn)題的時(shí)候,我覺(jué)得可以從 "尋找問(wèn)題的解決方案,也就是說(shuō)我需要滿(mǎn)足什么條件才能生成這個(gè)分布式Id?分布式I
"身份證 "在分布式系統(tǒng)中是分布式ID和唯一的。如何在分布式系統(tǒng)中生成唯一的Id?在考慮這個(gè)問(wèn)題的時(shí)候,我覺(jué)得可以從 "尋找問(wèn)題的解決方案,也就是說(shuō)我需要滿(mǎn)足什么條件才能生成這個(gè)分布式Id?
分布式Id生成需要滿(mǎn)足的條件是全球唯一的:不用說(shuō),否則,什么樣的分布式 "身份證 "有嗎?高可用性:不能有單點(diǎn)故障,以免引發(fā)雪崩;安全:這個(gè)Id可以 t要連續(xù),否則不友好的人發(fā)現(xiàn)規(guī)則、數(shù)據(jù)抓取、數(shù)據(jù)預(yù)測(cè)會(huì)有一定的安全隱患;確保訂單增加:MySQL Innodb引擎使用B樹(shù)算法存儲(chǔ)索引數(shù)據(jù)。為了提高性能,需要要求索引的主鍵在一定程度上是有序的,這樣無(wú)論是寫(xiě)還是查詢(xún)效率都很好;碎片化支持:可以根據(jù)分布式Id獲取具體的服務(wù)shardingId,方便服務(wù)查詢(xún);不要太久:64位存儲(chǔ)最好?
你認(rèn)為還有哪些場(chǎng)景或情況需要考慮?歡迎在評(píng)論區(qū)留言討論~那么基于以上條件,我們?cè)谌粘I钪杏心男┓植际絀d生成方案呢?數(shù)據(jù)庫(kù)生成的優(yōu)點(diǎn):簡(jiǎn)單粗暴,Id序列遞增。
缺點(diǎn):只能生成主庫(kù),容易造成單點(diǎn)故障;性能不足時(shí),無(wú)法擴(kuò)展;分庫(kù)分桌會(huì)有很多麻煩。
UUID的優(yōu)點(diǎn):簡(jiǎn)單直接,沒(méi)有性能問(wèn)題,真正獨(dú)一無(wú)二。
缺點(diǎn):沒(méi)有規(guī)則;UUID是字符串,IO數(shù)據(jù)量大,存儲(chǔ)空間大,查詢(xún)效率低?;赨UID劃分?jǐn)?shù)據(jù)庫(kù)和表更加困難。
區(qū)別在于方向和形式不同。對(duì)象存儲(chǔ)是指桌面存儲(chǔ)按對(duì)象分類(lèi)的存儲(chǔ),而分布式存儲(chǔ)是另一種存儲(chǔ)。存儲(chǔ)形式,兩者既有聯(lián)系又有區(qū)別。