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 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler