欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種訪問圖片的方法、系統(tǒng)和圖片服務(wù)器的制造方法

文檔序號:7980770閱讀:187來源:國知局
一種訪問圖片的方法、系統(tǒng)和圖片服務(wù)器的制造方法
【專利摘要】本發(fā)明提供了一種圖片訪問的方法、系統(tǒng)和圖片服務(wù)器,其中方法包括:客戶端依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則展現(xiàn)獲取的圖片,結(jié)束流程;否則執(zhí)行步驟S2;S2、從緩存cache節(jié)點上獲取圖片URL對應(yīng)的圖片,如果獲取成功,則展現(xiàn)獲取的圖片,結(jié)束流程;否則,執(zhí)行步驟S3;S3、cache節(jié)點將請求的圖片URL發(fā)送給圖片服務(wù)器;S4、圖片服務(wù)器將請求的圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。本發(fā)明能夠提高實時訪問圖片的速度和可靠性。
【專利說明】—種訪問圖片的方法、系統(tǒng)和圖片服務(wù)器
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及計算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,特別涉及一種訪問圖片的方法、系統(tǒng)和圖片服務(wù)器。
【【背景技術(shù)】】
[0002]隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,網(wǎng)絡(luò)上的信息量呈爆炸式的速度增長,通過網(wǎng)絡(luò)獲取信息的用戶也不斷增加,如何提高用戶的訪問速度和穩(wěn)定性是一直以來的研究重點,特別是對于圖片這種大數(shù)據(jù)量的信息。
[0003]諸如圖片標(biāo)注系統(tǒng)、圖片搜索系統(tǒng)、圖片展示系統(tǒng)等常常會面臨大規(guī)模的用戶對圖片進(jìn)行訪問的情況,圖片的獲取、展現(xiàn)速度和效果是影響用戶體驗的最關(guān)鍵因素。現(xiàn)有技術(shù)中如果用戶要訪問某個圖片,則通過客戶端向圖片服務(wù)器發(fā)送該圖片的URL,圖片服務(wù)器接收到該URL后到對應(yīng)的網(wǎng)站上獲取該URL對應(yīng)的圖片返回給客戶端。然而常常因為圖片所在網(wǎng)站的原因或者網(wǎng)絡(luò)的原因會造成某些圖片的URL不可訪問,這就使得用戶在實時請求訪問圖片時,可能造成圖片訪問失敗或者訪問速度過慢,也就是說,速度和可靠性無法得到保證。

【發(fā)明內(nèi)容】

