浅谈CAS在分布式ID生成方案上的应用 | 架构师之路

  1. 云栖社区>
  2. 阿里云MVP>
  3. 博客>
  4. 正文

浅谈CAS在分布式ID生成方案上的应用 | 架构师之路

初商 2019-08-11 23:12:31 浏览144
展开阅读全文

近几篇文章聊CAS被骂得较多,今天还是聊CAS,谈谈CAS在一种“分布式ID生成方案”上的应用。

所谓“分布式ID生成方案”,是指在分布式环境下,生成全局唯一ID的方法。

可以利用DB自增键(auto inc id)来生成全局唯一ID,插入一条记录,生成一个ID:

image.png

这个方案利用了数据库的单点特性,其优点为:

无需写额外代码

全局唯一

绝对递增

递增ID的步长确定

其不足为:

需要做数据库HA,保证生成ID的高可用

数据库中记录数较多

生成ID的性能,取决于数据库插入性能

优化方案为:

利用双主保证高可用

定期删除数据

增加一层服务,采用批量生成的方式降低数据库的写压力,提升整体性能

增加服务后,DB中只需保存当前最大的ID即可,在服务启动初始化的过程中,首先拉取当前的max-id:

image.png

select max_id from T;

然后批量获取一批ID,放到id-serv

网友评论

登录后评论
0/500
评论
初商
+ 关注
所属云栖号: 阿里云MVP