1、雪花算法介紹
面試官:集群高并發情況下如何實現分布式唯一全局id生成? - 墨天輪
2、百度的UidGenerator 介紹,適合容器化配置,同時兼容springboot,只需要mysql數據庫,
https://github.com/baidu/uid-generator/blob/master/README.zh_cn.md
3、美團的,mysql數據庫和zk
https://github.com/Meituan-Dianping/Leaf/blob/master/README_CN.md
總結:
上面是三個主流的分布式id,可以根據具體業務選擇相關組件,
百度的worker id的生成策略和美團的生成策略不太一樣,美團的snowflake主要利用本地配置的port和IP來唯一確定一個workid,美團的這種生成方式還是可以由于手工配置錯誤造成port重復,最終產生重復ID的風險,百度的這種生成方式每次都是新增的,可能會一段時間后worker id用完的情況,人工配置錯誤的可能性很小了.=