[0004]本發(fā)明提供了一種訪問圖片的方法、系統(tǒng)和圖片服務(wù)器,以便于提高實時訪問圖片的速度和可靠性。
[0005]具體技術(shù)方案如下:
[0006]一種圖片訪問的方法,該方法包括:
[0007]S1、客戶端依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則展現(xiàn)獲取的圖片,結(jié)束流程;如果在設(shè)定時間內(nèi)獲取失敗,執(zhí)行步驟S2 ;
[0008]S2、從緩存cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片,如果獲取成功,則展現(xiàn)獲取的圖片,結(jié)束流程;否則,執(zhí)行步驟S3 ;
[0009]S3、所述cache節(jié)點將所述請求的圖片URL發(fā)送給圖片服務(wù)器;
[0010]S4、所述圖片服務(wù)器將所述請求的圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。
[0011]根據(jù)本發(fā)明一優(yōu)選實施例,所述圖片服務(wù)器將抓取到的圖片預(yù)處理成縮略圖后存儲在cache節(jié)點上。
[0012]根據(jù)本發(fā)明一優(yōu)選實施例,所述cache節(jié)點是預(yù)先確定的哈希空間中的N個節(jié)點,所述N為大于I的整數(shù)。
[0013]根據(jù)本發(fā)明一優(yōu)選實施例,所述圖片服務(wù)器將抓取到的圖片存儲在cache節(jié)點上具體包括:對抓取到的圖片的圖片URL進(jìn)行編碼后哈希映射到所述哈??臻g中,將所述抓取到的圖片存儲到哈希映射值右側(cè)最臨近的cache節(jié)點上;
[0014]所述從cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片具體包括:對圖片URL進(jìn)行編碼后哈希映射到所述哈??臻g中,從哈希映射值右側(cè)最臨近的cache節(jié)點上獲取對應(yīng)的圖片。
[0015]根據(jù)本發(fā)明一優(yōu)選實施例,對圖片URL進(jìn)行編碼具體包括:
[0016]將圖片URL中的預(yù)設(shè)字符片段作為編碼單元,其他單字符作為編碼單元,所述預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段;
[0017]基于圖片URL中的各編碼單元采用線性編碼算法進(jìn)行編碼,將編碼后的內(nèi)容中不可傳輸?shù)淖址娲鸀榘踩址?br> [0018]根據(jù)本發(fā)明一優(yōu)選實施例,該方法還包括:
[0019]如果所述哈??臻g中有cache節(jié)點故障或被刪除,則將故障或被刪除的cache節(jié)點上的圖片轉(zhuǎn)存到其右側(cè)最臨近的cache節(jié)點上;
[0020]如果所述哈??臻g中新增cache節(jié)點,則將新增cache節(jié)點與其左側(cè)最臨近的cache節(jié)點之間的哈希映射值對應(yīng)的圖片存儲在新增cache節(jié)點上。
[0021]根據(jù)本發(fā)明一優(yōu)選實施例,該方法還包括:
[0022]當(dāng)發(fā)生cache節(jié)點故障、新增或被刪除后,所述圖片服務(wù)器根據(jù)cache節(jié)點的負(fù)載情況在所述哈希空間上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整;
[0023]所述動態(tài)調(diào)整包括:將負(fù)載超重的cache節(jié)點位置向左移動,或者,將負(fù)載超重的cache節(jié)點左側(cè)最臨近的cache節(jié)點位置向右移動。
[0024]根據(jù)本發(fā)明一優(yōu)選實施例,所述步驟S4還包括:所述圖片服務(wù)器將抓取到的圖片存儲在本地;
[0025]在所述步驟S4之前還包括:所述圖片服務(wù)器查詢本地是否存在所述請求的圖片URL對應(yīng)的圖片,如果是,則直接將對應(yīng)的圖片存儲在Cache節(jié)點上,并由Cache節(jié)點將對應(yīng)的圖片返回給客戶端,結(jié)束流程;否則,繼續(xù)執(zhí)行所述步驟S4。
[0026]一種圖片訪問的系統(tǒng),該系統(tǒng)包括:
[0027]客戶端,用于依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則展現(xiàn)獲取的圖片;如果在設(shè)定時間內(nèi)獲取失敗,則從緩存cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片,如果獲取成功,則展現(xiàn)獲取的圖片,否則觸發(fā)cache節(jié)點提供所述請求的圖片URL ;
[0028]cache節(jié)點,用于受到所述客戶端的觸發(fā)后,將所述請求的圖片URL提供給圖片服務(wù)器;
[0029]圖片服務(wù)器,用于將所述圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。
[0030]根據(jù)本發(fā)明一優(yōu)選實施例,所述cache節(jié)點是預(yù)先確定的哈??臻g中的N個節(jié)點,所述N為大于I的整數(shù)。
[0031]一種圖片訪問的圖片服務(wù)器,該圖片服務(wù)器包括:
[0032]URL管理單元,用于獲取到請求的圖片URL后,將所述請求的圖片URL放入不可直接訪問圖片集合;[0033]圖片抓取單元,用于在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓??;
[0034]圖片存儲單元,用于將所述圖片抓取單元抓取到的圖片存儲在緩存cache節(jié)點上,以便客戶端能夠在直接向圖片所在的服務(wù)器獲取對應(yīng)圖片失敗時從cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片。
[0035]根據(jù)本發(fā)明一優(yōu)選實施例,所述圖片存儲單元將所述圖片抓取單元抓取到的圖片預(yù)處理成縮略圖后存儲在cache節(jié)點上。
[0036]根據(jù)本發(fā)明一優(yōu)選實施例,所述cache節(jié)點是預(yù)先確定的哈希空間中的N個節(jié)點,所述N為大于I的整數(shù)。
[0037]根據(jù)本發(fā)明一優(yōu)選實施例,所述圖片存儲單元包括:
[0038]編碼子單元,用于對所述圖片抓取單元抓取到的圖片的圖片URL進(jìn)行編碼后哈希映射到所述哈??臻g中;
[0039]存儲子單元,用于將所述抓取到的圖片存儲到所述編碼子單元得到的哈希映射值右側(cè)最臨近的cache節(jié)點上。
[0040]根據(jù)本發(fā)明一優(yōu)選實施例,所述編碼子單元具體將圖片URL中的預(yù)設(shè)字符片段作為編碼單元,其他單字符作為編碼單元,所述預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段;基于圖片URL中的各編碼單元采用線性編碼算法進(jìn)行編碼,將編碼后的內(nèi)容中不可傳輸?shù)淖址娲鸀榘踩址?br> [0041]根據(jù)本發(fā)明一優(yōu)選實施例,該圖片服務(wù)器還包括:
[0042]節(jié)點管理單元,用于如果所述哈??臻g中有cache節(jié)點故障或被刪除,則將故障或被刪除的cache節(jié)點上的圖片轉(zhuǎn)存到其右側(cè)最臨近的cache節(jié)點上;如果所述哈??臻g中新增cache節(jié)點,則將新增cache節(jié)點與其左側(cè)最臨近的cache節(jié)點之間的哈希映射值對應(yīng)的圖片存儲在新增cache節(jié)點上。
[0043]根據(jù)本發(fā)明一優(yōu)選實施例,該圖片服務(wù)器還包括:
[0044]節(jié)點調(diào)整單元,用于當(dāng)發(fā)生cache節(jié)點故障、新增或被刪除后,根據(jù)cache節(jié)點的負(fù)載情況在所述哈??臻g上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整,所述動態(tài)調(diào)整包括:將負(fù)載超重的cache節(jié)點位置向左移動,或者,將負(fù)載超重的cache節(jié)點左側(cè)最臨近的cache節(jié)點位置向右移動。
[0045]所述圖片存儲單元,還用于將所述圖片抓取單元抓取到的圖片存儲在本地;
[0046]所述URL管理單元在獲取到請求的圖片URL后,首先查詢本地是否存在所述請求的圖片URL對應(yīng)的圖片,如果是,則觸發(fā)所述圖片存儲單元直接將對應(yīng)的圖片存儲在Cache節(jié)點上,以便由Cache節(jié)點將對應(yīng)的圖片返回給客戶端,否則,繼續(xù)執(zhí)行將所述請求的圖片URL放入不可直接訪問圖片集合的操作。
[0047]由以上技術(shù)方案可以看出,本發(fā)明通過將實時訪問不成功的圖片放至不可直接訪問圖片集合中,圖片服務(wù)器在網(wǎng)絡(luò)空閑時對不可直接訪問圖片集合中的圖片URL進(jìn)行圖片線下抓取并存于cache節(jié)點上,以便客戶端在請求的圖片URL在不可直接訪問圖片集合中時,能夠從cache節(jié)點上獲取對應(yīng)圖片。提高了圖片訪問的可靠性,相比較實時訪問圖片時可能出現(xiàn)的訪問速度過慢的問題也提高了訪問速度。【【專利附圖】

