久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

mysql多條數(shù)據(jù)存到不同表id唯一分布式系統(tǒng)中的唯一ID生成

2024-01-21    分類: 網(wǎng)站建設

我們目前主流的服務端系統(tǒng)都是分布式的架構。業(yè)務分布在不同的機器節(jié)點上產(chǎn)生數(shù)據(jù),數(shù)據(jù)也存儲在不同的機器節(jié)點。為了方便標識數(shù)據(jù),我們使用 唯一且有序 的ID來標識數(shù)據(jù)。即:

整個分布式系統(tǒng)中,新生成的ID永遠不會產(chǎn)生與之前已經(jīng)生成的ID重復;

生成的所有ID可以根據(jù)生成的時間進行排序(生成時間晚的排序順序靠后)

我們來看一下市面上的幾種主流的ID生成方案。

一、Mysql 集群

由于我們的討論前提是分布式架構的系統(tǒng),所以這里的 Mysql 我們默認是集群版。

眾所周知,Mysql 有自帶的唯一ID機制,即自增主鍵,可以保證在同一個數(shù)據(jù)庫中,表內生成的每一條記錄都是唯一且有序的。


但是如果放在分布式系統(tǒng)里面,我們用分庫/分表的架構存儲記錄,那就會導致在系統(tǒng)中產(chǎn)生重復的ID。

如下圖,表1 2 3都是存儲相同記錄的不同表(可以在同一個數(shù)據(jù)庫里,也可以在不同數(shù)據(jù)庫里),表1 2 3都會產(chǎn)生id相同的數(shù)據(jù)。


為了解決這個問題,mysql 官方支持數(shù)據(jù)庫 ID 生成時設置步長,可以保證不同數(shù)據(jù)庫中相同表的id唯一性。


如上圖,每個表都有 不同的起始id和相同的步長 ,這就能保證業(yè)務記錄Id的唯一性。

設置步長的方案雖然解決了id生成的唯一性,但是也有很大的缺點

不能保證ID的有序性和時間的強相關。(由于是分布式系統(tǒng),不能保證id=4的數(shù)據(jù)一定在id=3的數(shù)據(jù)后面生成)

每次新增加一個節(jié)點,要重置所有節(jié)點的起始值和步長。

第二點只是數(shù)據(jù)庫管理會麻煩一些,但是第一點不能滿足我們對有序性的要求。

二、ID數(shù)據(jù)庫

這里泛指一套單獨維護的ID數(shù)據(jù)庫,目的是為了保證業(yè)務系統(tǒng)內所有的ID的唯一性和有序性。

舉幾個例子,比如Mysql維護一條表記錄,Redis 維護一個key,zookeeper 維護一個序列號。當所有業(yè)務都通過調用這些存儲服務來生成+獲取唯一ID的時候,就可以保證生成Id的唯一性和有序性。

缺點:

需要資源單獨維護一個服務

如果ID數(shù)據(jù)庫掛掉,整個業(yè)務就會停擺。如果ID數(shù)據(jù)庫出現(xiàn)數(shù)據(jù)錯亂,可能會影響到唯一性和有序性

總結一下就是,ID數(shù)據(jù)庫可以提供唯一有序的ID,但是有一定的維護成本且系統(tǒng)的風險很高。

三、雪花算法

SnowFlake是Twitter公司采用的一種算法,目的是在分布式系統(tǒng)中產(chǎn)生 全局唯一且整體遞增 的ID。

3.1 生成ID的結構


3.2 生成原理

我們先看一下雪花ID的生成過程:

生成毫秒級別的時間戳,填充到 41bit 的位置

序列號默認為 000000000000 。如果 新生成的時間戳上次生成的相等 ,序列號就會 + 1。將序列號填充到 12bit 位置

存儲當前生成的時間戳到內存中,以便下次生成時判斷

獲取到當前機器+進程的唯一標識,填充到 10bit 的位置

通過上述整個流程我們可以看到,雪花算法可以確保唯一性,單機內在同一毫秒生成的ID會有序列號的遞增,多機環(huán)境在同一毫秒生成的ID會有機器+進程的唯一標識。

但是無法保證強有序性,比如多個機器在同一毫秒內生成的ID,就無法按照時間規(guī)則進行排序

3.3 缺點

雪花算法除了無法實現(xiàn)嚴格按照時間的有序性之外,還有一個可能存在的風險點,就是 單機時鐘回撥 。

