yaoyuanloo1 2019-05-30 17:57 采纳率: 100%
浏览 3668
已采纳

我想问一下这雪花算法 ID是连续的 安全性是不是不好

分布式ID生成系统 UUID与雪花(snowflake)算法
Leaf——美团点评分布式ID生成系统 -
https://tech.meituan.com/MT_Leaf.html

网游服务器中的GUID(唯一标识码)实现-基于snowflake算法-云栖社区-阿里云
https://yq.aliyun.com/articles/229420

UUID_STRING — Snowflake Documentation
https://docs.snowflake.net/manuals/sql-reference/functions/uuid_string.html

Twitter的分布式自增ID算法snowflake (Java版) - relucent - 博客园
https://www.cnblogs.com/relucent/p/4955340.html

雪花算法(snowflake) - 明月阁 - CSDN博客
https://blog.csdn.net/u011499747/article/details/78254990

  • 写回答

1条回答 默认 最新

  • 关注

    hello题主,我个人也经常用这个算法,简单说下我个人的理解。
    首先这个算法核心是依靠时间戳然后结合自增序列以及机器号等等构成,我们说的连续应该是指在一个毫秒内他是相对连续的,
    随着时间的增长,生成的id总体趋势是增长的,但是增长规律并不像mysql自增主键那样是严格自增的。
    其次,这个算法是可以进行扩展的,我们可以对算法进行一些改进,使其生成的id在单位时间内并不是“连续的”(如将自增序列打乱等等手段)
    ,这样可以增加其安全性,防止被外部“猜到”我们业务数据的规模。
    如果我们作为mysql主键来用(innodb),相对连续的主键索引性能也更好嘛。
    所以,主要还是结合我们自身的业务场景来使用,如果是内部系统做主键,那连续生成也无所谓的,如果是作为业务单号,暴露到
    外部,可以对算法做适当的改进,增加安全性。希望能帮到你,纯手打。^^

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题