当前位置:首页 > 编程笔记 > 正文
已解决

分布式ID系统设计(2)

来自网友在路上 156856提问 提问时间:2023-11-02 19:32:06阅读次数: 56

最佳答案 问答题库568位专家为你答疑解惑

接上文

https://editor.csdn.net/md/?articleId=133988963

类snowFlake 方案

  • 应用举例 mongoDB ObjectID 就是一个典型的实现。

数据库生成

以MySQL举例 利用给字段设置AUTO-INCREMENT来保证ID自增,每次业务使用SQL拿到MySQL的ID
这种方案的优缺点:

  • 优点
    1 简单。利用数据库实现 成本小,有专业的DBA维护
    2 ID单调递增。用来实现一些对于ID有特殊要求的业务
  • 缺点
    1 强依赖DB,当整个DB异常整个系统不可用,属于致命问题
    2 ID发号性能瓶颈在于单台DB的读写性能

对于MySQL的性能问题,可以考虑多部署几台机器。然后设置不同的初始值,步数长和机器数相等。
Flickr论文
但是这玩意看起来能满足。但是存在的问题:

  • 系统基本属于无法水平拓展。因为你定义好了步长 都写死了。如果后续发现性能不够要加机器 怎么处理?
  • ID没有单调递增。只能趋势递增。当然对于一般业务也没什么。可以忍受
  • 数据库压力大。毕竟都读写一次DB
  • 当然也可以用redis 但是还是一样的问题
  • <
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"分布式ID系统设计(2)":http://eshow365.cn/6-30468-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!