成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

短鏈接系統(tǒng)的設(shè)計(jì)

fish / 2396人閱讀

摘要:映射機(jī)制對(duì)每個(gè)長(zhǎng)鏈接,使用一個(gè)小于億的整數(shù)標(biāo)記。短鏈接不夠用或者雖然我們的短鏈接可以表示億個(gè)資源,貌似很多,但是對(duì)于大型系統(tǒng),如銀行,搜索引擎等等,還是非常少的。解決既然位短鏈接不夠用,那可以多使用幾位,比如位,大概等于億但是,總是有限的。

引用、參考:
短 URL 系統(tǒng)是怎么設(shè)計(jì)的?iammutex的回答

什么是短鏈接

表示較短的URL(是不是廢話?....)

為什么需要短鏈接

不同的瀏覽器對(duì)URL的長(zhǎng)度有不同的限制,當(dāng)URL長(zhǎng)度超出極限,可能無(wú)法正常得到服務(wù)或資源

較短的鏈接更為美觀(也是廢話...)

便于統(tǒng)計(jì)。為什么呢?

系統(tǒng)設(shè)計(jì)

目標(biāo):將較長(zhǎng)的鏈接映射到較短的鏈接,如domain/resource_abcdedfwefwf...映射到 domain/3a6f7A。一般對(duì)于大部分應(yīng)用,映射到6位已經(jīng)足夠了,每位可以取[a-z A-Z 0-9],共26+26+10=62種,可以表示62^6=560億個(gè)鏈接或資源。當(dāng)然,你也可以選擇位數(shù)稍多一點(diǎn)。

映射機(jī)制

對(duì)每個(gè)長(zhǎng)鏈接,使用一個(gè)小于560億的整數(shù)標(biāo)記。小型系統(tǒng)中,小型系統(tǒng)直接用mysql的自增索引就搞定了。只要做一個(gè)發(fā)號(hào)控制器,負(fù)責(zé)根據(jù)序號(hào)找到長(zhǎng)鏈接和為長(zhǎng)鏈接生產(chǎn)序號(hào)。

如何將序號(hào)映射到六位?只需進(jìn)行一個(gè)10進(jìn)制到62進(jìn)制的轉(zhuǎn)換即可。因此,控制器需要提供一個(gè)進(jìn)制轉(zhuǎn)換工具。

綜上,當(dāng)申請(qǐng)一個(gè)資源domain/3a6f7A,先由控制器將3a6f7A從16進(jìn)制轉(zhuǎn)為10進(jìn)制,在根據(jù)數(shù)據(jù)索引找到真正的URL,再去申請(qǐng)資源domain/resource_abcdedfwefwf...

分布式

如果只有一個(gè)發(fā)號(hào)控制器,對(duì)于系統(tǒng)可能形成單點(diǎn)性能瓶頸和單點(diǎn)故障問(wèn)題。
解決方法:使用多個(gè)發(fā)號(hào)控制器。

" 我們是否可以實(shí)現(xiàn)兩個(gè)發(fā)號(hào)器,一個(gè)發(fā)單號(hào),一個(gè)發(fā)雙號(hào),這樣就變單點(diǎn)為多點(diǎn)了?依次類推,我們可以實(shí)現(xiàn)1000個(gè)邏輯發(fā)號(hào)器,分別發(fā)尾號(hào)為0到999的號(hào)。每發(fā)一個(gè)號(hào),每個(gè)發(fā)號(hào)器加1000,而不是加1。這些發(fā)號(hào)器獨(dú)立工作,互不干擾即可。而且在實(shí)現(xiàn)上,也可以先是邏輯的,真的壓力變大了,再拆分成獨(dú)立的物理機(jī)器單元。1000個(gè)節(jié)點(diǎn),估計(jì)對(duì)人類來(lái)說(shuō)應(yīng)該夠用了。如果你真的還想更多,理論上也是可以的。"

存儲(chǔ)

各種DB,CACHE都可以用....,你喜歡(又是廢話)。

跳轉(zhuǎn)用301還是302

301是永久重定向,302是臨時(shí)重定向。短地址一經(jīng)生成就不會(huì)變化,所以用301是符合http語(yǔ)義的。同時(shí)對(duì)服務(wù)器壓力也會(huì)有一定減少。

如果使用了301,我們就無(wú)法統(tǒng)計(jì)到短地址被點(diǎn)擊的次數(shù)了。而這個(gè)點(diǎn)擊次數(shù)是一個(gè)非常有意思的大數(shù)據(jù)分析數(shù)據(jù)源。能夠分析出的東西非常非常多。

短鏈接不夠用或者

雖然我們的短鏈接可以表示560億個(gè)資源,貌似很多,但是對(duì)于大型系統(tǒng),如銀行,搜索引擎等等,還是非常少的。但是我們可以知道一個(gè)現(xiàn)實(shí),就是,某一個(gè)較短的時(shí)間段,被請(qǐng)求的資源數(shù)是有限的,比如,10分鐘內(nèi),被訪問(wèn)的微博URL數(shù)目不會(huì)超過(guò)560億。當(dāng)然這個(gè)時(shí)間段和上限你可以根據(jù)實(shí)際情況調(diào)整。

