• ID生成器的一种可扩展实现方案


    ID生成器主要为了解决业务程序生成记录ID的场景,而一个好的ID生成器肯定要满足扩展性好、并发性好的特点,本文下面介绍一种满足上述特点的实现方案。

    此方案的核心思想是:每次需要扩容机器时,将每个节点维护的ID集合分成相等两份,其中一份分给一个新增的节点。

    此方案的实现过程:

    1 初始时,由一个节点负责生成ID;
    2 满足不了需求后,增加一个节点,变成两个节点;
    3 满足不了需求后,增加两个节点,变成四个节点;
    4 依此类推。
    

    节点扩容时,不能中断业务,可采取如下方式:

    1、先将所有运行节点的ID的增长step * 2;
    2、然后将每个运行节点ID+step(ID是增长前的值,step也是变化前的值)赋给该节点对应的那个新增的节点,然后新增节点的ID按新的step继续增长。
  • 相关阅读:
    BZOJ5212 ZJOI2018历史(LCT)
    BZOJ5127 数据校验
    253. Meeting Rooms II
    311. Sparse Matrix Multiplication
    254. Factor Combinations
    250. Count Univalue Subtrees
    259. 3Sum Smaller
    156. Binary Tree Upside Down
    360. Sort Transformed Array
    348. Design Tic-Tac-Toe
  • 原文地址:https://www.cnblogs.com/coderland/p/5902809.html
Copyright © 2020-2023  润新知