如果一個機器之前已經(jīng)生成過ID,將機器的時間改為之前的時間,那么就有一定幾率會生成與之前相同的ID。

四、mongoDB 的唯一ID生成策略

mongo唯一ID生成策略——ObjectId,和雪花算法相似度極高。區(qū)別在于雪花算法要占用64個字節(jié),而 ObjectId 只需要占用 12個字節(jié),但是objectId只能存儲秒級別時間戳。

ObjectId如果用字符串表示則有24個字符,但實際上它是由一組十六進制的字符構成,每個字節(jié)兩位的十六進制數(shù)字,總共用了12字節(jié)的存儲空間。


比如:6331500a7cac81af7136236b 這個ID

秒級時間戳
機器碼
進程的pid
序號
mongoDB 的 ObjectId 和雪花算法一樣,無法實現(xiàn)嚴格按照時間的有序性,并且由于是秒級別的時間戳,所以不同機器生成的ID,不按照時間排序的可能性會大很多。而且如果單機時鐘回撥,也會產(chǎn)生與之前重復的ID。

總結

特性/方案Mysql 集群ID數(shù)據(jù)庫雪花算法mongoDB ObjectId
唯一性:white_check_mark::white_check_mark::white_check_mark::white_check_mark:
按照生成時間的有序性:x::white_check_mark::x::x:
維護的難易程度較難易維護易維護

在分布式系統(tǒng)中:

以上四種方案都可以保證生成ID的唯一性
如果并發(fā)量很小的系統(tǒng),可以考慮 雪花算法/mongoDB ObjectId 方案來保證有序性
如果并發(fā)量很大,只能用ID數(shù)據(jù)庫來保證有序性,但是會比 雪花算法/mongoDB ObjectId 方案增加維護成本?

