高併發,分布式電商訂單號生成

2021-08-22 00:19:48 字數 681 閱讀 6400

優點:簡單

uuid.randomuuid()
缺點:

1. 使用者不友好,無序,不可讀

2. 索引關聯效率較低,查詢慢

3. 分布式集群情況下有機率重複

在資料庫集群環境下,不同的資料庫節點可以設定不同的起步值、相同的步長值來實現訂單號唯一

tab_a   起步值1   步長值10111

2131

41tab_b 起步值2 步長值10212

2232

42

優點:

1. 無需編碼

2. 遞增

缺點:1. db單點故障

2. 高併發下插入資料需要事務機制

3. 擴充套件性瓶頸

整體上按照時間自增排序,並且整個分布式系統內不會產生id碰撞(由資料中心id和機器id作區分),並且效率較高,snowflake每秒能夠產生26wid左右。

優點:1. 低位趨勢遞增

缺點:1. 依賴伺服器時間(極端情況:更改伺服器時間會導致id重複)

redis 提供incr(key)方法, 將key中的數字值增1,如key不存在,key的值會被初始化為0。

優點:1. 無單點故障

2. 效能優於db

3. 遞增

缺點:1. redis集群維護

電商交易系統高併發分布式訂單號生成策略

商交易系統高併發分布式訂單號生成策略 一 要求 1.全域性唯一性,不能重複 2.資訊保安加密防止使用者根據id規則獲取資料 二,策略 1.uuid 唯一識別碼,16個位元組 128位 uuid 有幾個實現版本,比如jdk 自帶的uuid 優點 生成簡單,不占用寬頻,本地生成,資料遷移不影響。缺點 字...

分布式環境下訂單號的生成策略

什麼是分布式 如專案分布 訂單模組,商品模組,支付模組。由於每個模組之間的訪問壓力的不同,可以根據需要各自部署在不同數量的伺服器上,如訂單模組3臺,商品4臺,支付模組2臺。分布式環境下訂單號的生成要求 必要 全域性唯一 其他的 趨勢遞增,高併發,高可用,資訊保安,長度 過長會造成儲存壓力過大 生成策...

高並發生成唯一訂單號

最近開發一套會員系統,涉及到訂單號生成,在高並發條前提下,如何生成唯一的訂單號值得斟酌,我這裡提供一種較為可行的方案 public static string getorderidbyuuid 0 代表前面補充0 4 代表長度為4 d 代表引數為正數型 return time string.form...