博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leaf——美团点评分布式ID生成系统
阅读量:5989 次
发布时间:2019-06-20

本文共 542 字,大约阅读时间需要 1 分钟。

hot3.png

http://tech.meituan.com/MT_Leaf.html

 

在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一ID做标识。此时一个能够生成全局唯一ID的系统是非常必要的。概括下来,那业务系统对ID号的要求有哪些呢?

  1. 全局唯一性:不能出现重复的ID号,既然是唯一标识,这是最基本的要求。
  2. 趋势递增:在MySQL InnoDB引擎中使用的是聚集索引,由于多数RDBMS使用B-tree的数据结构来存储索引数据,在主键的选择上面我们应该尽量使用有序的主键保证写入性能。
  3. 单调递增:保证下一个ID一定大于上一个ID,例如事务版本号、IM增量消息、排序等特殊需求。
  4. 信息安全:如果ID是连续的,恶意用户的扒取工作就非常容易做了,直接按照顺序下载指定URL即可;如果是订单号就更危险了,竞对可以直接知道我们一天的单量。所以在一些应用场景下,会需要ID无规则、不规则。

转载于:https://my.oschina.net/u/257088/blog/968166

你可能感兴趣的文章
CentOS7.6使用yum安装MySQL8.0
查看>>
灰度图像亮度对比度调整的简单代码
查看>>
iPhone5终于出现了
查看>>
15.scrapy中selenium的应用
查看>>
需求工程-软件建模与分析读书笔记1
查看>>
c#学习笔记 WPF中绘制各种数学图形
查看>>
数值积分中的梯形法则
查看>>
《陶哲轩实分析》习题10.4.1
查看>>
【云图】自有数据的多边形检索(云检索)
查看>>
PowerDesigner 使用的一些技巧(转)
查看>>
【敏捷开发】敏捷开发方法综述
查看>>
python字典实现原理-哈希函数-解决哈希冲突方法
查看>>
cetus系列~安装和基本配置
查看>>
SPFA/Dijkstra POJ 3013 Big Christmas Tree
查看>>
extern "C"与C++中的C函数调用(2)
查看>>
Oracle数据库的安装详解
查看>>
省选前的计划(日更,然而你们天天吊打我)
查看>>
sed使用范例
查看>>
Linux源码学习(2) 2013-2-21
查看>>
Node.js 实现 MySQL 数据库增删改查
查看>>