一种分布式系统的ID分配方法及装置与流程
- 国知局
- 2024-10-15 09:35:11
本申请涉及服务端开发,更具体的说,是涉及一种分布式系统的id分配方法及装置。
背景技术:
1、在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在金融、电商、支付等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一id来标识一条数据或消息。数据库的自增id从性能、扩展性等方面考虑不能很好满足需求,此时一个能够生成全局唯一id的系统是非常必要的。
技术实现思路
1、有鉴于此,本申请提供如下技术方案:
2、一种分布式系统的id分配方法,包括:
3、第一节点获得id分配请求,所述id分配请求中包括业务标识和待标识数据,所述第一节点为基于所述业务标识能够唯一确定的用于处理所述id分配请求的目标节点,所述待标识数据为需要分配id的数据;
4、基于预加载的号段为所述待标识数据分配id,所述预加载的号段为与所述业务标识具有绑定关系的号段。
5、可选地,还包括:
6、各节点预先将自身ip和端口信息注册到etcd;
7、主节点从etcd获得所有节点的注册信息生成并维护路由表,所述路由表中包括所有节点的通信路径,所述主节点为所有节点中的一个节点;
8、所述主节点将所述路由表发送给其他的每一个节点。
9、可选地,所述第一节点获得id分配请求,包括:
10、第一节点获得终端发送的id分配请求,并基于其中的业务标识和所述路由表确定自身为处理所述id分配请求的目标节点;
11、或,
12、第一节点获得第二节点发送的id分配请求,所述第一节点为所述第二节点在接收到所述id分配请求后,基于其中的业务标识和所述路由表确定的用于处理所述id分配请求的目标节点。
13、可选地,所述目标节点的确定包括:
14、基于所述业务标识和所述路由表,通过一致性哈希算法计算得到处理所述id分配请求的目标节点。
15、可选地,所述基于预加载的号段为所述待标识数据分配id,包括:
16、确定是否存在与所述业务标识对应的目标号段;
17、若存在,确定所述目标号段中是否存在尚未分配的id;
18、若存在,将所述目标号段中尚未分配的id中的第一个id分配给所述待标识数据。
19、可选地,所述基于预加载的号段为所述待标识数据分配id,包括:
20、若不存在与所述业务标识对应的目标号段,预加载一个新的号段并将所述新的号段与所述业务标识绑定;
21、将与所述业务标识绑定的号段中尚未分配的id中的第一个id分配给所述待标识数据。
22、可选地,还包括:周期性获得所述主节点颁发的租约信息,每一次颁发的租约信息中均包括有效期,每一个租约信息在其对应的有效期内均固定不变,所述租约信息中包括所述路由表和分配号段。
23、可选地,所述有效期时长小于获得租约信息的周期时长,所述基于预加载的号段为所述待标识数据分配id,包括:
24、在所述有效期结束且尚未到达获得新的租约信息的时间段,若获得id分配请求,向所述主节点请求临时租约,基于所述临时租约为所述待标识数据分配id,所述临时租约包括路由表和分配号段。
25、可选地,还包括:
26、若在租约信息的有效期内,存在于所述租约信息中的第三节点不可用使得id分配请求响应失败,重复尝试所述id分配请求。
27、本申请还公开了一种分布式系统的id分配装置,包括:
28、请求获得模块,用于获得id分配请求,所述id分配请求中包括业务标识和待标识数据,所述请求获得模块为基于所述业务标识能够唯一确定的用于处理所述id分配请求的目标节点的处理模块,所述待标识数据为需要分配id的数据;
29、id分配模块,用于基于预加载的号段为所述待标识数据分配id,所述预加载的号段为与所述业务标识具有绑定关系的号段。
30、经由上述的技术方案可知,本申请实施例公开了一种分布式系统的id分配方法及装置,方法包括:第一节点获得id分配请求,所述id分配请求中包括业务标识和待标识数据,所述第一节点为基于所述业务标识能够唯一确定的用于处理所述id分配请求的目标节点,所述待标识数据为需要分配id的数据;基于预加载的号段为所述待标识数据分配id,所述预加载的号段为与所述业务标识具有绑定关系的号段。上述方案基于获得的id分配请求的业务标识能够唯一确定一个目标节点进行id分配处理,该目标节点可以基于预加载的号段递增式进行id分配,从而能够实现单调递增的id分配,保证分配id的全局唯一性。
技术特征:1.一种分布式系统的id分配方法,其特征在于,包括:
2.根据权利要求1所述的分布式系统的id分配方法,其特征在于,还包括:
3.根据权利要求2所述的分布式系统的id分配方法,其特征在于,所述第一节点获得id分配请求,包括:
4.根据权利要求2所述的分布式系统的id分配方法,其特征在于,所述目标节点的确定包括:
5.根据权利要求1所述的分布式系统的id分配方法,其特征在于,所述基于预加载的号段为所述待标识数据分配id,包括:
6.根据权利要求5所述的分布式系统的id分配方法,其特征在于,所述基于预加载的号段为所述待标识数据分配id,包括:
7.根据权利要求2所述的分布式系统的id分配方法,其特征在于,还包括:周期性获得所述主节点颁发的租约信息,每一次颁发的租约信息中均包括有效期,每一个租约信息在其对应的有效期内均固定不变,所述租约信息中包括所述路由表和分配号段。
8.根据权利要求7所述的分布式系统的id分配方法,其特征在于,所述有效期的时长小于获得租约信息的周期时长,所述基于预加载的号段为所述待标识数据分配id,包括:
9.根据权利要求7所述的分布式系统的id分配方法,其特征在于,还包括:
10.一种分布式系统的id分配装置,其特征在于,包括:
技术总结本申请实施例公开了一种分布式系统的ID分配方法及装置,涉及服务端开发技术领域,方法包括:第一节点获得ID分配请求,所述ID分配请求中包括业务标识和待标识数据,所述第一节点为基于所述业务标识能够唯一确定的用于处理所述ID分配请求的目标节点,所述待标识数据为需要分配ID的数据;基于预加载的号段为所述待标识数据分配ID,所述预加载的号段为与所述业务标识具有绑定关系的号段。上述方案基于获得的ID分配请求的业务标识能够唯一确定一个目标节点进行ID分配处理,该目标节点可以基于预加载的号段递增式进行ID分配,从而能够实现单调递增的ID分配,保证分配ID的全局唯一性。技术研发人员:余家奇受保护的技术使用者:湖南快乐阳光互动娱乐传媒有限公司技术研发日:技术公布日:2024/10/10本文地址:https://www.jishuxx.com/zhuanli/20241015/314620.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。