Skip to content

Latest commit

 

History

History
22 lines (18 loc) · 825 Bytes

segment.md

File metadata and controls

22 lines (18 loc) · 825 Bytes

int64 可用位数63位, 前0位标志位,不可用, 机房位采用5位表示,支持32

开始位 结束位 长度 说明
0 1 1 int64的标志位
1 6 5 机房位,最多支持32个机房
6 64 58 计数位,最多支持 2^58

机房位: 2^5 = 32 最大计数: 2^58 = 288230376151711744, 假设业务QPS为1W/s,发号器可以保证91W年可用 (1 << 58) / (10000 * 3600 * 24 * 365) = 913972 不同机房采用Qconf配置机房ID

  • M5 机房位 0
  • LG 机房位 1

现有业务影响:

  1. 对于分库需要去掉机房位在做分库分表,使用的时候直接带上机房位。
  2. 生成的ID不再有序,需要使用独立字段排序。

解决方案:

  1. 分库分表提供sdk
  2. 改动现有id业务