網(wǎng)站標題:mysql多條數(shù)據(jù)存到不同表id唯一分布式系統(tǒng)中的唯一ID生成
地址分享:http://www.js-pz168.com/news10/314710.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供關鍵詞優(yōu)化、軟件開發(fā)、網(wǎng)站設計公司面包屑導航、網(wǎng)站排名靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
国产精品一区一区| 色综合电影网| 综合视频在线观看| 日韩免费在线观看| 亚洲色图在线看| 国产在线视频一区二区| 国产91精品入口17c| 色先锋aa成人| 国产亚洲欧美日韩在线一区| 五月天丁香久久| 91在线观看成人| 亚洲资源在线网| 久久久久国产精品厨房| 香蕉成人啪国产精品视频综合网| 成人av网在线| 亚洲一区二区三区精品在线观看| 精品国产亚洲一区二区三区在线观看| 亚洲综合免费观看高清在线观看| 粉嫩蜜臀av国产精品网站| 欧洲精品久久| 精品久久国产老人久久综合| 午夜日韩在线电影| 99re在线精品| 在线观看亚洲一区| 国产精品成人免费| 国产激情视频一区二区在线观看 | 国产精品理论片| 激情综合色丁香一区二区| 精品日本一区二区三区| 欧美精品久久99| 亚洲影视在线观看| 91丨porny丨中文| 欧美无砖专区一中文字| ●精品国产综合乱码久久久久 | 亚洲午夜精品久久久久久久久| 成人午夜电影小说| 中文字幕一区二区三区在线乱码 | 国产亚洲一区二区三区| 美国十次综合导航| 久久久亚洲综合网站| 日韩亚洲欧美一区二区三区| 亚洲成人手机在线| 成人18视频| 欧美一区二区网站| 亚洲成av人片观看| 国产精品香蕉视屏| 欧美一区二区大片| 视频一区欧美日韩| 久久久福利视频| 久久这里都是精品| 韩国毛片一区二区三区| 天堂社区 天堂综合网 天堂资源最新版 | 欧美电影免费提供在线观看| 午夜精品久久久久| 久久久久久久有限公司| 26uuu久久天堂性欧美| 久久国产综合精品| 日韩欧美国产二区| 国产精品每日更新| caoporen国产精品视频| 欧美性猛交xxxx乱大交退制版| 一二三四区精品视频| 国产精品v欧美精品v日韩| 日韩一区二区免费在线电影| 美洲天堂一区二卡三卡四卡视频| 日本免费高清一区二区| 国产精品国产三级国产普通话99| 成人动漫精品一区二区| 欧美男女性生活在线直播观看| 午夜电影网一区| 热re99久久精品国产99热| 国产精品美女久久久久aⅴ | 国产精华液一区二区三区| 在线中文字幕一区| 亚洲第一会所有码转帖| 蜜桃成人免费视频| 中文字幕高清不卡| 成人高清免费在线播放| 欧美一区二区三区在线观看视频| 日韩中文字幕亚洲一区二区va在线 | 日韩精品一区二区三区丰满| 日韩美女啊v在线免费观看| 99国产在线观看| 亚洲精品在线免费观看视频| 丁香六月综合激情| 91精品国产综合久久精品| 经典三级一区二区| 欧美性猛片xxxx免费看久爱| 免费在线一区观看| 在线一区亚洲| 视频在线观看一区二区三区| 亚洲午夜精品久久久久久浪潮| 一区二区三区不卡视频| 久久免费视频1| 亚洲色图在线播放| 久久亚洲国产精品日日av夜夜| 国产精品对白交换视频| 国产精品一区二区免费| 国产日产欧美一区二区视频| 91在线在线观看| 久久久久88色偷偷免费| 2019国产精品视频| 国产亚洲精品7777| 高清不卡日本v二区在线| 欧美国产日韩亚洲一区| 国产精品二区三区四区| 国产精品视频在线看| 国产日产精品一区二区三区四区| 国产精品久久久久久久浪潮网站| 国产精品一区免费观看| 国产精品免费人成网站| 久久大片网站| 亚洲综合久久av| 亚洲精品自在在线观看| 午夜av一区二区| 欧美在线色视频| 国产乱妇无码大片在线观看| 日韩一区二区麻豆国产| 不卡高清视频专区| 国产亚洲一区字幕| 精品一卡二卡三卡四卡日本乱码| 亚洲色图视频网站| 性欧美大战久久久久久久免费观看| 亚洲动漫第一页| 在线精品视频小说1| 国产乱人伦偷精品视频不卡| 欧美成人一区二区三区在线观看| 97久久超碰精品国产| 国产精品久久影院| 欧美在线视频一区二区三区| 日韩精品五月天| 欧美日韩国产大片| 成人国产精品视频| 中文字幕国产一区| 日韩亚洲欧美精品| 久久国产精品99久久人人澡| 日韩一区二区三区电影在线观看| 91麻豆swag| 亚洲狼人国产精品| 一本一道综合狠狠老| 国产伦精品一区二区三区免费迷| 精品不卡在线视频| 久久精品综合一区| 日韩黄色一级片| 日韩一级成人av| 国产精品一 二 三| 亚洲第一狼人社区| 3d成人动漫网站| 91福利视频导航| 亚洲一二三四在线观看| 欧美亚洲国产一区在线观看网站| 丁香六月久久综合狠狠色| 国产精品三级电影| 亚洲午夜激情| 成人一区二区视频| 国产精品国产三级国产aⅴ无密码| 三区精品视频| 国产激情一区二区三区| 国产精品热久久久久夜色精品三区| 天堂资源在线亚洲视频| 国产乱人伦偷精品视频不卡| 国产日韩精品视频一区| 午夜欧美性电影| 高清av一区二区| 亚洲色大成网站www久久九九| 91黄色激情网站| 51国产成人精品午夜福中文下载| 亚洲综合免费观看高清在线观看| 欧美人与性动xxxx| 国产一区二区三区四区hd| 日韩国产一二三区| 欧美va亚洲va香蕉在线| 欧洲国产精品| 国产成人亚洲综合a∨猫咪| 中文字幕在线免费不卡| 欧美在线|欧美| y111111国产精品久久婷婷| 五月天激情综合网| 精品福利二区三区| 亚洲ai欧洲av| 不卡av免费在线观看| 亚洲综合视频在线观看| 91精品国产91久久久久久最新毛片| 精品国产综合久久| 精彩视频一区二区三区| 中文字幕一区二区在线观看| 欧美日韩精品是欧美日韩精品| 国产精品swag| 精品在线视频一区| 中文字幕在线不卡国产视频| 欧美曰成人黄网| 精品一区二区三区日本| 国产一区二区三区电影在线观看| 成人免费在线播放视频| 制服丝袜亚洲网站| 欧美一级爱爱| 99久久免费视频.com| 日韩av中文字幕一区二区三区 | 亚洲国产精品一区二区www在线| 日韩一区二区三|