做旅游网站的首页的图片,物联网有哪些工作岗位,郑州手机网站,网络营销品牌策略有哪些目录 常用方式
特征
潜在问题
信息安全
高性能
UUID
雪花算法
数据库生成
美团Leaf方案
Leaf-segment 数据库方案
Leaf-snowflake 方案 常用方式
uuid雪花算法数据库主键
特征
全局唯一趋势递增信息安全
潜在问题
信息安全
如果id连续递增, 容易被爬虫, 批量下…目录 常用方式
特征
潜在问题
信息安全
高性能
UUID
雪花算法
数据库生成
美团Leaf方案
Leaf-segment 数据库方案
Leaf-snowflake 方案 常用方式
uuid雪花算法数据库主键
特征
全局唯一趋势递增信息安全
潜在问题
信息安全
如果id连续递增, 容易被爬虫, 批量下载数据如果订单id是连续递增, 容易被竞争对手推算出日交易量, 这时候需要ID不规则可能泄漏本机mac地址
高性能 保证在高qps时候, 系统也高可用, 延迟低 UUID
标准型式包含 32 个 16 进制数字以连字号分为五段形式为 8-4-4-4-12 的 36 个字符.
示例ecb02c7d-0a3f-4c00-85f6-aa5c6962eb4d
优点: 本地生成, 性能高, 没有网络消耗
缺点:
UUID太长不易储存, 16字节, 128位信息不安全. 基于 MAC 地址生成UUID的算法, 可能造成MAC地址泄露这个漏洞曾被用于寻找梅丽莎病毒的制作者位置不适合做DB主键. 数据库主键应该越短越好, uuid随机性, 导致聚集索引的数据频繁变动, 影响性能
雪花算法 第 0 位 符号位标识正负始终为 0没有用不用管。第 1~41 位 一共 41 位用来表示时间戳单位是毫秒可以支撑 2 ^41 毫秒约 69 年第 42~52 位 一共 10 位一般来说前 5 位表示机房 ID后 5 位表示机器 ID实际项目中可以根据实际情况调整这样就可以区分不同集群/机房的节点这样就可以表示 32 个 IDC每个 IDC 下可以有 32 台机器。第 53~64 位 一共 12 位用来表示序列号。 序列号为自增值代表单台机器每毫秒能够产生的最大 ID 数(2^12 4096),也就是说单台机器每毫秒最多可以生成 4096 个 唯一 ID。理论上 snowflake 方案的 QPS 约为 409.6w/s
优点:
顺序递增, 时间戳在高位, 自增序列在地位本地生成, 不依赖第三方主键, 稳定性更高, 性能高可以根据自身业务, 灵活分配bit位
缺点: 存在时钟回拨问题
数据库生成
mysql自增主键redis的incr命令mongodb的ObjectIdzookeeper顺序节点 美团Leaf方案
Leaf 这个名字是来自德国哲学家、数学家莱布尼茨的一句话 There are no two identical leaves in the world“世界上没有两片相同的树叶” Leaf 分别在 MySQL 和雪花上做了相应的优化实现了 Leaf-segment 和 Leaf-snowflake 方案。
Leaf-segment 数据库方案 Leaf-snowflake 方案