分布式ID的需求
在分布式系統中。ID有如下需求
全局唯一性,不能出現重復的id號
信息安全:防止惡意用戶規矩id的規則來獲取數據
數據遞增:保證我的下一ID一定大于上一個ID
UUID通用唯一識別碼,16個字節128位的長數字
組成部分:當前時間和時間序列+全局唯一性網卡地址
優點:代碼實現簡單,不占用寬帶,數據遷移不受影響
缺點:無序,無法保證趨勢遞增,查詢慢,不可讀
國外的twitter分布式下ID生成算法
1bit+41bit+10bit+10bit=62bit
高位隨機+毫秒數+機器碼(數據中心+機器id)+10的流水號
優點:代碼實現簡單,不占用寬帶,數據遷移不受影響,低位趨勢遞增
缺點:多臺服務器時間一定要一樣,無序無法保證趨勢遞增要求
優點:代碼實現方便,性能不錯,數字排序,可讀性很強
缺點:受限數據庫,擴展麻煩,插入數據庫才能拿到ID,單點故障問題
主從同步的時候:電商下單–>支付 intsert master db select 數據 因為數據庫同步延遲導致查不到這個數據,加cahe不是最好的解決方式,數據要求比較嚴謹的話查master主庫.
年份+當前這天屬于這一年的第多少天+小時+redis自增
2+3+2+5=12位
數據多了可以設置一個失效時間重新生成,
優點:不依賴數據,靈活方便,性能優于數據庫,沒有單故障,高可用
缺點:需要占用網絡資源,性能要比本地生成慢,需要增加插件
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71185.html
摘要:幾乎所有的系統都存在生成唯一的需求,如用戶賬單等,由于系統通常是分布式架構,因而需要有合適的分布式生成方案。優勢和數據庫自增方案類似缺點同樣仍然有性能上限,依賴數據庫的可用性。使用時,可以使用具體的場景選擇合適的方案。幾乎所有的系統都存在生成唯一ID的需求,如用戶ID、賬單ID等,由于系統通常是分布式架構,因而需要有合適的分布式ID生成方案。常見的分布式唯一ID方法有(歡迎補充):時間戳數據...
摘要:序本文主要來聊聊分布式的生成方案。分布式的生成,以為代表的,系列算法采用的就是劃分命名空間并行生成的思路。 序 本文主要來聊聊分布式id的生成方案。 目標 業務系統需要什么樣的ID生成器中提出了幾點目標: 唯一性 時間相關 粗略有序 可反解 可制造 主要思路 對于每個標識,都需要有一個命名空間(namespace),來保證其相對唯一性。分布式的ID生成,以Twitter Snowf...
摘要:為什么需要發號器在分布式系統中,經常需要對大量的數據消息請求等進行唯一標識,例如對于分布式系統,服務間相互調用需要唯一標識,調用鏈路分析,日志追蹤的時候需要使用這個唯一標識。 原文鏈接:何曉東 博客 文章起源于 康神交流群的 panda大佬和boss li關于發號器的一些交流,特此感謝讓我們學到了新知識。 為什么需要發號器 在分布式系統中,經常需要對大量的數據、消息、http 請求等進...
摘要:原文地址唯一的生成并不是一件小事想說愛它也并不是像簡單來一個這樣一件容易的事為什么要唯一數據庫的自增在分庫的時候會是一場災難假設分兩個庫因為每個庫都會開始從開始自增屆時系統中將會出現兩個為的用戶自增會暴露用戶量或者其他業務量自增會讓有心者 [原文地址:https://blog.ti-node.com/blog...] 唯一ID的生成并不是一件小事 , 想說愛它 , 也并不是像簡單來一個...
摘要:同時除了對號碼自身的要求,業務還對號生成系統的可用性要求極高,想象一下,如果生成系統癱瘓,整個美團點評支付優惠券發券騎手派單等關鍵動作都無法執行,這就會帶來一場災難。 分布式id主要用到哪些地方 在復雜分布式系統中,往往需要對大量的數據和消息進行唯一標識。如在美團點評的金融、支付、餐飲、酒店、貓眼電影等產品的系統中,數據日漸增長,對數據分庫分表后需要有一個唯一ID來標識一條數據或消息,...
閱讀 2231·2021-11-22 14:56
閱讀 9834·2021-09-08 10:45
閱讀 1966·2019-08-30 13:54
閱讀 2858·2019-08-29 16:54
閱讀 2003·2019-08-29 14:20
閱讀 1773·2019-08-29 12:25
閱讀 1851·2019-08-29 12:17
閱讀 1048·2019-08-23 18:29