摘要:同時除了對號碼自身的要求,業務還對號生成系統的可用性要求極高,想象一下,如果生成系統癱瘓,整個美團點評支付優惠券發券騎手派單等關鍵動作都無法執行,這就會帶來一場災難。
分布式id主要用到哪些地方
在復雜分布式系統中,往往需要對大量的數據和消息進行唯一標識。如在美團點評的金融、支付、餐飲、酒店、貓眼電影等產品的系統中,數據日漸增長,對數據分庫分表后需要有一個唯一ID來標識一條數據或消息,數據庫的自增ID顯然不能滿足需求;特別一點的如訂單、騎手、優惠券也都需要有唯一ID做標識。此時一個能夠生成全局唯一ID的系統是非常必要的。
分布式id創建的業務需求要求如下所示
1.全局唯一性:不能出現重復的ID號,既然是唯一標識,這是最基本的要求。
2.趨勢遞增:在MySQL InnoDB引擎中使用的是聚集索引,由于多數RDBMS使用B-tree的數據結構來存儲索引數據,在主鍵的選擇上面我們應該盡量使用有序的主鍵保證寫入性能。
3.單調遞增:保證下一個ID一定大于上一個ID,例如事務版本號、IM增量消息、排序等特殊需求。
4.信息安全:如果ID是連續的,惡意用戶的扒取工作就非常容易做了,直接按照順序下載指定URL即可;如果是訂單號就更危險了,競對可以直接知道我們一天的單量。所以在一些應用場景下,會需要ID無規則、不規則。
5.分布式id里面最好包含時間戳,這樣就能夠在開發中快速了解這個分布式id的生成時間
上述123對應三類不同的場景,3和4需求還是互斥的,所以無法使用同一個方案滿足。
同時除了對ID號碼自身的要求,業務還對ID號生成系統的可用性要求極高,想象一下,如果ID生成系統癱瘓,整個美團點評支付、優惠券發券、騎手派單等關鍵動作都無法執行,這就會帶來一場災難。由此我總結下一個ID生成系統應該做到如下幾點:
可用性高:就是我用戶發了一個獲取分布式id的請求,那么你服務器就要保證99.999%的情況下給我創建一個分布式id
延遲低:就是我用戶給你一個獲取分布式id的請求,那么你服務器給我創建一個分布式id的速度就要快
高QPS:這個就是用戶一下子有10萬個創建分布式id請求同時過去了,那么你服務器要頂的住,你要一下子給我成功創建10萬個分布式id
原文鏈接
其他分布式ID系列快捷鍵:
分布式ID系列(1)——為什么需要分布式ID以及分布式ID的業務需求
分布式ID系列(2)——UUID適合做分布式ID嗎
分布式ID系列(3)——數據庫自增ID機制適合做分布式ID嗎
分布式ID系列(4)——Redis集群實現的分布式ID適合做分布式ID嗎
大佬網址
https://www.itqiankun.com/art...
https://blog.csdn.net/hengyun...
https://tech.meituan.com/2017...
https://segmentfault.com/a/11...
https://www.jianshu.com/p/9d7...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76113.html
摘要:用戶指定一個名字空間和一個字符串,通過散列,生成。字符串本身需要是唯一的。。雖然是基于隨機數,但是重復的可能性可以忽略不計,因此該版本也是被經常使用的版本。。當前正在使用的。。 UUID的生成策略: UUID的方式能生成一串唯一隨機32位長度數據,它是無序的一串數據,按照開放軟件基金會(OSF)制定的標準計算,UUID的生成用到了以太網卡地址、納秒級時間、芯片ID碼和許多可能的數字。U...
摘要:數據庫自增機制原理介紹在分布式里面,數據庫的自增機制的主要原理是數據庫自增和數據庫的函數實現的。 數據庫自增ID機制原理介紹 在分布式里面,數據庫的自增ID機制的主要原理是:數據庫自增ID和mysql數據庫的replace_into()函數實現的。這里的replace數據庫自增ID和mysql數據庫的replace_into()函數實現的。這里的replace into跟insert功...
摘要:問題是,重復請求導致的數據重復插入。這問題造成的后果很明顯數據冗余,可能不單單多一條有些業務需求不能有多余數據,造成服務問題問題如圖所示解決方式如何將同請求,不執行插入,而是讀取前一個請求插入的數據并返回。那么使用分布式鎖的解決方案。 摘要: 原創出處 https://www.bysocket.com 「公眾號:泥瓦匠BYSocket 」歡迎關注和轉載,保留摘要,謝謝!目錄 為啥要解...
閱讀 1586·2021-11-22 15:33
閱讀 1727·2021-11-15 18:01
閱讀 663·2021-10-09 09:43
閱讀 2603·2021-09-22 16:03
閱讀 757·2021-09-03 10:28
閱讀 3549·2021-08-11 10:22
閱讀 2717·2019-08-30 15:54
閱讀 1760·2019-08-30 14:21