分散式id生成系統--總結
分散式id生成系統--總結
UUID
簡單易用, 但是做資料庫分片的時候, UUID不太適合作為分片鍵
snowflake
效能非常高, 缺點是如果時間回撥或者各個例項節點時間不一致, 容易出錯
美團開源的Leaf
支援多種不同模式的生成策略
-
號段模式
- 該模式需要建DB表, 需要有專門的服務來提供獲取id的介面, 存在網路延遲
- Snowflake模式
為了追求更高的效能,需要通過RPC Server來部署Leaf 服務,那僅需要引入leaf-core的包,把生成ID的API封裝到指定的RPC框架中即可
詳見 Leaf
sharding-jdbc開源的主鍵生成元件
簡單易用, 可以指定workerId或者不指定, 直接通過jar的方式引入即可
百度開源的uid-generator
需要建DB表, 需要有專門的服務來提供獲取id的介面, 存在網路延遲