美文网首页
全局唯一ID

全局唯一ID

作者: yehongyu_2018 | 来源:发表于2019-01-04 11:22 被阅读0次

生成全局唯一ID

  1. 通过MySQL的自增主键,作为唯一id;
  2. 通过内存中变量AtomicLong的自增来得到唯一id;
  3. 通过Java的UUID来生成唯一id;

生成订单id:

集群id server ip 线程id timestamp Atomic Long
2 bit 8 bit 5 bit 10 bit 10 bit

每个集群中的多台机器上启多个worker线程,每个线程有自己的AtomicLong,这个是通过系统原子操作来实现的。从而保证了id的全局唯一性。

生成设备id:

字段 value
version id定义的版本
id mysql中表device的自动id
type 设备类型

将这个class对象的protobuf的字节数组做base64的url encode编码,即可得到唯一的设备id。

生成消息id:
java.util.UUID 这个类可生成random id全局唯一的,实际上UUID的内部实现原理跟上面提到的生成订单id的原理很类似。
根据机器的Mac地址,timestamp等信息拼成一个全局唯一的id,并转成统一长度的格式。

相关文章

  • Redis-全局唯一ID

    零、本文纲要 一、全局唯一ID 二、Redis生成全局唯一ID1、snowflake算法全局唯一ID策略2、Red...

  • 防止mq重复消费

    1. 利用全局唯一id 消息里放入全局唯一id,做完业务后查询id是否存在表里,不存在则将唯一id插入数据库单独...

  • 全局唯一ID

    生成全局唯一ID 通过MySQL的自增主键,作为唯一id; 通过内存中变量AtomicLong的自增来得到唯一id...

  • 全局唯一ID设计

    在分布式系统中,经常需要使用全局唯一ID查找对应的数据。产生这种ID需要保证系统全局唯一,而且要高性能以及占用相对...

  • 全局唯一ID - snowflake

    为什么需要全局唯一ID 比如以下 分布式下唯一ID 如果数据库分了库/表, 那么表的自增主键就不再唯一, 这时候就...

  • 全局唯一ID设计

    一、前言 这周网上的各种瓜真的是吃到肚子里都是水啊。按照惯例周末聊点轻松的,这次我们讲几种全局唯一ID。 平常一些...

  • 04.分布式系统的id生成方式

    分布式ID需要满足那些条件? 全局唯一:必须保证ID是全局性唯一的,基本要求高性能:高可用低延时,ID生成响应要块...

  • 就这?分布式 ID 发号器实战

    分布式 ID 需要满足的条件: 全局唯一:这是最基本的要求,必须保证 ID 是全局唯一的。 高性能:低延时,不能因...

  • 就这?分布式 ID 发号器实战

    分布式 ID 需要满足的条件: 全局唯一:这是最基本的要求,必须保证 ID 是全局唯一的。 高性能:低延时,不能因...

  • 分布式唯一Id(雪花算法),原理+对比+方案

    集群高并发情况下如何保证分布式唯一全局Id生成 为什么需要分布式全局唯一Id,以及分布式Id的业务需求 在复杂分布...

网友评论

      本文标题:全局唯一ID

      本文链接:https://www.haomeiwen.com/subject/azafrqtx.html