<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Pike-HTTPCache高效簡(jiǎn)單的 HTTP 緩存服務(wù)

          聯(lián)合創(chuàng)作 · 2023-09-29 07:32

          Pike:HTTP緩存服務(wù),提供高效簡(jiǎn)單的HTTP緩存服務(wù),類似于varnish但配置更簡(jiǎn)單。

          Pike由最開始基于fasthttp,fasthttp的性能的確很高效,但該項(xiàng)目在2017年底之后就沒(méi)有commit,提的issue也沒(méi)有反饋,BUG只能自己修復(fù),因此后續(xù)切換至echo。echo的大部分增強(qiáng)的功能都基本沒(méi)使用到,自帶的http已足夠滿足現(xiàn)有的業(yè)務(wù)場(chǎng)景,最終選擇了直接使用自帶的http,版本1.0.0也正式發(fā)布。

          簡(jiǎn)潔的配置:

          # HTTP response header 中的 Pike 
          name: Pike
          # 程序監(jiān)聽的端口,默認(rèn)為 :3015
          listen: :3015
          # 數(shù)據(jù)緩存的db文件(必須指定)
          db: /tmp/pike.cache
          directors:
            -
              # 名稱
              name: tiny 
              # backend的健康檢測(cè),如果不配置,則默認(rèn)判斷該端口是否被監(jiān)聽
              ping: /ping
              # prefix與host是AND的關(guān)系
              # 判斷請(qǐng)求url的是否包含該前綴,如果是,則是此director
              prefixs:
                - /api
              # backend列表
              backends:
                - http://127.0.0.1:5018
            -
              name: npmtrend
              ping: /ping
              hosts:
                - npmtrend.com
              backends:
                - http://127.0.0.1:5020
                - http://127.0.0.1:5021

          特性

          • 基于yaml的配置,簡(jiǎn)潔易懂

          • WEB管理后臺(tái),提供節(jié)點(diǎn)監(jiān)控、系統(tǒng)性能、緩存清理功能

          • 標(biāo)準(zhǔn)化的基于HTTP頭Cache-Control緩存控制

          • 壓縮保存的響應(yīng)數(shù)據(jù),避免每次響應(yīng)時(shí)重新壓縮(如果客戶端不支持壓縮則解壓)

          • 自定義日志格式,支持二十多種placeholder,如:cookie,請(qǐng)求頭字段,響應(yīng)頭字段,響應(yīng)時(shí)間等

          • 訪問(wèn)日志支持以文件(按天分隔)或者UDP的形式輸出

          • 支持自定義HTTP請(qǐng)求、響應(yīng)頭配置

          • 支持自定義最小壓縮長(zhǎng)度,對(duì)于內(nèi)網(wǎng)之間的訪問(wèn),避免壓縮、解壓的時(shí)間損耗

          • 支持自定義文本壓縮級(jí)別與指定壓縮數(shù)據(jù)類型

          • 根據(jù)客戶端智能選擇響應(yīng)數(shù)據(jù)壓縮方式:gzip或者brotli

          性能

          測(cè)試機(jī)器:8核 8GB內(nèi)存,測(cè)試環(huán)境有限,wrk與測(cè)試程序均在同一機(jī)器上運(yùn)行

          wrk -H 'Accept-Encoding: gzip, deflate' -t10 -c2000 \
          -d1m 'http://127.0.0.1:3015/api/i18ns' --latency --timeout 3s
          
          Running 1m test @ http://127.0.0.1:3015/api/i18ns
            10 threads and 2000 connections
            Thread Stats   Avg      Stdev     Max   +/- Stdev
              Latency   203.61ms  226.35ms   3.00s    85.52%
              Req/Sec     1.31k   240.96     3.15k    74.11%
            Latency Distribution
               50%  157.26ms
               75%  315.03ms
               90%  506.21ms
               99%  963.79ms
            785711 requests in 1.00m, 4.13GB read
          Requests/sec:  13075.99
          Transfer/sec:     70.40MB

          安裝

          因?yàn)?code>pike支持br的壓縮處理,此功能需要依賴于動(dòng)態(tài)庫(kù),建議直接使用打包好的docker鏡像:vicanso/pike:1.0.0,相應(yīng)編譯好的動(dòng)態(tài)庫(kù)(ubuntu)也可以在github中的release中下載。

          docker run -d --restart=always \
            -p 3015:3015 \
            -v /data/pike/config.yml:/etc/pike/config.yml \
            --name=pike \
            vicanso/pike

          結(jié)語(yǔ)

          Pike在性能已超過(guò)10k/rps,對(duì)于大部分的網(wǎng)站已經(jīng)能滿足性能上的需求,如果對(duì)于性能有更高要求的可以不使用docker的形式執(zhí)行,或者直接使用varnish。Pike性能雖然比不上varnish,但它的配置更簡(jiǎn)單,而且也有直觀的管理后臺(tái)功能,如果有興趣試用,可以在github上向我反饋。在此,感恩不言謝!

          注:管理后臺(tái)體驗(yàn)http://xs.aslant.site:3000/pike/index.html#/,token是abcd

          瀏覽 13
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97久久人国产精品婷婷 | 蜜桃久久av一区 免费大免费黄在线 | 日韩美女福利视频 | 一级特黄60分钟免费 | 色老板免费精品无码免费视频 |