一、需求
設(shè)計(jì)一個(gè)短URL生成器(Fuxi)
短 URL 生成器,也稱作短鏈接生成器,就是將一個(gè)比較長的 URL 生成一個(gè)比較短的 URL,當(dāng)瀏覽器通過短 URL 生成器訪問這個(gè)短 URL 的時(shí)候,重定向訪問到原始的長 URL 目標(biāo)服務(wù)器,訪問時(shí)序圖如下。

image.png
二、方案設(shè)計(jì)
2.1 架構(gòu)圖

image.png
1)緩存使用redis
2)短鏈與長鏈映射存儲(chǔ)在hbase
3)短 URL 預(yù)加載服務(wù)器此前已經(jīng)從短 URL 預(yù)生成文件服務(wù)器(HDFS)中加載了一批短 URL 存放在自己的內(nèi)存中,這時(shí),只需要從內(nèi)存中返回一個(gè)短 URL 即可,同時(shí)將短 URL 與長 URL 的映射關(guān)系存儲(chǔ)在 HBase 數(shù)據(jù)庫中

image.png
4)過期短url定期清理并重復(fù)利用寫入到hdfs
5) 如果緩存沒有用戶請求訪問的短 URL,短 URL 服務(wù)器將訪問 HBase 短 URL 數(shù)據(jù)庫服務(wù)器集群。如果數(shù)據(jù)庫中存在該短 URL,短 URL 服務(wù)器會(huì)將該短 URL 寫入緩存服務(wù)器集群,并構(gòu)造重定向響應(yīng)返回給客戶端應(yīng)用。如果 HBase 中沒有該短 URL,短 URL 服務(wù)器將構(gòu)造 404 響應(yīng)返回給客戶端應(yīng)用

image.png

短url生成器.png