欧美1区2区3区激情无套,两个女人互添下身视频在线观看,久久av无码精品人妻系列,久久精品噜噜噜成人,末发育娇小性色xxxx

雪花算法

常見生成方式

UUID

  • 標(biāo)準(zhǔn)型式包含 32 個(gè) 16 進(jìn)制數(shù)字,以連字號(hào)分為五段,形式為 8-4-4-4-12 的 36 個(gè)字符
  • 性能非常高,本地生成,沒有網(wǎng)絡(luò)消耗
  • UUID.randomUUID().toString()

為什么無序的 UUID 會(huì)導(dǎo)致入庫性能變差

  • 分布式 ID 一般會(huì)作為主鍵,MySQL推薦主鍵盡量越短越好,所以不是很推薦。同時(shí)UUID生成為無序的,不能生成遞增有序的數(shù)字
  • 由于 MYSQL 的索引通過 B+ 樹實(shí)現(xiàn)的,每一次新的 UUID 數(shù)據(jù)的插入,為了查詢的優(yōu)化都會(huì)對(duì)索引底層的 B+ 樹進(jìn)行修改,因?yàn)?UUID 無序所以每一次插入都會(huì)對(duì)主鍵的 B+ 樹進(jìn)行很大的修改,可能會(huì)導(dǎo)致一些中間節(jié)點(diǎn)產(chǎn)生分裂,也會(huì)創(chuàng)造很多不飽和節(jié)點(diǎn),降低了數(shù)據(jù)庫插入的性能


數(shù)據(jù)庫主鍵自增

  • 自增 ID 機(jī)制的主要原理是:數(shù)據(jù)庫自增 ID 和 MySQL 數(shù)據(jù)庫的replace into 實(shí)現(xiàn)
  • replace into 的含義是 插入一條記錄,如果表中唯一索引的值遇到?jīng)_突,則替換老數(shù)據(jù)

缺點(diǎn)

  • 系統(tǒng)水平拓展比較困難,需要定義步長和初始值來實(shí)現(xiàn),配置麻煩,利用率低
  • 數(shù)據(jù)庫壓力大,每次獲取 ID都得讀寫一次數(shù)據(jù)庫,非常影響性能,不符合分布式 ID 里面的低延遲和高 QPS 要求


基于 Redis 生成全局 ID

  • 與 MySQL 類似,好處是可以獲取更高的吞吐量,同時(shí)也需要設(shè)置步長和增長,key一定要設(shè)置有效期


雪花算法

  • 官網(wǎng)
  • Twitter 的分布式自增 ID 算法 snowflake
  • 集群高并發(fā)情況下保證分布式唯一全局 ID 生成,生成的 ID 能過按照時(shí)間有序生成,結(jié)果是一個(gè) 64 bit 大小的整數(shù),為一個(gè) Long 性;分布式系統(tǒng)內(nèi)不會(huì)產(chǎn)生 ID 碰撞(由 datacenter 和 workerID 區(qū)分)并且效率較高
  • 41 bit 用來記錄時(shí)間戳,毫秒級(jí);12 bit 用來記錄同毫秒內(nèi)產(chǎn)生的不同 ID
  • 10 bit 工作進(jìn)程位,用來記錄工作機(jī)器ID, 一般分為 5 datacenter 和 5 workerID alt

分布式全局 ID 要求

  1. 全局唯一
  2. 趨勢(shì)遞增
  3. 單調(diào)遞增
  4. 信息安全
  5. 含時(shí)間戳

優(yōu)勢(shì)與劣勢(shì)

  1. 毫秒數(shù)在高位,自增序列在低位,整個(gè) ID 都是趨勢(shì)遞增的
  2. 不依賴數(shù)據(jù)庫等第三方系統(tǒng),以服務(wù)的方式部署,穩(wěn)定性、生成 ID 的性能高
  3. 可以根據(jù)自身業(yè)務(wù)特性分配 bit 位,相對(duì)靈活
  4. 依賴機(jī)器時(shí)鐘,如果機(jī)器時(shí)鐘回?fù)軙?huì)導(dǎo)致重復(fù) ID 生成

拓展

  • 百度開源的分布式唯一 ID 生成器 UidGenerator
  • 美團(tuán)點(diǎn)評(píng)分布式 ID 生成系統(tǒng) Leaf


hshuo的面試之路 文章被收錄于專欄

作者目標(biāo)是找到一份Java后端方向的工作 此專欄用來記錄從Bilibili、書本、其他優(yōu)質(zhì)博客上面學(xué)習(xí)的內(nèi)容 用于鞏固、總結(jié)內(nèi)容 主要包含Docker、Dubbo、Java基礎(chǔ)、JUC、Maven、MySQL、Redis、SpringBoot、SpringCloud、數(shù)據(jù)結(jié)構(gòu)、雜文、算法、計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)、設(shè)計(jì)模式等相關(guān)內(nèi)容

