該jar包依賴springboot,封裝了美團的leaf-parent,
伺服器不同例項是通過資料庫的主鍵生成表來確保id生成唯一的
只能在有資料來源的模組中使用
如果使用模組中有springboot管理的資料來源可以不用配置資料來源
如果沒有需要在配置中增加資料來源的配置,
com.github.xiefusi
key-generator-starter
1.0.0
key-generator:
dbcust: true #預設為false(使用使用模組中的連線池,為false時下面的datasource可以不用配置)
datasource:
driver-class-name: com.mysql.jdbc.driver
url: jdbc:mysql://$:$/$?useunicode=true&characterencoding=utf8&usessl=false
username: $
password: $
businesses:
- business-id: orderid #業務場景(必填)
begin: 1 #id開始自增點(非必填預設1l)
step: 5000 #自增步長(非必填預設5000)
description: 訂單id #業務場景秒速(非必填預設null)
result result = idutil.get("orderid");
if (status.success.equals(result.getstatus()))
分布式ID生成器
一 需求緣起 幾乎所有的業務系統,都有生成乙個唯一記錄標識的需求,例如 這個記錄標識往往就是資料庫中的主鍵,資料庫上會建立聚集索引 cluster index 即在物理儲存上以這個字段排序。這個記錄標識上的查詢,往往又有分頁或者排序的業務需求,例如 所以往往要有乙個time欄位,並且在time欄位上...
分布式 ID 生成器
乙個唯一 id 在乙個分布式系統中是非常重要的乙個業務屬性,其中包括一些如訂單 id,訊息 id 會話 id,他們都有一些共有的特性 全域性唯一很好理解,目的就是唯一標識某個次請求,某個業務。通常有以下幾種方案 可以利用mysql中的自增屬性auto increment來生成全域性唯一 id,也能保...
自學 分布式ID生成器
最近在做乙個專案,遇到了乙個小問題 針對資料庫的主鍵自增這塊怎麼解決,前提是採用分片部署。如果還是用我們之前的方式主鍵自增,會造成乙個表中id的重複。舉例說明 比如有乙個商品表,將這個商品表部署在3臺伺服器上 server1 server2 server3。如果是以前的主鍵自增 server1中會從...