一、需求
设计一个短URL生成器(Fuxi)
短 URL 生成器,也称作短链接生成器,就是将一个比较长的 URL 生成一个比较短的 URL,当浏览器通过短 URL 生成器访问这个短 URL 的时候,重定向访问到原始的长 URL 目标服务器,访问时序图如下。
二、方案设计
2.1 架构图
1)缓存使用redis
2)短链与长链映射存储在hbase
3)短 URL 预加载服务器此前已经从短 URL 预生成文件服务器(HDFS)中加载了一批短 URL 存放在自己的内存中,这时,只需要从内存中返回一个短 URL 即可,同时将短 URL 与长 URL 的映射关系存储在 HBase 数据库中
4)过期短url定期清理并重复利用写入到hdfs
5) 如果缓存没有用户请求访问的短 URL,短 URL 服务器将访问 HBase 短 URL 数据库服务器集群。如果数据库中存在该短 URL,短 URL 服务器会将该短 URL 写入缓存服务器集群,并构造重定向响应返回给客户端应用。如果 HBase 中没有该短 URL,短 URL 服务器将构造 404 响应返回给客户端应用