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