全部評(píng)論

相關(guān)推薦

咦喲,從去年八月份開始長跑,兩處實(shí)習(xí)轉(zhuǎn)正都失敗了,風(fēng)雨飄搖,終于拿到offer了更新一下面試記錄:秋招:多部門反復(fù)面試然后掛掉然后復(fù)活,具體問了啥已經(jīng)忘了,只是被反復(fù)煎炸,直至焦香??春招:base北京抖音hr打來電話說再次復(fù)活,準(zhǔn)備面試,gogogo北京抖音一面:六道筆試題:1.promise順序2.定義域問題3.flat展開4.并發(fā)請(qǐng)求5.島嶼數(shù)量算法(力扣)深度,廣度都寫6.忘記了,好像也是算法,難度中等其他問題多是框架底層設(shè)計(jì),實(shí)習(xí)項(xiàng)目重難點(diǎn)~~~秒過??北京抖音二面:三道筆試題:(為什么只有三道是因?yàn)榈谌罌]做出來,卡住了)1.中等難度算法(忘記啥題了,應(yīng)該是個(gè)數(shù)組的)2.認(rèn)識(shí)js的繼承本質(zhì)(手寫繼承模式,深入js的面相對(duì)象開發(fā))3.手寫vue的響應(yīng)式(卡在了watch,導(dǎo)致掛掉)---后知后覺是我的注冊(cè)副作用函數(shù)寫得有問題,有點(diǎn)緊張了其他題目多是項(xiàng)目拷打,項(xiàng)目亮點(diǎn),對(duì)實(shí)習(xí)項(xiàng)目的貢獻(xiàn)~~~第二天,掛,but立馬復(fù)活轉(zhuǎn)戰(zhàn)深圳客服當(dāng)天約面深圳客服一面:六道筆試題,由于面過太多次字節(jié),面試官叫我直接寫,不用講,快些寫完??,具體都是些繼承,深拷貝(注意對(duì)數(shù)組對(duì)象分開處理,深層次對(duì)象,循環(huán)引用),加中等難度算法題~~~秒過深圳客服二面:口訴八股大戰(zhàn):大概囊括網(wǎng)絡(luò),瀏覽器渲染原理,動(dòng)畫優(yōu)化,時(shí)間循環(huán),任務(wù)隊(duì)列等等(你能想到的簡單八股通通拉出來鞭尸??)算法題:筆試題6道:1:找出數(shù)組內(nèi)重復(fù)的數(shù),arr[0]-arr[n]內(nèi)的數(shù)大小為[1-n],例如[1,2,2,3,3]返回[2,3],要求o(n),且不使用任何額外空間(做到了o(n),空間方面欠佳,給面試官說進(jìn)入下一題,做不來了)2:原滋原味的繼承(所以繼承真滴很重要)3:力扣股票購買時(shí)機(jī)難度中等其他滴也忘記了,因?yàn)槟玫給ffer后鼠鼠一下子就落地了,腦子自動(dòng)過濾掉可能會(huì)攻擊鼠鼠的記憶??~~~秒過深圳客服三面:項(xiàng)目大戰(zhàn)參與戰(zhàn)斗的人員有:成員1:表單封裝及其底層原理,使用成本的優(yōu)化,聲明式表單成員2:公司內(nèi)部庫生命周期管理成員3:第三方庫和內(nèi)部庫沖突如何源碼斷點(diǎn)調(diào)試并打補(bǔ)丁解決成員4:埋點(diǎn)的藝術(shù)成員5:線上項(xiàng)目捷報(bào)頻傳如何查出內(nèi)鬼成員6:大文件分片的風(fēng)流趣事成員7:設(shè)計(jì)模式對(duì)對(duì)碰成員8:我構(gòu)建hooks應(yīng)對(duì)經(jīng)理的新增的小需求的故事可能項(xiàng)目回答的比較流利,筆試題3道,都很簡單,相信大家應(yīng)該都可以手拿把掐??~~~過過過無hr面后續(xù)煎熬等待幾天直接hr打電話發(fā)offer了,希望大家也可以拿到自己心儀的offer
法力無邊年:牛哇,你真是準(zhǔn)備得充分,我對(duì)你沒有嫉妒,都是實(shí)打?qū)嵏冻?img style="width:18px; height:18px" data-card-emoji="[贊]" data-card-nowcoder="[贊]" src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763718/D9FDAE9918A39C99254A9D8D179628E5"/>,
查看19道真題和解析
點(diǎn)贊 評(píng)論 收藏
分享
評(píng)論
1
2
分享

創(chuàng)作者周榜

更多
??途W(wǎng)
牛客企業(yè)服務(wù)