設計一個針對全球的、訪問量極大的id生成系統。必須保證用戶每次從該系統得到的id是唯一的,而且在概率上毫無碰撞可能。
設計思路:
- 系統存在一個全局的ID管理器,爲了防止宕機做成主從備份。
- 爲了抗住訪問壓力,設置多級ID生成器
- 每個ID生成器向上級發送請求,獲取start開始ranger範圍的ID,父節點記錄好每個ID範圍對應的機器
- 當訪問量過大時父節點加大ranger範圍,化解訪問壓力
- 如果有節點掛了,在重新啓動時可以向父節點重新申請ID範圍,不影響全局ID變化
- 查找方便,不用遍歷所有的ID,從全局的ID管理器查找ID在那個範圍、那個機器上。一直向下搜索