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