色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

JAVA互聯(lián)網(wǎng)架構(gòu)分庫(kù)分表分布式下如何實(shí)現(xiàn)ID全局唯一性

JAVA互聯(lián)網(wǎng)架構(gòu)分庫(kù)分表分布式下如何實(shí)現(xiàn)ID全局唯一性?

分庫(kù)分表:

跨庫(kù)的問(wèn)題

分布式事務(wù)問(wèn)題

查詢數(shù)據(jù)結(jié)果集合并

全局唯一性ID保證

要求:

1、全局唯一性:不能出現(xiàn)重復(fù)的id號(hào)(基本的要求)。

2、信息安全:防止惡意用戶規(guī)矩id的規(guī)則來(lái)獲取數(shù)據(jù)。混淆效果

3、數(shù)據(jù)遞增:保證我下一個(gè)ID一定大于上一個(gè)ID。

當(dāng)前201709122030下一個(gè):201709122031下一個(gè):201709122032

互斥關(guān)系:信息安全、數(shù)據(jù)遞增規(guī)律

CREATE TABLE `tl_id` (`id` varchar(255) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

業(yè)界分案:

UUID:

通用唯一識(shí)別碼16個(gè)字節(jié)128位的長(zhǎng)數(shù)字、

組成部分:當(dāng)前日期和時(shí)間序列+全局的唯一性網(wǎng)卡mac地址

執(zhí)行任務(wù)數(shù):10000------------------------所有線程共耗時(shí):38.305 s并發(fā)執(zhí)行完耗時(shí):449.0 ms單任務(wù)平均耗時(shí):3.8305 ms單線程最小耗時(shí):0.0 ms單線程最大耗時(shí):193.0 ms

總結(jié):

優(yōu)點(diǎn)代碼實(shí)現(xiàn)簡(jiǎn)單、不占用寬帶、數(shù)據(jù)遷移不受影響

缺點(diǎn)無(wú)序、無(wú)法保證趨勢(shì)遞增(要求3)字符存儲(chǔ)、傳輸、查詢慢、不可讀

Snowflake雪花算法

國(guó)外的twitter分布式下iD生成算法

1bit+41bit+10bit+10+bit=62bit

高位隨機(jī)+毫秒數(shù)+機(jī)器碼(數(shù)據(jù)中心+機(jī)器id)+10的流水號(hào)

國(guó)內(nèi):

保證數(shù)據(jù)的唯一性就行了IDC機(jī)房。

總結(jié):

優(yōu)點(diǎn)代碼實(shí)現(xiàn)簡(jiǎn)單、不占用寬帶、數(shù)據(jù)遷移不受影響、低位趨勢(shì)遞增缺點(diǎn)強(qiáng)以來(lái)時(shí)鐘(多臺(tái)服務(wù)器時(shí)間一定要一樣)、無(wú)序無(wú)法保證趨勢(shì)遞增(要求3)

Mysql:

奇數(shù)跟我們偶數(shù)遞增步長(zhǎng)2

適合小型互聯(lián)網(wǎng)公司、比如可以知道我們一定生成的ID數(shù)量 五萬(wàn)的訂單量

一年1千8百萬(wàn)

Mysql一張表500萬(wàn)

如果公司每天訂單量5萬(wàn)的數(shù)據(jù) 我們用mysql設(shè)置步長(zhǎng)位100的話可以用27年

只能為100庫(kù) 公司來(lái)到風(fēng)投了 每天的訂單量50萬(wàn)100萬(wàn)的時(shí)候

總結(jié):

優(yōu)點(diǎn)代碼實(shí)現(xiàn)方便、性能不錯(cuò)、數(shù)字排序、可讀性很強(qiáng)缺點(diǎn)受限數(shù)據(jù)庫(kù)、擴(kuò)展麻煩、插入數(shù)據(jù)庫(kù)才能拿到ID、單點(diǎn)故障的問(wèn)題

主從同步的時(shí)候:電商下單->支付insert master db select數(shù)據(jù) 因?yàn)閿?shù)據(jù)同步延遲導(dǎo)致查不到這個(gè)數(shù)據(jù)。加cache(不是最好的解決方式)數(shù)據(jù)要求比較嚴(yán)謹(jǐn)?shù)脑挷閙aster主庫(kù)。

CREATE TABLE `tl_num` (

`id` bigint(11) NOT NULL AUTO_INCREMENT,

KEY (`id`) USING BTREE

) ENGINE=InnoDB auto_increment=1 DEFAULT CHARSET=utf8;

Redis:

執(zhí)行任務(wù)數(shù):10000------------------------所有線程共耗時(shí):136.587 s并發(fā)執(zhí)行完耗時(shí):1.515 s單任務(wù)平均耗時(shí):13.6587 ms單線程最小耗時(shí):1.0 ms單線程最大耗時(shí):254.0 ms

總結(jié):

優(yōu)點(diǎn)不依賴數(shù)據(jù)、靈活方便、性能優(yōu)于數(shù)據(jù)庫(kù)的、沒(méi)有單點(diǎn)故障(高可用)缺點(diǎn)需要占用網(wǎng)絡(luò)資源、性能要比本地生成慢、需要增加插件

java分布式應(yīng)用,JAVA互聯(lián)網(wǎng)架構(gòu)分庫(kù)分表分布式下如何實(shí)現(xiàn)ID全局唯一性