1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

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

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

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

        簡潔的配置:

        # HTTP response header 中的 Pike 
        name: Pike
        # 程序監(jiān)聽的端口,默認為 :3015
        listen: :3015
        # 數(shù)據(jù)緩存的db文件(必須指定)
        db: /tmp/pike.cache
        directors:
          -
            # 名稱
            name: tiny 
            # backend的健康檢測,如果不配置,則默認判斷該端口是否被監(jiān)聽
            ping: /ping
            # prefix與host是AND的關(guān)系
            # 判斷請求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的配置,簡潔易懂

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

        • 標準化的基于HTTP頭Cache-Control緩存控制

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

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

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

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

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

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

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

        性能

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

        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

        安裝

        因為pike支持br的壓縮處理,此功能需要依賴于動態(tài)庫,建議直接使用打包好的docker鏡像:vicanso/pike:1.0.0,相應(yīng)編譯好的動態(tài)庫(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é)語

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

        注:管理后臺體驗http://xs.aslant.site:3000/pike/index.html#/,token是abcd

        瀏覽 13
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            色屁屁草草影院ccyy.com | AV天天操 | 91美女裸体网站 | 清娱乐国产一区在线免费观看 | 国产精品美女裸体免费看 | 国产又爽 又黄 免费网站免费观看 | 人人爱人人做 | 又长又硬又黄网站 | 宝贝腿张大点就不疼了bl | 乡村活寡妇在做爰 |