日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

Linux私有化部署IP歸屬地查詢服務(wù):MMDB與高性能實踐

Linux私有化部署IP歸屬地查詢服務(wù):MMDB與高性能實踐 1. 為什么要把IP查詢能力攥在自己手里做后端開發(fā)或者運維的朋友大概率都遇到過這樣的場景用戶登錄日志里需要記錄歸屬地、風(fēng)控系統(tǒng)要判斷異地登錄、CDN調(diào)度要按地域做分流、甚至運營后臺想看看用戶都從哪些城市來。這些需求背后都指向同一個基礎(chǔ)能力——IP地址查詢。早期圖省事很多人直接調(diào)第三方公開接口傳個IP過去返回省市區(qū)。但用著用著問題就來了免費接口有頻率限制QPS一上來就給你返回429商業(yè)接口按調(diào)用量計費日活稍微漲一漲賬單就跟著漲更麻煩的是數(shù)據(jù)出境合規(guī)問題用戶IP屬于個人信息每次查詢都往外部服務(wù)發(fā)審計的時候說不清楚。還有一個容易被忽略的點——延遲。第三方接口再快也要走公網(wǎng)一次查詢幾十毫秒高并發(fā)場景下這就是實打?qū)嵉男阅軗p耗。所以這兩年我經(jīng)手的項目里只要涉及IP歸屬地查詢基本都走私有化部署這條路。所謂私有化部署說白了就是把IP庫和查詢服務(wù)裝在自己的Linux服務(wù)器上數(shù)據(jù)不出內(nèi)網(wǎng)查詢走本地回環(huán)QPS想拉多高拉多高成本就是一臺機(jī)器的錢。這篇文章就把我踩過坑、調(diào)過優(yōu)的一套完整方案拆開來講從選庫、裝環(huán)境、寫服務(wù)到壓測調(diào)優(yōu)盡量讓不同基礎(chǔ)的朋友都能照著復(fù)現(xiàn)。適合誰看如果你是后端開發(fā)、運維工程師、SRE或者正在做風(fēng)控、日志分析、用戶畫像相關(guān)的系統(tǒng)這套方案可以直接抄作業(yè)。如果你只是偶爾查幾個IP那用在線工具就夠了沒必要折騰。但只要你面對的是日均百萬級以上的查詢量或者對數(shù)據(jù)合規(guī)有硬性要求私有化部署就是繞不開的選擇。2. 方案整體設(shè)計與選型思路2.1 私有化部署到底解決了哪些痛點先把賬算清楚。假設(shè)你的系統(tǒng)日均查詢量是500萬次用某商業(yè)API按每萬次幾毛錢算一個月下來也是幾百到上千塊一年就是大幾千。而私有化部署呢一臺2核4G的云服務(wù)器一年成本也就幾百塊IP庫用開源的查詢服務(wù)自己寫邊際成本幾乎為零。查詢量越大私有化的優(yōu)勢越明顯。除了成本還有三個硬指標(biāo)是第三方接口給不了的。第一是延遲可控本地查詢走內(nèi)存或本地文件單次查詢可以壓到微秒級而公網(wǎng)接口再優(yōu)化也難低于10毫秒。第二是穩(wěn)定性自主不用擔(dān)心對方接口掛了、限流了、或者突然改計費規(guī)則。第三是數(shù)據(jù)合規(guī)用戶IP不離開自己的服務(wù)器審計的時候底氣足。提示私有化部署不是沒有代價的。你需要自己維護(hù)IP庫的更新自己處理服務(wù)的高可用自己扛住查詢壓力。如果團(tuán)隊沒有運維能力或者查詢量很小老老實實用第三方接口反而更省心。2.2 IP庫格式怎么選MMDB還是CSVIP庫的原始數(shù)據(jù)通常有兩種形態(tài)一種是純文本的CSV一行一個網(wǎng)段加歸屬地信息另一種是二進(jìn)制格式最典型的就是MMDBMaxMind DB格式。這兩種格式的選擇直接決定了你后面查詢服務(wù)的實現(xiàn)方式。CSV的好處是直觀用文本編輯器就能看方便做數(shù)據(jù)清洗和二次加工。但缺點也很明顯文件體積大全量加載到內(nèi)存占空間查詢的時候要么全表掃描要么自己建索引性能很難做上去。我試過用CSV加二分查找單次查詢大概在幾十微秒但內(nèi)存占用是MMDB的好幾倍。MMDB是專門為IP查詢設(shè)計的二進(jìn)制格式內(nèi)部用了一種叫二叉搜索樹的結(jié)構(gòu)查詢的時候按IP的二進(jìn)制位逐位比較時間復(fù)雜度是O(32)或者O(128)跟數(shù)據(jù)量無關(guān)。文件體積小加載快查詢穩(wěn)定在微秒級。缺點是格式不透明想改數(shù)據(jù)得用專門的工具。所以我的建議很明確生產(chǎn)環(huán)境用MMDB數(shù)據(jù)加工階段用CSV。具體做法是拿CSV做清洗和合并然后用官方工具轉(zhuǎn)成MMDB部署的時候只帶MMDB文件。2.3 查詢服務(wù)的三種實現(xiàn)路線庫選好了接下來是怎么對外提供服務(wù)。我總結(jié)下來有三條路線各有適用場景。第一條是嵌入式直接把MMDB解析庫編譯進(jìn)你的業(yè)務(wù)代碼里。比如Go語言用oschwald/maxminddb-golangPython用maxminddbJava用com.maxmind.db。這種方式?jīng)]有網(wǎng)絡(luò)開銷性能最好但缺點是每個業(yè)務(wù)服務(wù)都要帶一份庫文件更新的時候得挨個重啟。第二條是本地HTTP服務(wù)單獨起一個進(jìn)程加載MMDB對外暴露REST接口業(yè)務(wù)方通過127.0.0.1調(diào)用。這種方式解耦做得好庫更新只需要重啟這一個服務(wù)業(yè)務(wù)方無感知。代價是多了一次本地網(wǎng)絡(luò)往返大概增加幾十微秒。第三條是Unix Domain Socket比HTTP更輕量省掉了TCP握手和HTTP頭解析的開銷。適合對延遲極度敏感的場景但調(diào)試起來沒有HTTP方便curl都不好直接用。我個人的選擇是中小規(guī)模用嵌入式大規(guī)模用本地HTTP服務(wù)。嵌入式適合查詢量不大、服務(wù)數(shù)量少的場景本地HTTP服務(wù)適合微服務(wù)架構(gòu)一個查詢服務(wù)給幾十個業(yè)務(wù)方用維護(hù)成本最低。2.4 為什么是Linux這個標(biāo)題里專門點了Linux不是沒有道理的。IP查詢服務(wù)對系統(tǒng)資源的要求很特殊內(nèi)存要夠大MMDB全量加載CPU不用太強(qiáng)查詢是輕量計算網(wǎng)絡(luò)IO要低延遲本地調(diào)用。Linux在這三點上都有天然優(yōu)勢。具體來說Linux的mmap系統(tǒng)調(diào)用可以把MMDB文件直接映射到內(nèi)存多個進(jìn)程共享同一份物理內(nèi)存不用每個進(jìn)程都拷貝一份。文件更新的時候只要原子替換文件再重新mmap就能做到熱更新。這些特性在Windows上要么沒有要么用起來很別扭。另外Linux的systemd管理服務(wù)、cgroup限制資源、perf做性能分析這一整套工具鏈對運維非常友好。我試過在Windows Server上部署類似的服務(wù)光是處理文件鎖和內(nèi)存映射就折騰了半天最后還是換回Linux。3. 環(huán)境準(zhǔn)備與IP庫處理實操3.1 服務(wù)器配置與系統(tǒng)調(diào)優(yōu)先說說機(jī)器怎么選。MMDB文件的大小取決于IP庫的精細(xì)程度城市級庫大概幾十MB如果帶經(jīng)緯度、ISP、ASN信息可能到一百多MB。全量加載到內(nèi)存加上服務(wù)本身的開銷2GB內(nèi)存是起步4GB比較從容。CPU方面查詢是純計算2核足夠撐起每秒幾萬次的查詢。磁盤用普通的SSD就行因為查詢走內(nèi)存磁盤只在加載和更新的時候用。系統(tǒng)層面有幾個參數(shù)建議調(diào)一下。首先是文件描述符限制HTTP服務(wù)并發(fā)高的時候默認(rèn)的1024可能不夠# 查看當(dāng)前限制 ulimit -n # 臨時調(diào)整 ulimit -n 65535 # 永久調(diào)整編輯 /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535然后是vm.swappiness這個參數(shù)控制內(nèi)存換出到磁盤的傾向。IP查詢服務(wù)希望MMDB常駐內(nèi)存所以建議調(diào)低# 查看當(dāng)前值 cat /proc/sys/vm/swappiness # 臨時設(shè)為10 sysctl vm.swappiness10 # 永久生效寫入 /etc/sysctl.conf vm.swappiness10注意不要設(shè)成0。設(shè)成0在內(nèi)存緊張的時候可能觸發(fā)OOM Killer把服務(wù)殺掉。設(shè)成10是個比較穩(wěn)妥的折中。3.2 IP庫的獲取與格式轉(zhuǎn)換IP庫的數(shù)據(jù)來源開源社區(qū)有幾個選擇。最常用的是MaxMind的GeoLite2免費版提供國家、城市、ASN三個維度的數(shù)據(jù)精度對大部分場景夠用。下載下來是.mmdb格式可以直接用。如果你需要更細(xì)的街道級數(shù)據(jù)那就得考慮商業(yè)庫了這里不展開。拿到MMDB之后建議先做個校驗確認(rèn)文件完整、能正常解析。用官方提供的mmdblookup工具# 安裝工具 apt-get install mmdb-bin # 查詢一個IP試試 mmdblookup --file GeoLite2-City.mmdb --ip 8.8.8.8如果輸出了一堆嵌套的JSON結(jié)構(gòu)說明文件沒問題。接下來是數(shù)據(jù)加工。開源庫有時候會有網(wǎng)段重疊或者缺失的情況如果你對精度要求高可以拿CSV版本做一次合并清洗。思路是把所有網(wǎng)段按起始IP排序然后逐個合并相鄰或重疊的段最后用mmdbwriter工具重新生成MMDB。# 偽代碼示意實際用Python或Go寫 # 1. 讀取CSV解析成 (start_ip, end_ip, country, city) 的列表 # 2. 按start_ip排序 # 3. 遍歷合并如果當(dāng)前段的start 上一段的end 1就合并 # 4. 輸出清洗后的CSV # 5. 用mmdbwriter轉(zhuǎn)成MMDB這一步不是必須的但做過之后查詢準(zhǔn)確率會有肉眼可見的提升尤其是那些跨國企業(yè)內(nèi)網(wǎng)或者云服務(wù)商的IP段。3.3 目錄規(guī)劃與文件權(quán)限部署之前先把目錄結(jié)構(gòu)定好后面維護(hù)起來省心。我習(xí)慣這樣規(guī)劃/opt/ipdb/ ├── bin/ # 可執(zhí)行文件 ├── data/ # MMDB文件 │ ├── current/ # 當(dāng)前使用的庫 │ └── backup/ # 歷史版本備份 ├── conf/ # 配置文件 ├── logs/ # 日志 └── scripts/ # 更新腳本權(quán)限方面MMDB文件建議設(shè)為640屬主是服務(wù)運行用戶屬組是運維組。這樣既能保證服務(wù)讀取又不會讓其他用戶隨便看到數(shù)據(jù)。服務(wù)進(jìn)程用獨立的低權(quán)限用戶跑別用root# 創(chuàng)建專用用戶 useradd -r -s /sbin/nologin ipdb # 設(shè)置目錄權(quán)限 chown -R ipdb:ipdb /opt/ipdb chmod 750 /opt/ipdb chmod 640 /opt/ipdb/data/current/*.mmdb提示如果你的服務(wù)器上有多個業(yè)務(wù)方需要查詢不要給他們直接讀MMDB的權(quán)限而是通過HTTP服務(wù)統(tǒng)一出口。這樣既能控制訪問又方便做審計。4. 查詢服務(wù)的實現(xiàn)與部署4.1 用Go寫一個高性能查詢服務(wù)Go語言是我做這類服務(wù)的首選編譯出來是靜態(tài)二進(jìn)制部署的時候拷貝一個文件就行沒有依賴問題。下面是一個完整的HTTP查詢服務(wù)示例核心邏輯就是加載MMDB然后對外提供/lookup接口。package main import ( encoding/json flag log net net/http github.com/oschwald/maxminddb-golang ) var db *maxminddb.Reader type Record struct { Country struct { ISOCode string maxminddb:iso_code } maxminddb:country City struct { Names map[string]string maxminddb:names } maxminddb:city } func lookupHandler(w http.ResponseWriter, r *http.Request) { ipStr : r.URL.Query().Get(ip) if ipStr { http.Error(w, missing ip, http.StatusBadRequest) return } ip : net.ParseIP(ipStr) if ip nil { http.Error(w, invalid ip, http.StatusBadRequest) return } var rec Record err : db.Lookup(ip, rec) if err ! nil { http.Error(w, lookup failed, http.StatusInternalServerError) return } w.Header().Set(Content-Type, application/json) json.NewEncoder(w).Encode(rec) } func main() { dbPath : flag.String(db, /opt/ipdb/data/current/GeoLite2-City.mmdb, path to mmdb) addr : flag.String(addr, 127.0.0.1:8080, listen address) flag.Parse() var err error db, err maxminddb.Open(*dbPath) if err ! nil { log.Fatalf(open db failed: %v, err) } defer db.Close() http.HandleFunc(/lookup, lookupHandler) log.Printf(listening on %s, *addr) log.Fatal(http.ListenAndServe(*addr, nil)) }編譯命令很簡單go mod init ipdb-service go get github.com/oschwald/maxminddb-golang go build -o /opt/ipdb/bin/ipdb-service main.go這個服務(wù)監(jiān)聽在127.0.0.1:8080只允許本機(jī)訪問。業(yè)務(wù)方通過http://127.0.0.1:8080/lookup?ip8.8.8.8就能拿到歸屬地。實測下來單次查詢在20微秒左右QPS輕松過萬。4.2 用systemd托管服務(wù)手動跑進(jìn)程不是長久之計用systemd托管才能做到開機(jī)自啟、崩潰重啟、日志歸集。寫一個unit文件[Unit] DescriptionIP Lookup Service Afternetwork.target [Service] Typesimple Useripdb Groupipdb ExecStart/opt/ipdb/bin/ipdb-service -db /opt/ipdb/data/current/GeoLite2-City.mmdb -addr 127.0.0.1:8080 Restartalways RestartSec3 LimitNOFILE65535 # 安全加固 NoNewPrivilegestrue PrivateTmptrue ProtectSystemstrict ReadOnlyPaths/opt/ipdb/data [Install] WantedBymulti-user.target保存到/etc/systemd/system/ipdb.service然后systemctl daemon-reload systemctl enable ipdb systemctl start ipdb systemctl status ipdbRestartalways保證進(jìn)程掛了自動拉起來ProtectSystemstrict把文件系統(tǒng)設(shè)為只讀只有/opt/ipdb/data可讀這樣即使服務(wù)被攻破攻擊者也改不了系統(tǒng)文件。4.3 庫更新的熱加載方案IP庫不是一成不變的每個月都有新的網(wǎng)段分配和變更。更新的時候不能停服務(wù)得做熱加載。思路是新庫下載到臨時目錄校驗通過后原子替換current目錄下的文件然后給服務(wù)發(fā)個信號讓它重新打開文件。Go服務(wù)這邊加一個信號處理import ( os os/signal syscall ) func main() { // ... 前面的代碼 sigCh : make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGHUP) go func() { for range sigCh { newDB, err : maxminddb.Open(*dbPath) if err ! nil { log.Printf(reload failed: %v, err) continue } oldDB : db db newDB oldDB.Close() log.Println(db reloaded) } }() // ... 啟動HTTP服務(wù) }更新腳本大概長這樣#!/bin/bash set -e NEW_DB/tmp/GeoLite2-City.mmdb CURRENT/opt/ipdb/data/current/GeoLite2-City.mmdb BACKUP/opt/ipdb/data/backup/GeoLite2-City-$(date %Y%m%d).mmdb # 下載新庫這里用wget示意實際按你的源來 wget -O $NEW_DB https://example.com/GeoLite2-City.mmdb # 校驗 mmdblookup --file $NEW_DB --ip 8.8.8.8 /dev/null # 備份舊庫 cp $CURRENT $BACKUP # 原子替換 mv $NEW_DB $CURRENT chown ipdb:ipdb $CURRENT chmod 640 $CURRENT # 通知服務(wù)重載 systemctl reload ipdb注意mv在同一文件系統(tǒng)內(nèi)是原子操作所以/tmp和/opt如果在不同分區(qū)要先cp再mv否則替換過程中可能出現(xiàn)文件不完整的情況。5. 性能壓測與調(diào)優(yōu)實錄5.1 壓測工具與基準(zhǔn)數(shù)據(jù)服務(wù)跑起來之后得知道它能扛多少。壓測工具我用wrk比ab更輕量支持多線程。先裝一下apt-get install wrk然后寫個壓測腳本隨機(jī)生成IP去查# 生成測試IP列表 for i in $(seq 1 10000); do echo 8.8.$((RANDOM % 256)).$((RANDOM % 256)) done /tmp/ips.txt # 用wrk壓測需要配合lua腳本讀取IP wrk -t4 -c100 -d30s --latency -s lookup.lua http://127.0.0.1:8080lookup.lua的內(nèi)容local ips {} for line in io.lines(/tmp/ips.txt) do table.insert(ips, line) end request function() local ip ips[math.random(#ips)] return wrk.format(GET, /lookup?ip .. ip) end我實測的數(shù)據(jù)2核4G的機(jī)器100并發(fā)下QPS穩(wěn)定在35000左右P99延遲不到1毫秒。這個性能對絕大多數(shù)業(yè)務(wù)來說都綽綽有余了。5.2 瓶頸定位與優(yōu)化手段如果壓測數(shù)據(jù)不理想先別急著加機(jī)器按下面的順序排查。第一看CPU。用top -H看是不是某個核跑滿了。如果是說明查詢邏輯本身有優(yōu)化空間。MMDB查詢是純內(nèi)存操作理論上不應(yīng)該成為瓶頸。檢查一下是不是每次查詢都重新解析了IP字符串這個可以提前緩存。第二看內(nèi)存。用free -h看MMDB有沒有被換出。如果swap使用量在漲說明vm.swappiness沒調(diào)好或者內(nèi)存真的不夠。MMDB文件多大常駐內(nèi)存就至少多大。第三看網(wǎng)絡(luò)。雖然走的是回環(huán)但HTTP協(xié)議本身有開銷。如果QPS上不去可以試試換成Unix Domain Socket能省掉TCP握手和HTTP頭解析大概能提升20%到30%的吞吐。第四看文件描述符。ss -s看連接數(shù)如果接近ulimit -n就得往上調(diào)。提示壓測的時候別用127.0.0.1以外的地址否則測出來的是網(wǎng)卡性能不是服務(wù)性能。另外壓測機(jī)和被測服務(wù)別放同一臺機(jī)器會互相搶CPU。5.3 高可用與橫向擴(kuò)展單機(jī)服務(wù)總有掛的時候生產(chǎn)環(huán)境得考慮高可用。最簡單的方案是雙機(jī)熱備兩臺機(jī)器都跑查詢服務(wù)前面掛一個本地的負(fù)載均衡比如nginx或者h(yuǎn)aproxy。業(yè)務(wù)方調(diào)127.0.0.1:80由負(fù)載均衡轉(zhuǎn)發(fā)到兩個后端。upstream ipdb { server 127.0.0.1:8080; server 127.0.0.1:8081; keepalive 64; } server { listen 127.0.0.1:80; location /lookup { proxy_pass http://ipdb; proxy_http_version 1.1; proxy_set_header Connection ; } }如果查詢量特別大單機(jī)扛不住那就得分片。按IP的第一段做哈希比如1.x.x.x走機(jī)器A2.x.x.x走機(jī)器B業(yè)務(wù)方根據(jù)IP自己路由。這種方式?jīng)]有中心節(jié)點擴(kuò)展性最好但業(yè)務(wù)方要改代碼。還有一種偷懶的做法是多進(jìn)程。Go服務(wù)本身是單進(jìn)程的但你可以起多個實例監(jiān)聽不同端口然后用SO_REUSEPORT讓內(nèi)核做負(fù)載均衡。Linux 3.9以上支持這個特性配置起來也簡單import golang.org/x/sys/unix lc : net.ListenConfig{ Control: func(network, address string, c syscall.RawConn) error { return c.Control(func(fd uintptr) { unix.SetsockoptInt(int(fd), unix.SOL_SOCKET, unix.SO_REUSEPORT, 1) }) }, } ln, _ : lc.Listen(context.Background(), tcp, 127.0.0.1:8080)這樣起4個進(jìn)程監(jiān)聽同一個端口內(nèi)核會自動把連接分給不同的進(jìn)程充分利用多核。6. 常見問題與排查技巧6.1 查詢結(jié)果不準(zhǔn)怎么辦這是被問得最多的問題。IP歸屬地查詢本身就不是100%準(zhǔn)確的原因有幾個一是IP庫更新有延遲新分配的網(wǎng)段可能還沒收錄二是運營商動態(tài)分配IP同一個IP在不同時間可能屬于不同地區(qū)三是企業(yè)專線和云服務(wù)商的IP注冊地和實際使用地經(jīng)常對不上。排查思路是這樣的先確認(rèn)你用的庫是不是最新的mmdblookup查一下這個IP在庫里有沒有記錄。如果沒有記錄那就是庫沒覆蓋到等更新或者換更全的庫。如果有記錄但結(jié)果不對那就是數(shù)據(jù)源本身的問題換商業(yè)庫可能能解決但也不保證100%。提示對于風(fēng)控場景別把IP歸屬地當(dāng)成唯一判斷依據(jù)。它只是一個弱信號要結(jié)合設(shè)備指紋、行為特征一起看。我見過太多因為IP庫不準(zhǔn)導(dǎo)致誤殺的案例了。6.2 服務(wù)啟動報錯排查表報錯信息可能原因解決方法open db failed: no such file路徑寫錯或文件不存在檢查-db參數(shù)確認(rèn)文件在/opt/ipdb/data/current/下permission denied服務(wù)用戶沒有讀權(quán)限chown ipdb:ipdb并chmod 640address already in use端口被占用ss -tlnptoo many open files文件描述符不夠調(diào)大LimitNOFILE重啟服務(wù)lookup failed: invalid databaseMMDB文件損壞重新下載用mmdblookup校驗6.3 內(nèi)存占用異常增長正常情況下MMDB加載后內(nèi)存占用是穩(wěn)定的不會持續(xù)增長。如果發(fā)現(xiàn)內(nèi)存一直漲大概率是內(nèi)存泄漏。Go服務(wù)雖然自帶GC但如果代碼里不斷創(chuàng)建大對象又不釋放也會出問題。排查方法是用pprofimport _ net/http/pprof // 在main里加 go func() { log.Println(http.ListenAndServe(127.0.0.1:6060, nil)) }()然后go tool pprof http://127.0.0.1:6060/debug/pprof/heap進(jìn)去之后用top命令看哪個函數(shù)占內(nèi)存最多。我遇到過一種情況是每次查詢都json.Marshal一個大的結(jié)構(gòu)體導(dǎo)致大量臨時對象。解決辦法是復(fù)用bytes.Buffer或者直接用json.Encoder寫到ResponseWriter。6.4 更新庫之后服務(wù)沒生效這個坑我踩過。更新腳本里mv替換了文件systemctl reload也發(fā)了信號但查詢結(jié)果還是舊的。原因有兩個一是systemd的reload默認(rèn)發(fā)的是SIGTERM不是SIGHUP需要在unit文件里指定[Service] ExecReload/bin/kill -HUP $MAINPID二是Go服務(wù)里db變量是全局的信號處理協(xié)程里改了db但HTTP處理函數(shù)讀的可能是舊的引用。解決辦法是用atomic.Value包一層var db atomic.Value // 加載 db.Store(newDB) // 查詢 reader : db.Load().(*maxminddb.Reader) reader.Lookup(ip, rec)這樣就能保證讀寫安全更新立即生效。6.5 日志太多把磁盤寫滿查詢服務(wù)如果每個請求都打日志一天下來幾個GB就沒了。生產(chǎn)環(huán)境建議只記錄錯誤日志正常查詢不打。如果確實需要審計可以采樣記錄比如每1000次記一條。用logrotate做日志切割/opt/ipdb/logs/*.log { daily rotate 7 compress missingok notifempty copytruncate }copytruncate很重要因為Go服務(wù)可能一直持有文件句柄直接mv會導(dǎo)致日志寫到舊文件里。7. 幾個容易被忽略的細(xì)節(jié)7.1 IPv6的支持現(xiàn)在IPv6越來越普及查詢服務(wù)必須支持。MMDB格式本身是支持IPv6的maxminddb-golang也能直接查。但要注意IPv6的查詢樹深度是128比IPv4的32深單次查詢會稍微慢一點不過還是在微秒級。如果你的業(yè)務(wù)暫時只處理IPv4可以在入口處把IPv6地址轉(zhuǎn)成IPv4映射地址但這不是長久之計。建議直接支持反正代碼上沒什么額外成本。7.2 內(nèi)網(wǎng)IP的處理MMDB庫里通常不包含內(nèi)網(wǎng)網(wǎng)段10.0.0.0/8、172.16.0.0/12、192.168.0.0/16查詢這些IP會返回空。業(yè)務(wù)方拿到空結(jié)果可能會報錯。解決辦法是在查詢服務(wù)里加一層判斷遇到內(nèi)網(wǎng)IP直接返回一個固定的標(biāo)記if ip.IsPrivate() { json.NewEncoder(w).Encode(map[string]string{type: private}) return }這樣業(yè)務(wù)方就能區(qū)分“查不到”和“內(nèi)網(wǎng)IP”兩種情況。7.3 時區(qū)與編碼問題城市名稱在MMDB里是多語言的names字段是個map鍵是語言代碼。默認(rèn)可能返回英文如果你需要中文得在查詢的時候指定type Record struct { City struct { Names map[string]string maxminddb:names } maxminddb:city } // 取中文 cityName : rec.City.Names[zh-CN] if cityName { cityName rec.City.Names[en] }注意不是所有城市都有中文翻譯取不到的時候要有個兜底。7.4 監(jiān)控指標(biāo)怎么埋生產(chǎn)服務(wù)沒有監(jiān)控就是裸奔。至少埋這幾個指標(biāo)QPS、P99延遲、錯誤率、MMDB加載時間。用Prometheus的話加一個/metrics接口import github.com/prometheus/client_golang/prometheus/promhttp http.Handle(/metrics, promhttp.Handler())然后在查詢函數(shù)里打點var ( queryCount prometheus.NewCounter(prometheus.CounterOpts{ Name: ipdb_query_total, Help: Total queries, }) queryDuration prometheus.NewHistogram(prometheus.HistogramOpts{ Name: ipdb_query_duration_seconds, Buckets: []float64{0.0001, 0.0005, 0.001, 0.005, 0.01}, }) ) func init() { prometheus.MustRegister(queryCount, queryDuration) }這樣在Grafana上就能看到實時的查詢量和延遲分布出問題的時候一眼就能定位。7.5 庫更新的自動化手動更新庫容易忘建議做成定時任務(wù)。用cron每天凌晨跑一次更新腳本# 編輯 crontab crontab -e # 每天凌晨3點更新 0 3 * * * /opt/ipdb/scripts/update.sh /opt/ipdb/logs/update.log 21更新腳本里加上失敗重試和告警。如果連續(xù)三天更新失敗發(fā)個郵件或者釘釘通知。別等到庫過期半年了才發(fā)現(xiàn)。8. 寫在最后的一些個人體會這套方案我在三個項目里落地過最大的感受是私有化部署的門檻比想象中低但維護(hù)的細(xì)節(jié)比想象中多。裝個服務(wù)、跑個查詢半天就能搞定但要讓它穩(wěn)定跑一年不出問題得在監(jiān)控、更新、容災(zāi)上花不少心思。如果讓我給剛上手的朋友一個建議那就是先把單機(jī)跑通再考慮高可用。很多人一上來就搞集群、搞分片結(jié)果基礎(chǔ)服務(wù)都沒調(diào)穩(wěn)出了問題排查半天。先用一臺機(jī)器把查詢服務(wù)跑起來壓測看看性能確認(rèn)能滿足業(yè)務(wù)需求然后再逐步加監(jiān)控、加備份、加負(fù)載均衡。還有一個心得是別過度設(shè)計。IP查詢本身是個很簡單的需求MMDB加一個HTTP服務(wù)就夠了。我見過有人用Elasticsearch存IP段做范圍查詢性能差不說維護(hù)成本還高。工具選型要匹配需求殺雞別用牛刀。最后說個實際的數(shù)據(jù)我這套方案在2核4G的機(jī)器上支撐了日均800萬次查詢P99延遲0.8毫秒運行半年零故障。成本是一年幾百塊的服務(wù)器費用相比商業(yè)API省了90%以上。如果你也在為IP查詢的成本和合規(guī)發(fā)愁不妨試試這條路。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
在线黄色污污网站| 日韩美女啪啪一区| 亚洲蜜桃V妇女| 亚洲天堂少妇| 亚洲自拍另类丝袜综合| 天天爽天天操| 熟女精品va中文字幕| 天天日天天干天天摸天天操| 国精品一区二区三| 婷婷丁香五月激情啪啪| 日韩一级特黄av毛片| 97欧美日韩综合| 91色图片| 日本不卡三级网在线播放| 啪一啪免费视频| 色五月激情AV在线| 骚熟女吞| 狠插 制服 自拍| 五月天啪啪| 日日爱99| 丰满熟妇大乳做爰| 伊人九九| 91色欧美| 久肏视频字幕| 劲爆欧美人妖三区91| 四虎 精品 WWW| 色婷婷激情| 欧美不卡五十路| 午夜AV污污污| 久久久久久裸体| av一区二区三区 中文| 中文字幕丰满人妻日本| 国内伊人久久久久久网站视频| 蜜乳av一区二区三区四区不卡| 中文字幕丝袜人妻| 深爱五月天| 激情啪啪拍91| 午夜无码精品免费看性色| 青娱乐淫乱1314| 黑人娇小av在线播放| 插插综合网天天影视网| 精品久久97| 亚洲美腿丝袜香蕉影视欧美成人| 午夜久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产精品久久久无码AV网站| 天天日天天搞天天干| 蜜臀无码视频在线观看| 欧美一级AAAAAAA| 中文字幕精品探花视频| 国产成人超碰在线| 韩国免费播放一级毛片| 91一区二区三区蜜桃| 狠狠操夜夜| 亚洲熟女乱色| 精品亚洲| 东北女人操比视频| 99在线精品观看99| 人妻精品视频一区二区三区| 日本福利社| 三级日本一区二区三区| 97chaopenrihan| 婷婷丁香六月| 天天色,天天干,天天干| 蜜桃天美传媒AV一区二区三区| 992这里有精品| 日韩av电影成人在线| 超碰97导航| 欧州色图区| 97干97色| 久久久久久免费电影| 中文字幕av色| 亚洲啪啪性视频| 亚洲欧美不卡线| 精品久久艹| 亚洲不卡AV在线| 97精品免费视频网站| 亚洲少妇激情视频| 亚洲91av| 黄色在线网站| 一区二区三区在线美女| 99热婷婷一区二区三| 天天综合香 ld视频| 国产小u女在线观看| 97超碰精品| 色色97爱| 国产精品无码在线| 欧美天天| 亚洲精品97p| 久九九九九九九热| 欧美亚洲丝袜人妻制服99| 人人 操人人 操人人| 久久国产乱子伦精品免费女,网站| 丰满搜索结果 -第18页- 久久高清无码| 日亚韩精品视频二区三| 国产中文大片资源中文字幕| 欧美日韩国产一区二区小黄片大全| 综合97久久| 女同性恋一区二区三区精品视频| 理论久久婷婷网 8| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 动漫区日韩区欧美区| 激情五月天中文字幕色| 日本二三四区| 天天欧美97| 亚洲欧美日韩国产丝袜自拍中文| 精品十三区| 婷婷日韩一区二区三区中文字幕在线| 欧美aaaaaaa| 日韩精品资源专区二区| 日本一级特级毛片视频| 男人在线天堂| 国产综合久| 怡红院网站在线视频| 亚洲Av噜噜一区二区三区妖精| 精品.99999| 男人的天堂不卡一区二区| 操逼逼福利视频| 国产精品一二三在线看| 日本人人操人人操| 五十路三级片| 麻花传媒免费网站在线观看| 亚洲欧美国产中文视频| 欧美大片91| 四虎精品一区二区| 久久狠狠色噜噜狠狠狠狠97 | 国内91熟女人妻丝袜天天精品视频在线| 丁香五月天激情网站| 图片区小说区| 国产精品老师| 大香蕉中文201| 欧美人妻制服| 国产精品黑人一区二区三区| 精品久久久久久AV无码| 黄色免费网| 亚洲丝袜诱惑| 久久久精| 91/欧美| 欧美天堂超碰97| 欧美色图亚洲特色| 97色欧州| 狠狠操狠狠燥| 97超碰超碰| 尤物视频一区| 精品免费一区二区三区在线亚洲人成| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 国产精品久久久久久久久AV大片| av资源在线播放天堂| 九九黄色网| 亚洲AV高潮| 日韩无码AB| 日本 情色 1区2区3区| 91n欧美| 思思热国产高清| 黄色片一区二区三区四区五区| 二男一女成人A片| 亚洲欧美日韩夜夜| 色五月69夫妻| 黑人性欧美| 国产偷拍网站| www.狠狠操| 婷婷色香| 麻豆成人影音在线| 国产一区二区视频在线播放| 欧美操逼视频二区| 久操av在线| 超碰在线日韩一区| 99re公开精品免费视频 | 国产熟女乱论| juliaann精品熟女一区| 一卡二卡在线播放| 看大黄色大片原件| 欧美综合第一| 深夜啪啪啪视频免费| 欧美中文字幕男人天堂久久精品 | 国产婷婷一区| 91n美女视频| 人人摸人人舔一区二区| 精品久久无码午夜福利| 国产少妇与亚洲av| 亚洲天天影视综合网| 精品久久97观看在线视频| 久久久精品电影| 五月天久久综合网| 亚洲激情在线| 亚洲人码13| 日欧操屄| 开心激情婷婷| 99久久9| 国产日韩美女小穴视频网站不卡| 亚洲一卡2卡3卡4卡乱码网站| 后入 亚洲 美女 射| 91色欧美| 国产女人操逼视频| 亚洲资源网| 国产精品午夜福利亚洲综合网| 五月天婷婷久久| 99抽插| 特色a在线上| 日韩亚洲精品一区二区| 美女露胸露奶头| 少妇贴图| 秋霞视频一区二区| 亚洲熟妇综合久久久久久| 97视频免费播放| 日日碰狠狠添天天爽超| 男人成人黄色视频在线观看免费下载| 欧美日韩色综合网| 宅男91视频在线播放| 干B网| 九九色色| 91熟女视频| 男人的天堂啪啪| 久久99久久99精品天美传媒棢·纸:. | 色婷婷电影网| 91观看 国产白丝| 婷婷视频网| 羞答答AV中文字| 亚洲午夜福利在线影院| 青操影院| 日韩啪啪网| 老熟女阿 国产91| 浪人综合网| 老司机福利社视频在线观看| 日韩在线观看中文字幕视频| 999热日韩精品| 大香蕉乱伦视频网| 色老大| 依人大香蕉| 精产品久久| 欧美婷婷| 久久伊人亚洲AV无码网站| 成人日韩3| 久久侵犯人妻爽爽爽| 国产美女高潮视频| 九九热五区| 日语五十路和六十路亚洲国产精品| 亚洲AV无码乱码在线观看性色| 中文字幕超碰CAO| 欧美一区二区三区另类精品| 亚洲欧洲无码97久久精品| 日韩欧美亚欧在线视频| n1038 一二三区| 国产女人和拘做爰视频| 亚洲欧洲无码一区夜| 免费黄色A片| 97这里有精品| 亚州,欧美在线| 丝袜狠狠草尤物人妻av91| 欧美日本一区二区a人| 青青色综合| h4610国产人妻| 热G综合热G中文| 2011国产精品| 四虎AV在线播放| 天天干2019| 涩涩涩综合| 久久精品视| 麻豆60秒| 久久国产乱子伦精品免费女人| 久久亚州大香蕉| 尹人大香蕉视频在线| 99e久久国产精品| 亚洲人妻久久久| 怡红院怡春院| 99热99色| 国产精品一区二区亚洲人成毛片| 一卡二卡三卡| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产九九九九九九九九| 97天堂| 97在线欧| 蜜臀AV成人精品蜜臀| 91久久久久久| 中日韩久久久| 一级AV性爱| 欧洲亚洲人妻无码久久三区四区| 亚欧美天堂在线| 婷婷久久五月| 日韩av影片在线观看| 日韩在线国产字幕| 乱伦熟女区| 国产无码精品成人| 97在线免费视频观看| 狠狠狠狠狠| 日va操| 蜜臀视频网站| 美女久久久久久久久久久| 亚洲AO在线| 九九在线视频| 精品少妇人妻av久久免费| 欧美亚洲综合高清在线| 国产97综合| 色噜噜人妻丝袜AV资源| 欧美亚洲性爱一区二区| 人妻熟女午夜精品在线| 国产一区二区欧美日本| 亚洲av无线观看| 久久激情婷婷| 久久免费9| 亚洲欧美一区二区三区在钱蜜桃| 超碰99在线观看| 国语av最新自产拍在线观看| 先锋色眉乱伦资源| 高清国产性猛交xxxx乱大交| 日本无码1| 久久久久久一日韩字幕无码| 综合久久97| 91骚熟女| 9久9久9久9久视频网站| 国产AV天美传媒一区二区三区 | 亚洲人妻五月丁香婷婷| 天天天肏屄肏屄肏屄欧美欧美| 国产精品69久久久久久久| 九99久久| 91精品久久久久久| 亚洲丝袜99| 精品欧美日韩在线观看| 伦理日韩国产久久| 校园春色家庭伦理欧美激情| 欧亚韩国999| 欧美线天码中字| 国产三级中文字幕粉嫩| 久久久久久人体| 91人人| 人妻天天爽天天爽三区| 久久人| 嗯嗯不要 视频| 99热线麻豆 | 91GD.COM| 成人AV在线电影| 欧美亚洲综合色| 青娱乐 成人娱乐在线| 欧美午夜色妇色鬼| 91九九九吃| 综合网97| 男人天堂新在线| 18禁久久| 97在线看| 国产肏逼网站| av天堂手机版追回 | 国产精品一区二区麻豆| 久久国产AⅤ| 东北少妇高潮zzzz| 一本一道波多野毛片中文在线| 亚洲精品成人激情在线| 精品久久在线区一区| 激情综合av| 亚洲色图a| 伊人96在线| 国内伊人久久久久久网站视频| 人妻性爱一区二区| 九九Av| 欧美色图天堂网m| 国产剧情一区在线观看| 国产欧美成人精品| 久九色| 亚洲第一黄色av网站| 97人人超| 中文字幕综合人妻| 欧美黑人熟妇精品91| 国产精品麻豆免费视频| 亚洲色图激情小说| 欧洲站一级二级三级h| 亚洲色图 91| 欧美高清18A片| 欧美日韩99| 好好的日:com久久九九| 9Ⅰ超碰| 色色香蕉| 欧美一二在线| 欧美精品黑人猛交高潮| 乱色视频中文字幕| 国产精品69久久久久孕妇欧美| 欧美性天天| 亚洲AV无线| 少妇滛荡视频| 久久久一二三四区| 桃花色综合影院| 五月天激情婷婷| 久久精品中文字幕女同| 日韩性爱免费观看视频| 日本一二区免费| 亚洲欧美综合图片| 国产97视频免费观看| 黄色二级片网站| 欧美激情视频一区二区| 99综合网| 色五月av| 天天插天天射| 美女天天干| 婷婷去俺也去六月色| 国产久久一区二区三区野外在线| 97亚洲欧美| www.色婷婷| 精品二区三四区五电影 | 91亚洲色图| www.夜夜| 97亚洲精品超碰| 亚洲 一区二区 自拍| 在线黄色污污网站| 久久中文字幕一区不卡| 亚洲棕合电彰| 日本三级一区二区 在线| 干B视频伊人网| 国产综合色精品在线观看| 精品国产乱码久久久久久久久1| 亚洲性综合11| 美女自卫慰黄网站免费| 丰满人妻-区二区三区| 天天爽天天| 天啪| 鲁鲁色综合网| 亚洲熟女诱惑| 色九月综合| av天堂精品久久| 屁股久久久久久久久| 国产又粗又长又爽又色| 麻豆一区二区AV天美| 久久草在线综合视频| 色原狠狠天天天| 99热66| 欧美99999| 久操高青| 欧美日产国产在线成人第一区| 久久综合女优| 爱av免费| 亚洲中文字幕在线视频一区二区| 99热只有这里有精品| 久9爱精品| 艹我哪美一区无码| 人妻一二三区| 欧美精品欧美精品系列| 夂久色| 国产精品久久天天干| 极品久久久久久久久久久久久久| 九九热九九| 东京热一区二区中文字幕| 97精品视频免费| 欧美午夜一区二区三区| 一区在线精品中文字幕| 国产熟女自拍| 亚洲国产综合久久天堂| 欧亚成人| 日本一区不卡| 伊人少妇久久久| av最新免费中文字幕| 人妻少妇无码| 超碰97玖玖爱| 长长久久曰曰夜夜成人网| 秋霞一集毛片观看| 亚洲系列欧美| 国产精品网站www| www.91逼逼.com| 欧美色图20P| 激情色色| 精品久久久久久无码| 色诱avtt| 欧美黄色大香蕉一区二区| 欧美亚洲系列| 天天综合网国产| 欧美日韩亚洲少妇寂寞影院正在播放| 午夜精品一区二区三区三上悠亚| 东京热天堂网| 97在线视频观看| 亚洲色图欧美色图综合| 深夜操逼网| 午夜一区二区三区国产| 97日韩欧美亚洲| 欧美A√综合网 | 亚洲第一视频 欧美风情 日韩| 欧美熟妇乱码在线一区| 日本在线视频导航| 91精品久久久| 精品高清av中文字幕| 精品久9| 色噜噜狠狠色综无码久久| 刺激性视频黄页| 另类图片五月天| 免费A V在线播放| 一级片视频啪啪| 好吊色综合| 9999久久久久| 性爱欧美五月| 99黄页网站| 狠插 制服 自拍| www.狠狠操| 大香樵伊人网| 99热这里是精品| 国产福利第一视频| 五月婷婷综合在线| 亚洲天堂综合AV| 91色久| 日本国产高清色www视频在线| 91亚洲人| 日韩亚洲国产视频| 91一区二区| 九九热精品视频在线观看| 丁香五月天视频| 国产在线视视频有精品| 五月天婷婷成人网| 麻豆天美传媒在线视频天堂| 亚洲精品一二三四区| 欧美第二页午夜| 亚州综| 亚洲日韩视频二区| 强奸乱伦av电影| 国产精品久久久视频| 最新亚洲风情电影| 死我十八禁| 超碰97中文| 九九九久久久| 天堂蜜桃无码视频一区二区| 嗯~啊~快点 死我视频| 欧美亚洲高清晰| 免费黄色片。| 你操综合| 老熟乱一区二区三区四区| 污色区网站| 韩国久久97| 色九九九九九九| 草草影院最新网址| www.狠狠干.coom | 北京美女一区二区| 亚洲 欧美综合| 日韩一级特黄av毛片| 免费自拍三级综合| 秋霞曰韩R级| 亚洲综合在线视频| 国产日韩怡红院| 天天干天天燥| 人人澡人人弄| 日韩激情小说一区二区| 日韩人妻操B| 久久久一区二区三区麻豆| 日韩福利电影网| 蜜桃久久综合视频| 国产强奸乱伦无码视频| 2020视频1区2区3区| 亚洲综合九九| 99亚洲天堂| 亚洲图片欧美另类综合免费视频大大香| 久草婷婷| 免費黃色視頻觀看一| 精品无码久久久久久久杏吧| 9 9精品一区二区三区| 久热热| 夫妻AV网站| 探花一区在线| 天天综合网网欲色| 性色中出| 亚洲一卡2卡3卡4卡乱码网站| 97操在线| 国精品一区二区三| 欧亚性爱在线视频| 国桃视频产巨乳精品一区二区在线| 亚洲色图尤物视频 | 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 欧美亚洲激情| 久久性生大片免费观看性| 欧美日韩人妻婷婷一区| 青青网三级视频| 人人操,操人人| 在线日韩精品一区二区三区| 92久久| 青操影院| 亚洲一区二区 麻豆传媒| 激情五月婷婷综合| 97五月天| 小少妇| 人人干人人操人人..com| 97超碰精品| 97国产精选| 国产免费久久精品99re韩国| 九九热男人天堂| 中文字幕黑人大片| Blackedraw视频一区二区| 囯戸精品高潮呻吟旡码| 中文字幕人成乱码熟女香港| 五码视频在线观看| 一本大道不卡一二三区| 久久成人国产| 人人操,操人人| 91小视频| 欧美日韩夜夜| 青青青草伊人精品| 精品在线78| 日韩成人综合网| 九九aV| 男人的天堂啪啪| 婷婷色综合| 99热精品青草在线| 亚洲精品九九九九九九| 91麻豆天美国产欧美高潮| 99999国产| 亚洲天堂久久久久久粉红视频| 久久精品国产亚洲妲己影视| 色婷婷激一区二区三区 | 好爽视频在线观看视频| 亚洲啪啪视频一区二区| 激情五月激情综合网| 另类av综合久久| 免费试看60秒| 欧美在线播放aaaa| 久久一本大香蕉| 97超碰久久| A V少妇特黄三级| 公司1区2区3区精产精| 亚洲av无码成电影在线播放| 操逼片国产| 99热aaa| 欧美一级黄色免费专区| 久久午夜伦| 91中文字幕在线观看| 91成人久久 | 久操频道免费在线呗看| 欧美午夜一区二区三区| 韩日精品福利视频一区不卡在线免| 91情色| 久久婷婷在线观看视频| 懂色aV一区二区天美传媒| 久久五月份| 亚洲国产精品无石码久久| 一区二区三区 丝袜 高跟 美腿| 欧美丝袜中文字幕07在线| 国语av最新自产拍在线观看| 中文字幕狠狠玩| 欧美视频一区二区三区| AA丁香综合激情| 天天操天天干美女网址导航| 视频二区美腿丝袜制服人妻欧美| 亚洲欧美不卡线| 婷婷国产精品九区| 五月婷婷丁香六月丁香| 一区二区三区一亚洲中文字幕、综合区灬| 精品黑人一区二区| 91宗合网| 亚洲激情色片| 免费一级精品啪啪视频| 天天摸天天舔天天操| 人人干黄色| 无码久| 日韩乱中文| 色偷偷2020免费视频播放| 熟女精品va中文字幕| 欧美在线|亚洲| 免费作爱一级视频| 天天欧美| 欧美啪啪女女| 涩涩涩综合| 亚洲色图 图片| 久久综合激情| 午夜福利无毒不卡| 欧美激情在线观看视频| 激情小说图片亚洲首页| 碰超人人在线一区二区三区| 艳美熟妇先锋一二三区| 国产中文字幕曰本毛片| 亚洲激情片| 屁股久久久久久久久| 超碰国产在线| www.久久最新地址| 欧美日韩在线小说 | 伊人五月天激情| 女欧美一区二三区| V A在线| 久久一二三四| 亚洲无码成人精品| 国产亚洲99久久精品熟| 天天综合网网欲色| 一级片视频啪啪| 亚洲加勒比久久日本道| 男女国产精品| 超碰在97| 99热精品在线观看| 九99久久| 五月天亚洲网| 人妻少妇久久| 国产精品午夜精品| 伊人精品久久网站| 中文字幕一区电影在线观看| 韩国手机不卡无码三级视频| 91东北熟女| 国产在线综合福利网站| 色黄色美女大长腿午夜视频| 91P0RNY大屁股人妻| 蜜乳成人AV| 日韩欧美中文| 91是天天| 人妻酒店出差被中出免费在线播放| 天天日天天屌天天操| 加勒比AV天堂| 夜夜嗨一区| 亚洲熟女人妻中文字幕一区二区| yw尤物av无码点击进入麻豆| 欧洲综合无码| 91超碰人人操| 941超碰| 超碰97COm中文| 一中国女人毛片水真多| 柠檬AV导航| 国产精品乱码久久久久久久久久久久| 吉川爱美亚洲二区在线| 五十路三区在线| 亚洲Av无码成人精品国产| 日本不卡高清免v欧美日韩在线观看| 亚洲啪啪视频一区二区| 国产二区三区粉嫩在线| 亚洲高清视频在线免费观看| 中国国国产一级特黄毛片| 狠狠图片青青草| JuliaAnn丝袜熟女系列| 亚洲色诱惑| 强奸熟女一区二区三区| 日韩欧美大片免费高清啪啪| 美国美女AV在线| 青青草字幕AV| 成人 日本A片无码8888| 欧美毛片在线网| 78久久| 黄片免费久久久久久久| 96AV久久久| 日本人妻伦在线中文字幕| 日本三级日本三级99| 影音资源男人日韩| 99久在线精品99re8| 成人一级二级| 免费av大片| 亚洲精品乱码久久久久久蜜桃麻豆| 国产无码精品无码| 国产在线不卡导航| 国产亚洲美日韩Aⅴ中文字幕无码成人| 欧美日韩情色一区二区| 男人天堂站| 日本精品五区| 亚州综合电影| 99热最新网址| 天美传媒婬乱| 超碰69| 99热这里只有精品地址| 人妻一区二区三区四区视频| 91无码人妻| 97天天综合网| 亚洲有码视频二区| 国产亚洲精品玖玖玖在线观看| 91精品丝袜久久久久久| 五月天欧美色图| 国产AAAAAABBBBB| 国产热av| 九九玖玖精品| 婷婷五月综合在线| 欧美日韩国产色图在线| 秋霞网无码| 伊人aaa| 久久久精品国产亚洲伊人| 澳门黄片一香蕉视频| 国产精品农村妇女精品| 狠狠夜色午夜久久综合在线| 亚洲另类在线观看| 岛国视频一二三区| 亚洲无码 国产无码| 人妻少妇久久| 99热日| WWW美腿丝袜香蕉中文| 日韩三级网址| 亚洲 欧美 日韩 国产一区二区 | 激情一区二区三区在线观看| 一区二区三区亚洲| 97色色色| 亚洲色图一区二区三区| 我想要 啊 啊 啊| 超碰欧美COM| 色老大| 久久岛国| 欧美性爱综合,免费| 草草影院最新网址| 久久久精品成人国产| 温婉少妇玩3p| 欧美做爰无码A片视频| 粉嫩在线一区二区懂色| 午夜免费视频1000| 国产后入精品| 久久久久久中文字幕中文字幕最新| 亚洲激情综合| 爱爱60秒免费视频| 性色高清在线| 97爱啪| julia ann久久| 欧美天天综合网| 日本操逼视频不卡直接放| 一个人免费HD91视频| 啊啊啊 在线观看| 伊人aaa| 99热这里只有精品18| 亚洲av综合色区图片亚洲| 国产一级作爱毛片| 九九九综合精品| 亚洲不卡一| 偷看洗澡一二三区美女| 日韩伦理久 久久 清纯| 精品久久久不卡一区二区| 91超碰丝袜制服| 免费一级a毛片久久久久久鸭绿欲| 九月丁香综合网| 四月丁香婷婷| 97国产精选| 亚洲性爱免费电影| 天天日天天舔东京热| 久久久久久加勒比| 久操网址| 加勒比久久av| 国产又黄又粗的视频| 亚洲熟女国产综合另类| 天天内射| 日本操逼视频免费| 狠狠穞A片一區二區三區| 粘花网06av视频| 超碰97男女| 久久久国产三级黄色片| 丝袜美腿射精91| 熟女色综合久久| 91无摭挡| 亚洲女毛多水多21P| 91在线丝袜| 女人高潮大叫一级毛片| 老熟女天天操| 夜夜肏2021| 婷婷色色五月天福利| 欧亚第一综合网| 人人看黄色视频| 亚洲欧美setu| 黑人无码一区二区| 亚洲综合色在线| 91精品综合久久久久久五月丁香| 国产三级中文字幕粉嫩| 麻豆久久视频在线地址| 黑人精品XXX一区一二区| 嗯嗯,好大,好爽,好骚| 超碰97男女| 99啪啪| 亚洲Av无码成人精品国产| 加勒比综合在线| 啪啪啪大香蕉| 亚欧美天堂在线| 久久草草亚洲蜜桃臀| jiujiujiujingpin| 久久精品亚洲成a人天堂| 91亚州| 色月天AV导航| 欧美少妇大量自拍视频在线观看| 人人摸.人人色| 日韩啊V| 五月丁香啪啪网| 国产成人无码啪| 国产精品不卡高清在线观看| 日韩精品免费高清视频在线| 日本亚欧爱爱| 超碰97资源中文字幕| 国产精品午夜高潮呻吟久久av| 四虎影视精品| 舔人妻中文免费视频| 国产白丝在线| 无遮挡又黄又刺激的视频| 97精品全部| 亚洲做性| 色香天天| 熟女探花啪啪| 欧美精品成人一区二区在线观看| 精品国产乱码久久久久久日本公司| 亚洲码和欧洲精品激情系列| 超碰人人干| 91丨国产丨白浆秘 洗澡动漫| 黄页av| 色五月av| 人人干人人操人人爱| 国产精品国产亚洲区艳妇糸列| 精品人成视频在线观看| 亚洲一卡二卡在线免费| 在线人成亚洲视频免费观看| 亚洲 欧美 精品专区 极品| 人妻色偷色噜| 久久伊人亚洲AV无码网站| 亚洲中文字幕在现观看| 色黄污美女啪啪啪免费网站| 国产精品人妻无码久久久互動交流 | 性交一区二区在线播放| 欧美熟妇精品黑人巨大91| 草久在线| 国产v片在线免费观看| 中文字幕一区二区三区高清| 夜夜草网站| 日韩精品一二三四| 日本99一区二区| 夜夜嗨一区二区三区三州加勒比| 91亚洲欧美激情| 日韩综合无码色欲vv| 色婷婷电影网| 久久综合久色欧美综合狠狠 | 国产成人免费观看在线视频| 五月丁香啪啪| 欧美日动态视频| 午夜乱轮操逼视频免费看| 色九九综合| 人妻丰满熟妇av无码区蜜桃| 影音先锋少妇| 中文字幕女同在线| 一起草视频在线| 色9999日韩国产| 江都AV在线| 亚洲欧洲激情卡通另类文学四射小说网站| 免费的黄片有限公司| 97午夜剧场日韩| 亚州综| 人人天天干干| 东京太热男人的天堂久久久| 日本精品高清一二区一本到| 欧美日韩美女精品久草一区二区三区| 亚洲在钱| 国产一级137片内射麻豆| 东京热激情视频一二三区| 欧美图片色五月天| 日韩中文字幕二区| 亚洲男人天堂视频| www久| 91女色| 中文字幕人妻色偷偷久久皮 | 人人干黄色| 无码九九九九| 91GD.COM| a男人的天堂久久一级A毛片| 精品九九淫乱男| 粉嫩在线一区二区懂色| 精久久久| 亚洲欧美日韩有码| 2020中文在线一区二区三区| 怡红院成人视频| 国产无遮挡| 一区二区三区激情在线观看| 四方色播| 亚州色图欧美| 亚洲中文日韩精品| 大香蕉中文201| 97欧美精品综合| 亚洲欧美高清无码| 美女性91| 禁止观看美女黄| 日本 欧美 亚中文字幕| 成人a级高清视频在线观看| 国产三级中文字幕粉嫩| 97国产超湿| 天天天天操| 日韩精品碰碰| 岛国大片在线观看网站入口| 97操| 操操AV电影| 国内毛片国产专区二| 欧美图片色五月天| 色五月网址| 亚洲制服aⅴ中文字幕| 躁躁躁日日躁2020| 最新制服中文第一页| 99热 按摩 日韩| 亚洲AV资源| 欧美大片一区二区三区| 亚洲免费日韩在线一区二区| 天堂岛av| 伊人久久婷婷| 五月综合视频| 综合激情婷婷| 粉嫩国产精品久久粉嫩| 亚洲婷婷五月天| 欧亚在线视频| 国产色精品午夜大片| 国产 亚洲 丝袜 制服| 国产成久久综合片| 天天艹天天日| 乱伦AVxx| 欧美九九爱| 97网址97| 78精品| 大奶的诱惑| 黄色免费一级在线毛片| 国产精品人妻熟女aⅴ| 狠狠干婷婷| 麻豆久久视频在线地址| 免费的av网| 日韩精品系列| 青青草好吊色| 国产精品点击进入在线影院| 成人午夜小视频手机在线看| 人人乐大香蕉| 天操天操夜操夜月月年年操操 | 国产成人啪一区二区| 国产拍偷精品网站| 8050午夜少妇无码| 东北女人| 综合一区中亚洲国产成人综合精品| 国产又粗又长又爽又色| 干婷婷综合网| 91色图片| 国产精品不卡一区二区电影| 日本护士高潮| 日日干男人的天堂| 精品人妻久久久久一区二区三区| 欧洲综合色图| 久久精品中文字幕无码l| 色老汉色| 天天噜| 日韩pv中文| 97视频播放| 婬女免费一二三区A片| 久久精品天美| 在线有码中文字幕| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产精品一二三区福利| 久久九操在线观看| 中文字幕AV乱伦| 操人妻逼91| 中文字幕日韩专区精品系列 | 久久久久久久久久久97| 人妻天天爽天天爽三区| 欧美日韩第一页| 粉嫩小泬久久久一区二区| 夜夜爽夜夜爽| 日本人体九九九九九九| 婷婷超| 97日视频| 人妻熟女一区在| 中日韩久久久免费看| 五月婷视频| 少妇久久久| 神马午夜久久久| 日韩av性爱在线播放| 亚洲在线综合| 亚洲国产欧美日韩人妻日中文| 亚州综合色| 久久草草亚洲蜜桃臀| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲精品丝袜| 亚洲天堂7777| 天堂性色| 久久99999| 亚洲色诱惑| 91丨九色丨国产丨人妻在线| 欧美操逼录像国产黄色国产| 欧插网站| 免费av大片| 国产真实子伦对白| 国产精品禁久久久精品| 91九色在线| 91人妻中文| 日韩熟女无码| 97在线视频网站| 欧美少妇高潮视频| 偷拍在线观看视频| 久久大线蕉一区| 乱论91| 日韩无码黄色片| 2019天天干天天操| 国产不良强奸视频免费看| 国产无马在线| 欧美草草高清日韩视频| 啊啊啊不要嗯嗯在线观看| 农村妇女一级二级三级视频| 天天躁日日躁AAA片李宗瑞| 久久精品国产AV一区二区三区| 東南亚性呦成人伦理资源在线视频| 国产精品久久久久久久久久久久久久久久 | av无码精品久久久久| 国产精品又黄又猛又粗| 欧美不卡在线一区二区| 丁香婷婷五月| 免费观看性欧美一级| 91人妻熟女| 青青青草原| 亚洲中文字幕av | 婷婷性网| 丰满人妻一区二区三区免费| 色老大| 欧美后入式| 久久亚洲日韩国产欧| 亚洲欧美另类小说| 91在线免费精品视频| 性暴力欧美猛交在线直播| 国产成人拍国产亚洲精品| 欧美激情性久久久久久| 无码乱人伦中文视频| 色婷视频| 日本欧美色| 日韩精品国模| 女色综合| 熟女突然公开看18禁影片 | 91综合色噜噜| 中国大陆国产高清AⅤ毛片| 国产一区二区精品久久99| 十八禁视频网站| 2026国产精品视频| 91黑丝在线| 国产91精品福利在线| 综合一区中亚洲国产成人综合精品| 色婷婷aV一区二区三区麻豆综合| 综合激情一一91| jizz啪啪| 天综合网| 熟妇激情| 夜夜天天噜狠狠爱2021| 熟妇熟女一区二三区| 亚洲诱惑天堂 | 日韩97超碰中文字幕| 人人妻天天做天天爽| 水多多映视AV| 婷婷在线视频| 久热伊人| 日韩性爱电影一区| 91精品婷婷国产综合久久竹菊| 欧美另类丝袜熟女| 婷婷久久五月天| 欧美 亚洲 第一页 | 色网1| 人妻无一区二区三区| 日韩熟女精品无码专区一区二区| 亚欧Av| 一本一道久久综合久久| **一级毛片国产| 亚州九九九精品视频| 嫖老熟女A片一二三区| 久久熟女嫩草成人片免费 | 久jiu久神马影院| 黑人猛交| 九九成人精品| 男人天堂电影院| 精品乱子一区二区三区99| 久综合国内精品自在自线| 久久亚州高清| 蜜乳AV.COM| 亚洲综合色在线| 97色色婷婷| 91精品国产91久久青草| 天天日日本| 黑丝自慰喷水网站| 久草色在线观看| 欧美成人性爱视频大全| 天天天干977| 青青草原狼av| 日韩欧美字幕亚洲一区二区| 亚州综合色| 东京热一区二区三区四区五区六区| 久久人人爽爽人人爽人人片αV| 欧美性高潮| 色香综合天天影视综合| 四月丁香婷婷| 爱射综合| 影音先锋日本乱伦| 国产sv美女内射| 9长久久精品| 97超碰色五月| 亚洲五月婷婷| 隔壁邻居波多野结衣中文字幕| 天天综合网~91| 职场同事知名国产国产精品久久欧美日韩 |