What Are Snowflake IDs?
Credit by: Wei-Yu Chen (感謝分享)
本文介紹了 Universal Unique Identifiers(UUIDs)的用途及其重要性,UUID 以固定且標準的方式為每個物件產生出獨立的 ID,且 產生出來的 ID 幾乎不可能會重複導致發生碰撞。
通常 UUID 由幾個部分組合而成,像是以時間、執行節點的 MAC address,或以 MD5 hash 來生成。UUID 以 128 bits 的數字組成,為了更方便識別及操作,通常都會以十六進制來表示,總長度為 36 個字(加上連字符號 -)。也因用來產生 UUID 的亂數種子包含了時間、節點資訊等參數,所以 UUID 也具有獨特性,在分散式系統執行也不容易發生碰撞。
而為了避免在你的 apps 裡實作 UUID 的產生機制,常見會使用兩種作法,分別是:Persistence Layer Generated ID 和 ID Servers。一種使用 Database 自動產生出來的序號來作為識別物件的 ID(如 MongoDB 的 ObjectID、MySQL 的 AUTO_INCREMENT ... 等),另一種是使用獨立的 ID server 來產生物件的 ID。
以 Database 來作為序號產生器會碰到一個問題,當你在每次建立新物件時,都會需要向資料庫讀取這個物件的「自動產生 ID」,假設應用程式的規模一大,效能勢必會大受影響。
而使用 ID server(也就是本文主要介紹的 Snowflake IDs)去產生 UUID 的話,就可利用架構於 app 以外的第三方序號產生器。以 Twitter 來說,平均每秒鐘有九千個推文,在高峰期間更甚至會出現一秒 143199 則推文的流量,他們所需要的 UUID 不僅要能夠支援龐大的架構,也需要在以非常快的速度產生出 ID,這也是 Snowflake 專案的由來。
因此,Twitter 以這幾個參數來組成 UUID:
- 保留不使用的位元,固定為 0 - 共 1 位
- Timestamp(以毫秒為單位) - 共 41 位
- 機器 ID - 共 10 位
- 序列號 - 從 0 ~ 4095 依序重複使用 - 共 12 位
雖然說以 ID servers 來產生 UUID 之後,效能還是會被這種架構拖累(必須在建立物件就去向 ID server 發送請求,並等待產生出來的 ID),但這種作法和資料庫系統相比起來已經讓效能降低的問題變得更輕微。
在本文當中介紹了三種常見的 ID 產生方式:在 local app 端產生 ID、在資料庫產生 ID、集中式的 ID server 產生 ID,這些策略的選擇也根據你的使用情境而定,畢竟沒有一種一套打天下的解決方案,在選擇時仍須衡量每個專案的需求。
https://betterprogramming.pub/uuid-generation-snowflake-identifiers-unique-2aed8b1771bc
「序號產生器」的推薦目錄:
- 關於序號產生器 在 矽谷牛的耕田筆記 Facebook 的精選貼文
- 關於序號產生器 在 林恩如-飆股女王 Facebook 的精選貼文
- 關於序號產生器 在 林恩如-飆股女王 Facebook 的精選貼文
- 關於序號產生器 在 [問題] 軟體序號產生器? - 看板C_and_CPP - 批踢踢實業坊 的評價
- 關於序號產生器 在 序號產生器製作在PTT/Dcard完整相關資訊 - 健康急診室 的評價
- 關於序號產生器 在 序號產生器製作在PTT/Dcard完整相關資訊 - 健康急診室 的評價
- 關於序號產生器 在 貝殼幣序號產生器的影片 第1集 - YouTube 線上影音下載 的評價
- 關於序號產生器 在 農民幣無上限美粒果序號產生器facebook開心農場 - osaki無名 ... 的評價
序號產生器 在 林恩如-飆股女王 Facebook 的精選貼文
🎉 最後三小時!這次就送你14個月🎉留言【14個月送超多!】
#教你獲得14個月權限又省10% #只有3天
無論你想『續約』『好友分享』甚是『新購買用戶』
只要你有購物金🔥今天全部最高折抵10%!🔥
http://cmy.tw/006Fu5
㊙小編教你怎麼組合出14個月!!
(1) 如果你想續約...
只要您的軟體還在權限之內,在今天續約除了享有原本多 1
個月的續約回饋外,還可以在『結帳頁面』使用購物金折抵最高10%!😘想續約的人,絕對不可錯過!
立即續約網址:http://cmy.tw/006bJl
(2) 如果你的朋友剛好想買軟體...
恭喜你!只要透過『好友分享機制』,讓你的朋友成功購買,你們兩個人就可以各再得到 1 個月序號喔!😀 而且,還可以在今天折抵購物金 10%!
好友分享序號產生器:http://cmy.tw/006HSD
(注意:朋友一定要用產生器的網址購買喔!)
(3) 如果你是第一次購買的用戶:
那你實在太好運了!就算第一次購買軟體,只要你有購物金今天購買直接最高折10% 😍 ~(EX:過年抽紅包得到很多購物金)
立即購買:http://cmy.tw/006bJl
*小編再偷偷告訴大家,只要你續約,又分享好友,就可以得到14的月權限,又折抵 10%~ 實在超划算!
**購買軟體後,就可以申請加入VIP LINE群,24小時與學長姊和老師探討投資心性喔!申請方式:http://cmy.tw/0066O3
序號產生器 在 林恩如-飆股女王 Facebook 的精選貼文
🎉 『軟體會員慶典』開跑(3/16 - 3/18) 🎉留言【現在超便宜!】
#教你獲得14個月權限又省10% #只有3天
無論你想『續約』『好友分享』甚是『新購買用戶』
只要你有購物金,🔥今天全部最高折抵10%!🔥
http://cmy.tw/005x1J
㊙小編購買秘笈(偷偷教你買到最划算✏)
(1) 如果你想續約...
只要您的軟體還在權限之內,在今天續約除了享有原本多 1
個月的續約回饋外,還可以在『結帳頁面』使用購物金折抵最高10%!😘想續約的人,絕對不可錯過!
立即續約網址:http://cmy.tw/006bJl
(2) 如果你的朋友剛好想買軟體...
恭喜你!只要透過『好友分享機制』,讓你的朋友成功購買,你們兩個人就可以各再得到 1 個月序號喔!😀 而且,還可以在今天折抵購物金 10%!
好友分享序號產生器:http://cmy.tw/006HSD
(注意:朋友一定要用產生器的網址購買喔!)
(3) 如果你是第一次購買的用戶:
那你實在太好運了!就算第一次購買軟體,只要你有購物金今天購買直接最高折10% 😍 ~(EX:過年抽紅包得到很多購物金)
立即購買:http://cmy.tw/006bJl
*小編再偷偷告訴大家,只要你續約,又分享好友,就可以得到14的月權限,又折抵 10%~ 實在超划算!
**購買軟體後,就可以申請加入VIP LINE群,24小時與學長姊和老師探討投資心性喔!申請方式:http://cmy.tw/0066O3
序號產生器 在 序號產生器製作在PTT/Dcard完整相關資訊 - 健康急診室 的推薦與評價
名稱: 網址: 類型: 網站. FTP Skype 電話號碼密碼序號產生器- 線上工具線上密碼產生器,可自由選擇產生大寫字母、小寫字母、數字符號等組合 ... ... <看更多>
序號產生器 在 序號產生器製作在PTT/Dcard完整相關資訊 - 健康急診室 的推薦與評價
名稱: 網址: 類型: 網站. FTP Skype 電話號碼密碼序號產生器- 線上工具線上密碼產生器,可自由選擇產生大寫字母、小寫字母、數字符號等組合 ... ... <看更多>
序號產生器 在 [問題] 軟體序號產生器? - 看板C_and_CPP - 批踢踢實業坊 的推薦與評價
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
WIN 10 VS2010 VS2008
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
MFC
問題(Question):
己知要寫個收費軟體,要做一個序號給付費使用者輸入
可打開全部功能
己知目前有的是鎖 CPU ID ??
或是鎖其他硬體,也看過純軟體的,這種需求是否有資料可以看?
當然自己也要有個序號產生器要寫,給老闆用的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.133.28.13
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1440573589.A.AE8.html
※ 編輯: liang168 (220.133.28.13), 08/26/2015 15:34:37
※ 編輯: liang168 (220.133.28.13), 08/26/2015 18:49:27
... <看更多>