分布式id生成问题求解答
如何设计一个分布式id 尽量在高并发下不重复,还要尽可能短
我想到的是时间戳➕redis 自增id
有没有更好的答案,雪花算法什么的太长了,最好还不要用redis这种中间件
求各位大神解答
#暑期实习还是日常实习# #如果不工作真的会快乐吗# #设计人的面试记录# #牛客创作赏金赛# #redis高频面试题# #腾讯# #美团# #字节# #阿里# #快手#
我想到的是时间戳➕redis 自增id
有没有更好的答案,雪花算法什么的太长了,最好还不要用redis这种中间件
求各位大神解答
#暑期实习还是日常实习# #如果不工作真的会快乐吗# #设计人的面试记录# #牛客创作赏金赛# #redis高频面试题# #腾讯# #美团# #字节# #阿里# #快手#
全部评论
尽可能短的话, 可以时间戳位数小一点, 然后机器id也加进来唯一确定一个机器( redis就不用了), 支持的机器总数也可以少一点, 这样id就短, 最后就是一毫秒内支持的请求数量自增id也可以少点, 就短点, 再者可以换一种编码方式
回答参考方案:说一下各大方案及优缺点就行。
1. UUID(优点本地生成、缺点是16字节128位存储成本高以及会产生页分裂问题
2.雪花算法(优点生成性能高、可以根据业务特征分配Bit位、缺点是依赖强时间回钟)
3.MySQL自增主键和Redis的Incr命令(不做探讨)
3. 分布式ID生成服务、如美团的leaf算法(Leaf-segment和Leaf-snowflake)
大家这里可以去看美团技术文章 这里引导一下思路就好

雪花算法不长吧?比uuid短很多
相关推荐
03-02 15:53
华中科技大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
03-16 16:09
门头沟学院 Java 点赞 评论 收藏
分享