【附圖說明】】
[0048]圖1為本發(fā)明實施例一提供的訪問圖片的方法流程圖;
[0049]圖2為本發(fā)明實施例二提供的存儲圖片至cache節(jié)點的方法流程圖;
[0050]圖3為本發(fā)明實施例二提供的一個hash空間示意圖; [0051]圖4為本發(fā)明實施例二提供的hash空間上刪除一個cache節(jié)點的示意圖;
[0052]圖5為本發(fā)明實施例二提供的hash空間上新增一個cache節(jié)點的示意圖;
[0053]圖6為本發(fā)明實施例提供的圖片訪問的系統(tǒng)結(jié)構(gòu)圖;
[0054]圖7為本發(fā)明實施例三提供的圖片服務(wù)器結(jié)構(gòu)圖。
【【具體實施方式】】
[0055]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述。
[0056]實施例一、
[0057]在本實施例中,采用了一個不可訪問圖片集合。如其字面所示,不可直接訪問圖片集合中的圖片指的是那些圖片所在網(wǎng)站異?;蛘邎D片訪問速度很低的圖片。另外,不可直接訪問圖片集合中的圖片URL是可以調(diào)整的,因為互聯(lián)網(wǎng)的環(huán)境本身就在不斷的變化,有些網(wǎng)站可能會由于機(jī)器故障等原因關(guān)閉,從而導(dǎo)致一些原本可以訪問的圖片無法再訪問,或者一些網(wǎng)站由于負(fù)載過重使得原先訪問較快的圖片變得訪問很慢甚至不可訪問。具體將在圖1所示的訪問圖片的方法中體現(xiàn),如圖1所示,該方法可以包括以下步驟:
[0058]步驟101:客戶端依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則執(zhí)行步驟102 ;如果在設(shè)定時間內(nèi)獲取失敗,執(zhí)行步驟103。
[0059]客戶端在進(jìn)行圖片訪問時,首先直接向圖片所在的服務(wù)器發(fā)起訪問,這樣對本發(fā)明涉及的圖片訪問系統(tǒng)帶來較小的壓力。本步驟中的設(shè)定時間能夠保證能夠從圖片所在的服務(wù)器正常地獲取圖片,也就是說,通常情況下如果網(wǎng)站的服務(wù)器正常,則在該設(shè)定時間內(nèi)客戶端是能夠成功獲取圖片的。如果在設(shè)定時間內(nèi)圖片所在服務(wù)器返回了指示獲取失敗的響應(yīng),例如返回400、404等響應(yīng),或者在設(shè)定時間內(nèi)沒有完成圖片加載,說明加載速度過慢,也認(rèn)為在設(shè)定時間內(nèi)獲取失敗。
[0060]步驟102:展現(xiàn)獲取的圖片,結(jié)束流程。
[0061]步驟103:從緩存(cache)節(jié)點上獲取請求的圖片URL對應(yīng)的圖片,如果獲取成功,則執(zhí)行步驟102 ;否則執(zhí)行步驟104。
[0062]如果客戶端不能通過直接訪問的方式獲取對應(yīng)圖片,則從cache節(jié)點上獲取請求的圖片URL對應(yīng)的圖片,這些圖片是圖片服務(wù)器在網(wǎng)絡(luò)空閑時進(jìn)行線下抓取并存儲在cache節(jié)點上的,該部分內(nèi)容將在步驟105中詳細(xì)描述。
[0063]此處如果在cache節(jié)點上存在圖片URL對應(yīng)的圖片通常會獲取成功,然而也可能即便cache節(jié)點上存在圖片URL對應(yīng)的圖片,但可能因為圖片所在的cache節(jié)點狀態(tài)變化所引起的不可訪問造成獲取失敗,此處同樣可以認(rèn)為在一定時間內(nèi)如果cache節(jié)點返回指示獲取失敗的響應(yīng),或者在一定時間內(nèi)沒有完成圖片加載,則認(rèn)為獲取失敗。
[0064]步驟104:cache節(jié)點將請求的圖片URL發(fā)送給圖片服務(wù)器。[0065]如果cache節(jié)點上尚沒有請求的圖片URL對應(yīng)的圖片,則由cache節(jié)點通知給圖片服務(wù)器進(jìn)行線下抓取,即步驟105。
[0066]步驟105:圖片服務(wù)器將請求的圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。
[0067]對于不可直接訪問到的圖片集合中的圖片URL,圖片服務(wù)器會在網(wǎng)絡(luò)空閑的時候線下抓取對應(yīng)圖片,在本地存儲的同時緩存在cache節(jié)點上,以便對不可直接訪問圖片集合中的圖片能夠有一定幾率從cache節(jié)點上獲取。這種方式能夠在網(wǎng)站正常的情況下抓取到對應(yīng)圖片放至cache節(jié)點上備用,一方面cache節(jié)點采用緩存(存在內(nèi)存中)的方式存儲圖片,相比較圖片服務(wù)器中采用硬盤的方式存儲圖片,進(jìn)行圖片訪問時速度更快,另一方面也避免了所有圖片都從圖片服務(wù)器上獲取對圖片服務(wù)器造成的性能壓力。
[0068]另外,本步驟一種優(yōu)選的實施方式是,圖片服務(wù)器接收到請求的圖片的URL后,首先在本地查詢是否存在該圖片URL對應(yīng)的圖片,如果有,則直接存儲在Cache節(jié)點上,并由Cache節(jié)點返回給客戶端。否則,將請求的圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。這樣做的好處在于,通常圖片服務(wù)器在本地的存儲空間要比Cache節(jié)點大得多,在收到請求的圖片的URL后,首先在本地進(jìn)行查詢,如果查詢到,則說明圖片在之前空閑的時候已經(jīng)抓取過這張圖片,不需要重新抓取了,也就不需要將這個圖片URL再次放入不可直接訪問圖片集合,直接將這張圖片返回給Cache節(jié)點并由Cache節(jié)點存儲和返回給客戶端,避免下次客戶端請求這張圖片時,再次請求圖片服務(wù)器,從而減輕圖片服務(wù)器的負(fù)擔(dān)。
[0069]為了減少cache節(jié)點的存儲壓力,圖片服務(wù)器可以將線下抓取到的圖片預(yù)處理成縮略圖后存儲在cache節(jié)點上,當(dāng)然如果不考慮存儲壓力也可以直接存儲原始圖片。
[0070]通常hash空間中的cache節(jié)點存在多個,圖片服務(wù)器在將抓取到的圖片緩存在cache節(jié)點上時可以按照現(xiàn)有技術(shù)中的方式,將圖片URL進(jìn)行編碼后,取哈希值,按照預(yù)設(shè)的哈希值與cache節(jié)點的對應(yīng)關(guān)系,將圖片存儲在哈希值對應(yīng)的cache節(jié)點上。
[0071]由于cache節(jié)點存在故障宕機(jī)、添加或刪除的可能,因此為了適應(yīng)這些情況下仍能保證從cache節(jié)點上訪問圖片的可靠性,本發(fā)明還提供了 一種新的Cache選擇方法,下面通過實施例二進(jìn)行詳細(xì)描述。
[0072]實施例二、
[0073]圖2為本發(fā)明實施例二提供的存儲圖片至cache節(jié)點的方法流程圖,首先說明以下hash空間的分配狀況,預(yù)先確定hash空間,例如O至232或者O至264作為hash空間,對hash空間進(jìn)行N等分,每個N等分點作為一個cache節(jié)點,如圖3所示,圓形的點為初始分配后的cache節(jié)點。當(dāng)圖片服務(wù)器要將抓取到的圖片緩存到cache節(jié)點上時,如圖2所示,執(zhí)行以下步驟:
[0074]步驟201:對圖片URL進(jìn)行編碼后哈希映射到上述hash空間中。
[0075]在對圖片URL進(jìn)行編碼時,需要唯一且能夠在cache節(jié)點上找到對應(yīng)的圖片,另外也不希望圖片URL以明文的形式展現(xiàn),同時編碼算法也不能太復(fù)雜以增加計算負(fù)擔(dān),因此在本發(fā)明實施例中可以采用一種改進(jìn)的base64算法來對圖片URL進(jìn)行編碼,具體可以包括:
[0076]首先將圖片URL中的預(yù)設(shè)字符片段作為編碼單元,其他單字符作為編碼單元,其中預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段,例如“http://”、“.Com”、“.jpg”、“.gif”、“.png”等作為編碼單元。
[0077]然后基于圖片URL中的各編碼單元采用base64算法進(jìn)行編碼,將編碼后的內(nèi)容中引起歧義或發(fā)生丟失等不可傳輸?shù)淖址娲鸀榘踩址?。例如,將?+ 和“=”分別采用”和替代。需要說明的是,在基于圖片URL中的各編碼單元進(jìn)行編碼時,除了base64之外也可以采用其他線性編碼的算法。
[0078]步驟202:將該圖片存儲到hash映射值右側(cè)最臨近的cache節(jié)點上。
[0079]假設(shè)圖片URL進(jìn)行編碼后hash映射值在hash空間上為圖3中菱形的點,則將圖片存儲到hash映射值右側(cè)最鄰近的cache節(jié)點2上(如虛線箭頭所示)。
[0080]步驟203:如果cache節(jié)點狀態(tài)發(fā)生變化,則:如果有cache節(jié)點故障或者被刪除,則將故障或者被刪除的cache節(jié)點上的圖片轉(zhuǎn)存到其右側(cè)最臨近的cache節(jié)點上;如果新增cache節(jié)點,則將新增cache節(jié)點與其左側(cè)最臨近cache節(jié)點之間的hash映射值對應(yīng)的圖片存儲在新增cache節(jié)點上。
[0081]如圖4所示,假設(shè)cache節(jié)點2被刪除,則cache節(jié)點2上的圖片轉(zhuǎn)存到cache節(jié)點3上,如圖4中虛線箭頭所示。這樣其他cache節(jié)點上的圖片都不會發(fā)生改變,不會給后端的圖片服務(wù)器造成瞬間的壓力。
[0082]如圖5所示,假設(shè)在cache節(jié)點3和cache節(jié)點4之間新增cache節(jié)點6,則將cache節(jié)點3與cache節(jié)點6之間的hash映射值對應(yīng)的圖片存儲在新增的cache節(jié)點6上。該部分圖片在cache節(jié)點4上也存儲有,但后續(xù)由于這部分圖片的訪問都發(fā)生在cache節(jié)點6上,cache節(jié)點4上的這部分圖片會隨著時間的推移老化被刪除。
[0083]如果采用了實施例二中所示的方式將圖片存儲在對應(yīng)cache節(jié)點上,那么在實施例一的步驟103中,客戶端從cache節(jié)點上獲取URL對應(yīng)的圖片時,首先對該URL進(jìn)行編碼后哈希映射到hash空間中,然后從該圖片hash映射值右側(cè)最臨近的cache節(jié)點上獲取該URL對應(yīng)的圖片。
[0084]另外,當(dāng)cache節(jié)點故障、新增或被刪除時,會造成cache節(jié)點之間由原來的等分點變成距離不均衡,這就會造成有些cache節(jié)點的負(fù)載較重,有些cache節(jié)點的負(fù)載較輕。這種情況下,圖片服務(wù)器可以根據(jù)cache節(jié)點的負(fù)載情況在hash空間上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整。
[0085]其中動態(tài)調(diào)整的方式可以為:將負(fù)載超重的cache節(jié)點位置向左移動,或者,將負(fù)載超重的cache節(jié)點左側(cè)最臨近的cache節(jié)點位置向右移動。
[0086]如果原先圖3中所示的平衡狀態(tài)中,cache節(jié)點3被刪除,cache節(jié)點4的負(fù)載逐漸增加,超重時可以將cache節(jié)點的位置左移,或者,將cache節(jié)點2的位置右移。
[0087]在進(jìn)行上述動態(tài)調(diào)整后,可能會存在訪問圖片時無法從cache節(jié)點上找到對應(yīng)的圖片,例如,cache節(jié)點3被刪除后,cache節(jié)點4位置左移,左移部分的哈希值對應(yīng)的圖片在訪問時會到cache節(jié)點5上查找,但卻是在cache節(jié)點4上存儲,這就會造成無法從cache節(jié)點上獲取到對應(yīng)圖片。這種情況下,cache節(jié)點同樣會將該圖片URL發(fā)送至圖片服務(wù)器(也就是說圖片訪問“穿透”至圖片服務(wù)器),圖片服務(wù)器抓取對應(yīng)的圖片并按照實施例二中所述方式存儲至對應(yīng)的cache節(jié)點上。接續(xù)上例,圖片服務(wù)器通過這種方式就能夠?qū)ache節(jié)點4發(fā)生左移的部分的哈希值對應(yīng)的圖片逐漸存儲到cache節(jié)點5上,后續(xù)從cache節(jié)點5上就能夠直接訪問這部分圖片。
[0088]本發(fā)明所提供的圖片訪問的系統(tǒng)如圖6所示,包括客戶端、圖片服務(wù)器和一個以上的cache。
[0089]客戶端首先依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則展現(xiàn)獲取的圖片,結(jié)束操作;如果在設(shè)定時間內(nèi)獲取失敗,則從cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片,如果獲取成功,則展現(xiàn)獲取的圖片,否則觸發(fā)cache節(jié)點提供所述請求的圖片URL。
[0090]cache節(jié)點受到所述客戶端的觸發(fā)后,將所述請求的圖片URL提供給圖片服務(wù)器。
[0091]圖片服務(wù)器將所述圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。
[0092]其中cache節(jié)點是預(yù)先確定的哈??臻g中的N個節(jié)點,優(yōu)選地,初始時可以是哈希空間中的N等分點,所述N為大于I的整數(shù)。cache節(jié)點可以是獨立的服務(wù)器,也可以是圖片服務(wù)器中具有存儲功能的單元,例如圖片服務(wù)器中的硬盤。
[0093]下面通過實施例三對其中的圖片服務(wù)器的結(jié)構(gòu)進(jìn)行詳細(xì)描述。
[0094]實施例三、
[0095]圖7為本發(fā)明實施例三提供的圖片服務(wù)器結(jié)構(gòu)圖,如圖7所示,該圖片服務(wù)器具體包括:URL管理單元700、圖片抓取單元710和圖片存儲單元720。
[0096]URL管理單元700,用于獲取到請求的圖片URL后,將請求的圖片URL放入不可直接訪問圖片集合。
[0097]客戶端在從cache節(jié)點上無法獲取到對應(yīng)圖片時,由cache節(jié)點向圖片服務(wù)器提供請求的圖片URL,觸發(fā)URL管理單元700執(zhí)行操作。
[0098]圖片抓取單元710,用于在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取。
[0099]圖片存儲單元720,用于將圖片抓取單元710抓取到的圖片存儲在cache節(jié)點上,以便客戶端能夠在直接向圖片所在的服務(wù)器獲取對應(yīng)圖片失敗時從cache節(jié)點上獲取圖片URL對應(yīng)的圖片。
[0100]為了減少cache節(jié)點的存儲壓力,圖片存儲單元720可以將圖片抓取單元710抓取到的圖片預(yù)處理成縮略圖后存儲在cache節(jié)點上,當(dāng)然如果不考慮存儲壓力也可以直接存儲原始圖片。
[0101]上述cache節(jié)點可以是預(yù)先確定的哈希空間中的N個節(jié)點,N為大于I的整數(shù)。優(yōu)選地,可以是哈??臻g中的N等分點。
[0102]對應(yīng)于這種情況,圖片存儲單元720在將抓取到的圖片緩存在cache節(jié)點上時可以按照現(xiàn)有技術(shù)中的方式,將圖片URL進(jìn)行編碼后,取哈希值,按照預(yù)設(shè)的哈希值與cache節(jié)點的對應(yīng)關(guān)系,將圖片存儲在哈希值對應(yīng)的cache節(jié)點上。由于cache節(jié)點存在故障巖機(jī)、添加或刪除的可能,因此為了適應(yīng)這些情況下仍能保證從cache節(jié)點上訪問圖片的可靠性,本發(fā)明還提供了一種新的圖片存儲單元的結(jié)構(gòu),如圖7所示,圖片存儲單元720可以包括:編碼子單元721和存儲子單元722。[0103]編碼子單元721,用于對圖片抓取單元710抓取到的圖片的圖片URL進(jìn)行編碼后哈希映射到哈希空間中。
[0104]具體可以將圖片URL中的預(yù)設(shè)字符片段作為編碼單元,其他單字符作為編碼單元,預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段;基于圖片URL中的各編碼單元采用線性編碼算法進(jìn)行編碼,將編碼后的內(nèi)容中不可傳輸?shù)淖址娲鸀榘踩址?。其中預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段,例如“http://”、“.com”、' jpg”、“.gif”、“.png”等作為編碼單元。
[0105]存儲子單元722,用于將抓取到的圖片存儲到編碼子單元721得到的哈希映射值右側(cè)最臨近的cache節(jié)點上。
[0106]為了適應(yīng)cache節(jié)點狀態(tài)變化的情況,該圖片服務(wù)器還包括:節(jié)點管理單元730,用于如果哈希空間中有cache節(jié)點故障或被刪除,則將故障或被刪除的cache節(jié)點上的圖片轉(zhuǎn)存到其右側(cè)最臨近的cache節(jié)點上;如果哈??臻g中新增cache節(jié)點,則將新增cache節(jié)點與其左側(cè)最臨近的cache節(jié)點之間的哈希映射值對應(yīng)的圖片存儲在新增cache節(jié)點上。
[0107]另外,當(dāng)cache節(jié)點故障、新增或被刪除時,會造成cache節(jié)點之間由原來的等分點變成距離不均衡,這就會造成有些cache節(jié)點的負(fù)載較重,有些cache節(jié)點的負(fù)載較輕。這種情況下,圖片服務(wù)器可以根據(jù)cache節(jié)點的負(fù)載情況在hash空間上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整。此時,該圖片服務(wù)器還包括:
[0108]節(jié)點調(diào)整單元740,用于當(dāng)發(fā)生cache節(jié)點故障、新增或被刪除后,根據(jù)cache節(jié)點的負(fù)載情況在哈希空間上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整,動態(tài)調(diào)整包括:將負(fù)載超重的cache節(jié)點位置向左移動,或者,將負(fù)載超重的cache節(jié)點左側(cè)最臨近的cache節(jié)點位置向右移動。
[0109]另外,存在一種優(yōu)選的實施方式,即圖片存儲單元720,還用于將圖片抓取單元抓取到的圖片存儲在本地。
[0110]URL管理單元700在獲取到請求的圖片URL后,首先查詢本地是否存在請求的圖片URL對應(yīng)的圖片,如果是,則觸發(fā)圖片存儲單元720直接將對應(yīng)的圖片存儲在Cache節(jié)點上,以便由Cache節(jié)點將對應(yīng)的圖片返回給客戶端,否則,繼續(xù)執(zhí)行將請求的圖片URL放入不可直接訪問圖片集合的操作。
[0111]本發(fā)明提供的上述方式可以用于任意圖片訪問的應(yīng)用中,在此以圖片標(biāo)注系統(tǒng)為例,在圖片搜索中為了提高圖片搜索的準(zhǔn)確性和召回率,通過“眾包”的方式對圖片進(jìn)行標(biāo)注,標(biāo)注的數(shù)據(jù)可以作為圖片機(jī)器學(xué)習(xí)的樣本數(shù)據(jù)。具體地,向用戶組展示同一張圖片,通過用戶組對同一張圖片進(jìn)行關(guān)鍵詞標(biāo)注,當(dāng)用戶組標(biāo)注的關(guān)鍵詞滿足一致性要求時,這個關(guān)鍵詞就被標(biāo)注系統(tǒng)作為該圖片的一個標(biāo)簽,同時該關(guān)鍵詞在后續(xù)就被作為“禁用詞”不能繼續(xù)進(jìn)行標(biāo)注。當(dāng)禁用詞越來越多時,就代表圖片的信息越來越豐富,達(dá)到一定數(shù)量后,該圖片的標(biāo)注任務(wù)就完成了,就不再向用戶展示該圖片。在標(biāo)注系統(tǒng)向用戶組展示圖片時,需要對圖片進(jìn)行訪問,該訪問過程就可以采用本發(fā)明的圖片訪問方式。
[0112]由以上描述可以看出,本發(fā)明提供的方法和裝置具備以下優(yōu)點:
[0113]I)相比較實時訪問圖片時出現(xiàn)的訪問失敗的問題,提高了圖片訪問的可靠性和效率,同時相比較實時訪問圖片時出現(xiàn)的訪問速度過慢的問題也提高了訪問速度。[0114]2)在本發(fā)明實施例中提供的cache機(jī)制,能夠在節(jié)省存儲資源的前提下,靈活適應(yīng)cache故障、新增或刪除所帶來的影響,提高圖片訪問的流暢性。
[0115]3)支持大規(guī)模的用戶訪問,提高大規(guī)模訪問情況下的訪問速度。
[0116]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種圖片訪問的方法,其特征在于,該方法包括: 51、客戶端依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則展現(xiàn)獲取的圖片,結(jié)束流程;如果在設(shè)定時間內(nèi)獲取失敗,執(zhí)行步驟S2 ; 52、從緩存cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片,如果獲取成功,則展現(xiàn)獲取的圖片,結(jié)束流程;否則,執(zhí)行步驟S3 ; 53、所述cache節(jié)點將所述請求的圖片URL發(fā)送給圖片服務(wù)器; 54、所述圖片服務(wù)器將所述請求的圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述圖片服務(wù)器將抓取到的圖片預(yù)處理成縮略圖后存儲在cache節(jié)點上。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述cache節(jié)點是預(yù)先確定的哈??臻g中的N個節(jié)點,所述N為大于I的整數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述圖片服務(wù)器將抓取到的圖片存儲在cache節(jié)點上具體包括:對抓取到的圖片的圖片URL進(jìn)行編碼后哈希映射到所述哈??臻g中,將所述抓取到的圖片存儲到哈希映射值右側(cè)最臨近的cache節(jié)點上; 所述從cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片具體包括:對圖片URL進(jìn)行編碼后哈希映射到所述哈??臻g中,從哈希映射值右側(cè)最臨近的cache節(jié)點上獲取對應(yīng)的圖片。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,對圖片URL進(jìn)行編碼具體包括: 將圖片URL中的預(yù)設(shè)字符片段作為編碼單元,其他單字符作為編碼單元,所述預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段; 基于圖片URL中的各編碼單元采用線性編碼算法進(jìn)行編碼,將編碼后的內(nèi)容中不可傳輸?shù)淖址娲鸀榘踩址?br> 6.根據(jù)權(quán)利要求4所述的方法,其特征在于,該方法還包括: 如果所述哈??臻g中有cache節(jié)點故障或被刪除,則將故障或被刪除的cache節(jié)點上的圖片轉(zhuǎn)存到其右側(cè)最臨近的cache節(jié)點上; 如果所述哈希空間中新增cache節(jié)點,則將新增cache節(jié)點與其左側(cè)最臨近的cache節(jié)點之間的哈希映射值對應(yīng)的圖片存儲在新增cache節(jié)點上。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法還包括: 當(dāng)發(fā)生cache節(jié)點故障、新增或被刪除后,所述圖片服務(wù)器根據(jù)cache節(jié)點的負(fù)載情況在所述哈希空間上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整; 所述動態(tài)調(diào)整包括:將負(fù)載超重的cache節(jié)點位置向左移動,或者,將負(fù)載超重的cache節(jié)點左側(cè)最臨近的cache節(jié)點位置向右移動。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4還包括:所述圖片服務(wù)器將抓取到的圖片存儲在本地; 在所述步驟S4之前還包括:所述圖片服務(wù)器查詢本地是否存在所述請求的圖片URL對應(yīng)的圖片,如果是,則直接將對應(yīng)的圖片存儲在Cache節(jié)點上,并由Cache節(jié)點將對應(yīng)的圖片返回給客戶端,結(jié)束流程;否則,繼續(xù)執(zhí)行所述步驟S4。
9.一種圖片訪問的系統(tǒng),其特征在于,該系統(tǒng)包括: 客戶端,用于依據(jù)請求的圖片URL直接向圖片所在的服務(wù)器發(fā)起訪問以獲取對應(yīng)的圖片,如果在設(shè)定時間內(nèi)獲取成功,則展現(xiàn)獲取的圖片;如果在設(shè)定時間內(nèi)獲取失敗,則從緩存cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片,如果獲取成功,則展現(xiàn)獲取的圖片,否則觸發(fā)cache節(jié)點提供所述請求的圖片URL ; cache節(jié)點,用于受到所述客戶端的觸發(fā)后,將所述請求的圖片URL提供給圖片服務(wù)器; 圖片服務(wù)器,用于將所述圖片URL放入不可直接訪問圖片集合,并在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓取,將抓取到的圖片存儲在cache節(jié)點上。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述cache節(jié)點是預(yù)先確定的哈希空間中的N個節(jié)點,所述N為大于I的整數(shù)。
11.一種圖片訪問的圖片服務(wù)器,其特征在于,該圖片服務(wù)器包括: URL管理單元,用于獲取到請求的圖片URL后,將所述請求的圖片URL放入不可直接訪問圖片集合; 圖片抓取單元,用于在網(wǎng)絡(luò)空閑時利用不可直接訪問圖片集合中的圖片URL進(jìn)行線下抓??; 圖片存儲單元,用于將所述圖片抓取單元抓取到的圖片存儲在緩存cache節(jié)點上,以便客戶端能夠在直接向圖片所在的服務(wù)器獲取對應(yīng)圖片失敗時從cache節(jié)點上獲取所述圖片URL對應(yīng)的圖片。
12.根據(jù)權(quán)利要求11所述的圖片服務(wù)器,其特征在于,所述圖片存儲單元將所述圖片抓取單元抓取到的圖片預(yù)處理成縮略圖后存儲在cache節(jié)點上。
13.根據(jù)權(quán)利要求11所述的圖片服務(wù)器,其特征在于,所述cache節(jié)點是預(yù)先確定的哈??臻g中的N個節(jié)點,所述N為大于I的整數(shù)。
14.根據(jù)權(quán)利要求13所述的圖片服務(wù)器,其特征在于,所述圖片存儲單元包括: 編碼子單元,用于對所述圖片抓取單元抓取到的圖片的圖片URL進(jìn)行編碼后哈希映射到所述哈??臻g中; 存儲子單元,用于將所述抓取到的圖片存儲到所述編碼子單元得到的哈希映射值右側(cè)最臨近的cache節(jié)點上。
15.根據(jù)權(quán)利要求14所述的圖片服務(wù)器,其特征在于,所述編碼子單元具體將圖片URL中的預(yù)設(shè)字符片段作為編碼單元,其他單字符作為編碼單元,所述預(yù)設(shè)字符片段為圖片URL通常所共有的字符片段;基于圖片URL中的各編碼單元采用線性編碼算法進(jìn)行編碼,將編碼后的內(nèi)容中不可傳輸?shù)淖址娲鸀榘踩址?br> 16.根據(jù)權(quán)利要求14所述的圖片服務(wù)器,其特征在于,該圖片服務(wù)器還包括: 節(jié)點管理單元,用于如果所述哈希空間中有cache節(jié)點故障或被刪除,則將故障或被刪除的cache節(jié)點上的圖片轉(zhuǎn)存到其右側(cè)最臨近的cache節(jié)點上;如果所述哈??臻g中新增cache節(jié)點,則將新增cache節(jié)點與其左側(cè)最臨近的cache節(jié)點之間的哈希映射值對應(yīng)的圖片存儲在新增cache節(jié)點上。
17.根據(jù)權(quán)利要求16所述的圖片服務(wù)器,其特征在于,該圖片服務(wù)器還包括: 節(jié)點調(diào)整單元,用于當(dāng)發(fā)生cache節(jié)點故障、新增或被刪除后,根據(jù)cache節(jié)點的負(fù)載情況在所述哈??臻g上進(jìn)行cache節(jié)點位置的動態(tài)調(diào)整,所述動態(tài)調(diào)整包括:將負(fù)載超重的cache節(jié)點位置向左移動,或者,將負(fù)載超重的cache節(jié)點左側(cè)最臨近的cache節(jié)點位置向右移動。
18.根據(jù)權(quán)利要求11所述的圖片服務(wù)器,其特征在于,所述圖片存儲單元,還用于將所述圖片抓取單元抓取到的圖片存儲在本地; 所述URL管理單元在獲取到請求的圖片URL后,首先查詢本地是否存在所述請求的圖片URL對應(yīng)的圖片,如果是,則觸發(fā)所述圖片存儲單元直接將對應(yīng)的圖片存儲在Cache節(jié)點上,以便由Cache節(jié)點將對應(yīng)的圖片返回給客戶端,否則,繼續(xù)執(zhí)行將所述請求的圖片URL放入不可直接訪問圖片集合的操作。
【文檔編號】H04L29/08GK103544149SQ201210236360
【公開日】2014年1月29日 申請日期:2012年7月9日 優(yōu)先權(quán)日:2012年7月9日
【發(fā)明者】阮星華 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
微山县| 永清县| 政和县| 塘沽区| 济阳县| 年辖:市辖区| 邵东县| 谢通门县| 星座| 临桂县| 阿城市| 静宁县| 天全县| 大连市| 布尔津县| 营山县| 淳化县| 邛崃市| 玉龙| 和平县| 仁化县| 凤冈县| 富宁县| 简阳市| 宜兴市| 酉阳| 临漳县| 四会市| 禹州市| 和静县| 项城市| 丰原市| 武义县| 乌什县| 崇明县| 河津市| 昆明市| 抚顺市| 南昌县| 鹰潭市| 上犹县|