短链系统设计性能优化-分片键选型及全局自增 ID 策略
Posted JavaEdge.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了短链系统设计性能优化-分片键选型及全局自增 ID 策略相关的知识,希望对你有一定的参考价值。
4.3.1 分片键选择
若一个 long 可对应多个 short
- 使用 cache 缓存所有 long2short
- 在为一个 long url 创建 short url 时,若 cache miss,则创建新 short
若一个 long 只能对应一个 short
- 若使用随机生成算法
- 两张表,一张存储 long2short,一张存储short2long
- 每个映射关系存两份,则能同时支持 long2short short2long 查询
- 若使用 base62 进制转换法
- 有个严重问题,多台机器之间如何维护一个全局自增的 id?
- 一般关系型DB只支持在一台机器上实现这台机器上全局自增的 id
4.4 全局自增 id
4.4.1 专用一台 DB 做自增服务
该 DB不存储真实数据,也不负责其他查询。
为避免单点故障,可能需要多台 DB。
4.4.2 使用 zk
但使用全局自增 id 不是解决 tiny url最佳方案。
Generating a Distributed Sequence Number
以上是关于短链系统设计性能优化-分片键选型及全局自增 ID 策略的主要内容,如果未能解决你的问题,请参考以下文章