短域名设计思路

1. 使用自增id(数值)->url这种映射关系

2. id使用base62编码 浏览器中可以直接使用不用处理,并且1亿的值只用生成5个字符

3. 为了避免用户使用无效的短码请求给数据库造成压力,url最后一位可以设置为校验和

|--------id base62编码--------|---校验和---|

   a     s     d     x     K     9     1     M

 

考虑到后期可能对url长度进行加长升级,加一个版本号区分

|--------id base62编码--------|---版本---|---校验和---|

  a     s     d     x     K     9                    1                  M

4. 生成id

基于数据库自增的方式,瓶颈在数据库的tps

可以维护一个base值 每次更新一个count 在内存中自增生成

使用longadder的思想 获取几批数据,然后使用分段锁 提高并发数

posted @ 2022-05-20 18:04  rudynan  阅读(246)  评论(0编辑  收藏  举报