解決:

既然6位短鏈接不夠用,那可以多使用幾位,比如8位,大概等于560億*62*62.

但是,總是有限的?!笨梢杂胟ey-value存儲(chǔ),保存“最近”生成的長(zhǎng)對(duì)短的一個(gè)對(duì)應(yīng)關(guān)系。注意是“最近”,也就是說(shuō),并不保存全量的長(zhǎng)對(duì)短的關(guān)系,而只保存最近的。比如采用一小時(shí)過(guò)期的機(jī)制來(lái)實(shí)現(xiàn)LRU淘汰?!八援?dāng)一個(gè)地址被頻繁使用,那么它會(huì)一直在這個(gè)key-value表中,總能返回當(dāng)初生成那個(gè)短地址,不會(huì)出現(xiàn)重復(fù)的問(wèn)題。如果它使用并不頻繁,那么長(zhǎng)對(duì)短的key會(huì)過(guò)期,LRU機(jī)制自動(dòng)就會(huì)淘汰掉它。當(dāng)然,這不能保證100%的同一個(gè)長(zhǎng)地址一定能轉(zhuǎn)出同一個(gè)短地址,比如你拿一個(gè)生僻的url,每間隔1小時(shí)來(lái)轉(zhuǎn)一次,你會(huì)得到不同的短地址。

思考:如果采用LRU,有一些短鏈接會(huì)被淘汰;如果短鏈接仍然使用自增方式,可能會(huì)溢出(超出560億)。如何解決該問(wèn)題?

限定key-value表中永遠(yuǎn)不會(huì)超過(guò)100億條記錄,超過(guò)就根據(jù)LRU進(jìn)行淘汰;被淘汰的短鏈接放在回收器中;當(dāng)序號(hào)幾近溢出或者已使用的最大序號(hào)超過(guò)某個(gè)閾值,就使用回收器中的曾被使用或的短鏈接,不再使用自增來(lái)產(chǎn)生序號(hào)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61896.html

相關(guān)文章

  • 收集整理適用博客建站免費(fèi)開源Wordpress主題-簡(jiǎn)約好看WP主題

    摘要:最重要的就是找一個(gè)適合自己的主題了。事實(shí)上,免費(fèi)主題也非常多,而且很多的免費(fèi)主題在功能上和界面美觀上已經(jīng)大大超過(guò)了付費(fèi)的主題。加上這些主題都是開源的,基本上可以在上找得到源碼,安全性是沒(méi)有問(wèn)題,主題的作者也在不斷更新當(dāng)中。WordPress最重要的就是找一個(gè)適合自己的主題了。好一點(diǎn)的WordPress主題基本上都是要收費(fèi)的,而且價(jià)格還不便宜,這導(dǎo)致了不少的新手朋友們很為難。而有時(shí)我們僅僅根據(jù)...

    番茄西紅柿 評(píng)論0 收藏2637
  • 前端有用網(wǎng)址介紹

    摘要:圖片壓縮網(wǎng)址介紹是一款圖片壓縮工具,壓縮率能達(dá)到以上,圖片在壓縮之前和之后幾乎看不出差別。在設(shè)計(jì)師人群中比較流行,現(xiàn)在介紹給廣大的程序員。 1.圖片壓縮網(wǎng)址:https://tinypng.com/ 介紹: Tinypng 是一款 PNG 圖片壓縮工具,壓縮率能達(dá)到 50% 以上,圖片在壓縮之前和之后幾乎看不出差別。Tinypng 在設(shè)計(jì)師人群中比較流行,現(xiàn)在介紹給廣大的程序員。 據(jù)...

    legendmohe 評(píng)論0 收藏0
  • 鏈接原理分析

    摘要:舉個(gè)例子,第一個(gè)進(jìn)來(lái)的鏈接發(fā)號(hào)器發(fā)號(hào),對(duì)應(yīng)的短鏈接為,第二個(gè)進(jìn)來(lái)的鏈接發(fā)號(hào)器發(fā)號(hào),對(duì)應(yīng)的短鏈接為,以此類推。這樣一來(lái)會(huì)導(dǎo)致一條長(zhǎng)鏈接對(duì)應(yīng)多條短鏈接的情況出現(xiàn),不僅浪費(fèi)存儲(chǔ)空間,又浪費(fèi)發(fā)號(hào)器資源。 1. 什么是短鏈接 顧名思義,短鏈接即是長(zhǎng)度較短的網(wǎng)址。通過(guò)短鏈接技術(shù),我們可以將長(zhǎng)度較長(zhǎng)的鏈接壓縮成較短的鏈接。并通過(guò)跳轉(zhuǎn)的方式,將用戶請(qǐng)求由短鏈接重定向到長(zhǎng)鏈接上去。短鏈接主要用在諸如微博...

    SexySix 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<