国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種可配置的緩存系統(tǒng)和方法

      文檔序號(hào):9396816閱讀:205來源:國(guó)知局
      一種可配置的緩存系統(tǒng)和方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,尤其涉及一種前端緩存系統(tǒng)和方法。
      【背景技術(shù)】
      [0002]緩存技術(shù)在計(jì)算機(jī)系統(tǒng)中無處不在,從計(jì)算機(jī)到各種路由設(shè)備、從軟件實(shí)現(xiàn)到硬件實(shí)現(xiàn),設(shè)計(jì)良好的緩存系統(tǒng),可以大大提高系統(tǒng)的響應(yīng)速度,提高了用戶體驗(yàn)?;ヂ?lián)網(wǎng)應(yīng)用中,緩存系統(tǒng)又分為memcache、redis等后端緩存,以及Squid、Varnish、Nginx、ApacheTraffic Server等前端緩存系統(tǒng)。不論前端緩存還是后端緩存,適應(yīng)業(yè)務(wù)需求,提尚緩存命中率是最重要的追求。
      [0003]前端緩存服務(wù),在此指使用⑶N技術(shù),利用Squid、Varnish、Nginx、Apache TrafficServer等做前端緩沖,提供HTTP協(xié)議所描述的緩存服務(wù)。
      [0004]HTTP協(xié)議詳細(xì)定義了前端緩存服務(wù)、以及瀏覽器本地緩存的支持細(xì)節(jié),緩存與否受url、多個(gè)http header域值影響。現(xiàn)實(shí)業(yè)務(wù)場(chǎng)景中,瀏覽器、操作系統(tǒng)、url重定向、get參數(shù)、cookie值等眾多因素變化,均可能導(dǎo)致緩存無效。

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

      [0005]本發(fā)明的目的是為了解決現(xiàn)有技術(shù)的不足,提供一種可配置的緩存系統(tǒng)和方法。
      [0006]本發(fā)明的第一個(gè)目的是提供一種可配置的緩存系統(tǒng),包括前端調(diào)度器、前端緩存服務(wù)器,所述前端調(diào)度器中配置有相關(guān)的locat1n規(guī)則和嵌入式腳本Lua語(yǔ)言,所述前端調(diào)度器通過判斷訪問請(qǐng)求,根據(jù)url是否匹配自定義的header參數(shù)作相關(guān)判斷,并將最終執(zhí)行完的參數(shù)傳遞給前端緩存服務(wù)器。
      [0007]本發(fā)明的第二個(gè)目的是提供一種可配置的緩存方法,通過上述的可配置的緩存系統(tǒng)實(shí)現(xiàn),包括至少以下步驟:
      (O前端調(diào)度器轉(zhuǎn)發(fā)請(qǐng)求,判斷此次請(qǐng)求,并確保只匹配GET請(qǐng)求;
      (2)前端調(diào)度器檢測(cè)請(qǐng)求參數(shù),通過url重寫,消除無關(guān)邏輯的參數(shù),確保請(qǐng)求中帶有無關(guān)邏輯的參數(shù)都命中同一個(gè)緩存結(jié)果;
      (3)前端調(diào)度器檢測(cè)此次請(qǐng)求的cookie內(nèi)容,提取與執(zhí)行邏輯相關(guān)的cookie值;
      (4)前端調(diào)度器檢測(cè)此次請(qǐng)求的其他header內(nèi)容,提取與執(zhí)行邏輯相關(guān)的域值,并把域值傳遞給一個(gè)配置的變量flang ;
      (5)前端調(diào)度器判斷變量flang是否匹配預(yù)設(shè)的值,如果匹配,就把值傳遞都給默認(rèn)的變量deflang,生成正確的header域值;
      (6)前端調(diào)度器把最終的header域值傳遞給前端緩存服務(wù)器。
      [0008]上述的一種可配置的緩存方法,其中于,所述步驟(2)中,通過前端代理層中的locat1n規(guī)則,判斷請(qǐng)求參數(shù),若可緩存,則進(jìn)行url重寫。
      [0009]上述的一種可配置的緩存系統(tǒng),其中,所述前端調(diào)度器采用Nginx代理服務(wù)器。
      [0010]綜上所述,由于采用上述技術(shù)方案,本發(fā)明在前端調(diào)度器中通過url重寫技術(shù)和自定義header域值,排除可能干擾緩存的因素,最大程度保障緩存的命中率。確保不同URL按統(tǒng)一邏輯緩存,同時(shí)確保同一 URL為登陸用戶提供各自獨(dú)立的緩存邏輯。
      【附圖說明】
      [0011]圖1是本發(fā)明一種可配置的緩存系統(tǒng)和方法的流程圖。
      【具體實(shí)施方式】
      [0012]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】作詳細(xì)介紹。
      [0013]實(shí)施例1
      請(qǐng)參見圖1,本發(fā)明的一種可配置的緩存系統(tǒng),包括前端調(diào)度器、前端緩存服務(wù)器,前端調(diào)度器,在此指廣泛應(yīng)用于Web開發(fā)中的七層應(yīng)用代理軟件,包括nginx、haproxy等都是非常高效的前端調(diào)度器,本發(fā)明優(yōu)選nginx。
      [0014]在前端調(diào)度器中配置有相關(guān)的locat1n規(guī)則和嵌入式腳本Lua語(yǔ)言,本發(fā)明借助嵌入式腳本Lua語(yǔ)言編程,在前端調(diào)度器中通過url重寫技術(shù)和自定義header域值,排除可能干擾緩存的因素,最大程度保障緩存的命中率。
      [0015]本發(fā)明的可配置的緩存方法,通過上述的可配置的緩存系統(tǒng)實(shí)現(xiàn),包括至少以下步驟:
      (1)前端調(diào)度器轉(zhuǎn)發(fā)請(qǐng)求,判斷此次請(qǐng)求,通過^111681:_1]16〖110(1 = GET參數(shù)使得本身只匹配GET請(qǐng)求。
      [0016](2)前端調(diào)度器檢測(cè)請(qǐng)求參數(shù),通過前端代理層中的locat1n規(guī)則,判斷請(qǐng)求參數(shù),若可緩存,則進(jìn)行url重寫。通過url重寫,消除無關(guān)邏輯的參數(shù),確保請(qǐng)求中帶有無關(guān)邏輯的參數(shù)都命中同一個(gè)緩存結(jié)果。
      [0017]例如,“rewrite /dem0.php?test=abc /demo, php last; ”,不例中參數(shù) test=abc與執(zhí)行邏輯無關(guān),不影響最終結(jié)果,通過此重寫,確保'/dem0.php?test=abc'與“/demo,php”命中冋一緩存結(jié)果。
      [0018](3)前端調(diào)度器檢測(cè)此次請(qǐng)求的cookie內(nèi)容,提取與執(zhí)行邏輯相關(guān)的cookie值。
      [0019]例如,用戶cookie中的語(yǔ)言版本檢查,設(shè)定一個(gè)默認(rèn)值的變量deflang,如果cookie中存在其他值,就把變量的內(nèi)容改成對(duì)應(yīng)的值。
      [0020]set $deflang en;
      If ( $cookie_defIang ) {
      set $defIang $cookie_defIang;
      }o
      [0021](4)前端調(diào)度器檢測(cè)此次請(qǐng)求的其他header內(nèi)容,提取與執(zhí)行邏輯相關(guān)的域值,并把域值傳遞給一個(gè)配置的變量flang。
      [0022]例如,用戶瀏覽器語(yǔ)言環(huán)境的檢查: set_by_lua $fIang ^
      local I = ngx.req.get_headers()[ iAccept-Language,]return I
      o
      [0023](5)前端調(diào)度器判斷變量flang是否匹配預(yù)設(shè)的值,如果匹配,就把值傳遞都給默認(rèn)的變量deflang,生成正確的header域值;并通過nginx的Fastcig_param把默認(rèn)的變量傳遞給前端緩存服務(wù)器。
      [0024]例如,針對(duì)語(yǔ)言版本檢測(cè): if ( $fIang ~ ‘zh’ ) {
      set $defIang zh;
      }
      Fastcgi_param HTTP_VARY_DEFLANG Sdeflang0
      [0025](6)前端調(diào)度器把最終的header域值傳遞給前端緩存服務(wù)器。
      [0026]經(jīng)過上述步驟(I) ~ (6),確保不同URL按統(tǒng)一邏輯緩存,同時(shí)確保同一 URL為登陸用戶提供各自獨(dú)立的緩存邏輯。
      [0027]實(shí)施例2
      以登陸用戶語(yǔ)言版本區(qū)分為示例,本發(fā)明分為代理服務(wù)配置邏輯、和響應(yīng)匹配邏輯構(gòu)成。
      [0028]代理服務(wù)配置邏輯示例如下:
      rewrite /dem0.php?test=abc /demo, php last; #使用內(nèi)部跳轉(zhuǎn)達(dá)到修改url 的目的
      set $deflang en;# 默認(rèn)值
      set_by_lua $fIang '
      local I = ngx.req.get_headers () [' Accept-Language'] return I
      > ■
      j
      if ( Sflang ~ ’zh’){#瀏覽器邏輯一請(qǐng)求頭
      Accept-Language
      set $defIang zh;
      }
      if ( $cookie—deflang ) {#cookie 邏輯一deflang
      set $defIang $cookie—deflang;
      }
      fastcgi—param HTTP—VARY—DEFLANG $deflang; # 生成請(qǐng)求頭 Vary-DefIang。
      [0029]響應(yīng)匹配邏輯如下: header (J Vary: Vary-Deflang O。
      [0030]以上示例只展示了一個(gè)特定url的匹配與重寫,以及針對(duì)用戶語(yǔ)言版本的檢測(cè)區(qū)分,通過簡(jiǎn)單擴(kuò)展,可以進(jìn)一步應(yīng)用于任何Iirl匹配重寫過程,以及其他參數(shù)的檢測(cè)實(shí)現(xiàn)。
      [0031]以上所述的實(shí)施例僅用于說明本專利的技術(shù)思想及特點(diǎn),其目的在于使本領(lǐng)域內(nèi)的技術(shù)人員能夠了解本專利的內(nèi)容并據(jù)以實(shí)施,不能僅以本實(shí)施例來限定本專利的專利范圍,即凡依本專利所揭示的精神所作的同等變化或修飾,仍落在本專利的專利范圍內(nèi)。
      【主權(quán)項(xiàng)】
      1.一種可配置的緩存系統(tǒng),其特征在于,包括前端調(diào)度器、前端緩存服務(wù)器,所述前端調(diào)度器中配置有相關(guān)的locat1n規(guī)則和嵌入式腳本Lua語(yǔ)言,所述前端調(diào)度器通過判斷訪問請(qǐng)求,根據(jù)url是否匹配自定義的header參數(shù)作相關(guān)判斷,并將最終執(zhí)行完的參數(shù)傳遞給前端緩存服務(wù)器。2.—種可配置的緩存方法,其特征在于,通過權(quán)利要求1所述的可配置的緩存系統(tǒng)實(shí)現(xiàn),包括至少以下步驟: (O前端調(diào)度器轉(zhuǎn)發(fā)請(qǐng)求,判斷此次請(qǐng)求,并確保只匹配GET請(qǐng)求; (2)前端調(diào)度器檢測(cè)請(qǐng)求參數(shù),通過url重寫,消除無關(guān)邏輯的參數(shù),確保請(qǐng)求中帶有無關(guān)邏輯的參數(shù)都命中同一個(gè)緩存結(jié)果; (3)前端調(diào)度器檢測(cè)此次請(qǐng)求的cookie內(nèi)容,提取與執(zhí)行邏輯相關(guān)的cookie值; (4)前端調(diào)度器檢測(cè)此次請(qǐng)求的其他header內(nèi)容,提取與執(zhí)行邏輯相關(guān)的域值,并把域值傳遞給一個(gè)配置的變量flang ; (5)前端調(diào)度器判斷變量flang是否匹配預(yù)設(shè)的值,如果匹配,就把值傳遞都給默認(rèn)的變量deflang,生成正確的header域值; (6)前端調(diào)度器把最終的header域值傳遞給前端緩存服務(wù)器。3.根據(jù)權(quán)利要求2所述的一種可配置的緩存方法,其特征在于,所述步驟(2)中,通過前端代理層中的locat1n規(guī)則,判斷請(qǐng)求參數(shù),若可緩存,則進(jìn)行url重寫。4.根據(jù)權(quán)利要求1所述的一種可配置的緩存系統(tǒng),其特征在于,所述前端調(diào)度器采用Nginx代理服務(wù)器。
      【專利摘要】一種可配置的緩存系統(tǒng)和方法,包括前端調(diào)度器、前端緩存服務(wù)器,所述前端調(diào)度器中配置有相關(guān)的location規(guī)則和嵌入式腳本Lua語(yǔ)言,本發(fā)明在前端調(diào)度器中通過url重寫技術(shù)和自定義header域值,排除可能干擾緩存的因素,最大程度保障緩存的命中率。確保不同URL按統(tǒng)一邏輯緩存,同時(shí)確保同一URL為登陸用戶提供各自獨(dú)立的緩存邏輯。
      【IPC分類】G06F12/08, H04L29/06
      【公開號(hào)】CN105117350
      【申請(qǐng)?zhí)枴緾N201510526584
      【發(fā)明人】文軍
      【申請(qǐng)人】摩貝(上海)生物科技有限公司
      【公開日】2015年12月2日
      【申請(qǐng)日】2015年8月25日
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1