stamp單機游戲 適用于分布式唯一標識碼的生成算法有哪些?
適用于分布式唯一標識碼的生成算法有哪些?謝邀~關(guān)與這個問題,有幾個方案和大家彼此分享幫一下忙。利用數(shù)據(jù)庫化合先說最笨的方法,依靠數(shù)據(jù)庫的自增長的速度序列生成,數(shù)據(jù)庫內(nèi)真正。優(yōu)點:理解過來最很容易,用起
適用于分布式唯一標識碼的生成算法有哪些?
謝邀~
關(guān)與這個問題,有幾個方案和大家彼此分享幫一下忙。
利用數(shù)據(jù)庫化合先說最笨的方法,依靠數(shù)據(jù)庫的自增長的速度序列生成,數(shù)據(jù)庫內(nèi)真正。
優(yōu)點:理解過來最很容易,用起來也最容易。
缺點:也更加的確了,每種數(shù)據(jù)庫的實現(xiàn)相同,假如數(shù)據(jù)庫不需要遷走的話也很麻煩;最大的問題是性能問題,可能不太好擴展,如果沒有并發(fā)大的時候,數(shù)據(jù)庫很可能頂不住。
憑借Redis/MongoDB/zookeeper生成沉淀Redis的單線程的,利用incr和increby;MongoDB的ObjectId;ZK是從znode數(shù)據(jù)版本;都可以不生成全局的任何標識碼。
優(yōu)點:性能低于數(shù)據(jù)庫;也可以不使用集群部署。
缺點:必須分解重組按的組件,提升系統(tǒng)的奇怪度。
UUID這個是分布式架構(gòu)中,能生成真正標識碼最常用的算法。
UUID有基于組件MAC地址的,再加時間和時鐘序列的,也有實現(xiàn)偽隨機數(shù)的,基于加密哈希的。
優(yōu)點:本地能生成,不是需要第三方組件,能生成比較好簡單,性能好。
缺點:長度長,利于存儲,而且沒有排序,是個字符串,不利于查詢。幫忙解決無序問題,可參考Comb算法(combinedguid/timestamp)。
SnowflakeTwitter開放源代碼,實現(xiàn)zk,41位時間戳(1毫秒數(shù))10位機器的ID12位1毫秒內(nèi)的流水號1位符號位(永遠永遠是0)。
優(yōu)點:性能確實不錯,單機內(nèi)遞減。
缺點:依戀zk;依賴感于機器時鐘,分布式環(huán)境內(nèi)可能會不是全局遞減。
UidGenerator百度閉源,基于snowflake算法。
Leaf美團開源。
優(yōu)點:能只要全局唯一性、高可用、趨勢遞減(不太方便,比如泄露出來公司訂單數(shù)量)、單調(diào)遞減等。
缺點:卻會依賴性太強第三方組件,zk或數(shù)據(jù)庫。
我將緩慢分享Java開發(fā)、架構(gòu)設(shè)計、程序員職業(yè)發(fā)展等方面的見解,如果能能換取你的關(guān)注。
工業(yè)互聯(lián)網(wǎng)是什么?
工業(yè)互聯(lián)網(wǎng)是什么?即是互聯(lián)網(wǎng)工業(yè),代表上帝一種新的經(jīng)濟形態(tài),繼續(xù)發(fā)揮互聯(lián)網(wǎng)在工業(yè)的生產(chǎn)要素配置中的優(yōu)化和集成作用。
互聯(lián)網(wǎng)工業(yè),以互聯(lián)網(wǎng)為基礎(chǔ)設(shè)施和工業(yè)的生產(chǎn)和發(fā)展高度地融合在一起,實現(xiàn)方法工業(yè)生產(chǎn)的經(jīng)濟增長點,用來互聯(lián)網(wǎng)四通八達的道路和覆蓋面廣的特點,在工業(yè)的生產(chǎn)中實現(xiàn)方法資源優(yōu)化配置。使工業(yè)的生產(chǎn)中節(jié)省成本、節(jié)約時間,為工業(yè)的生產(chǎn)提高效率。
借用互聯(lián)網(wǎng)的特點可以不把相關(guān)聯(lián)的工業(yè)連接在一起,你做到溝通有無,資源共享,使工業(yè)的生存和戰(zhàn)略投資起著更大的推動作用。在未來的經(jīng)濟發(fā)展形態(tài)中,互聯(lián)網(wǎng)會和工業(yè)一定高度地凝練在一起。