色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

微服務(wù)服務(wù)發(fā)現(xiàn)與Consul實(shí)戰(zhàn):注冊(cè)中心原理到Spring Cloud集成

微服務(wù)服務(wù)發(fā)現(xiàn)與Consul實(shí)戰(zhàn):注冊(cè)中心原理到Spring Cloud集成 做微服務(wù)這段時(shí)間被問(wèn)得最多的問(wèn)題之一就是服務(wù)之間到底是怎么找到彼此的IP 寫(xiě)死不就行了嘛短期可以服務(wù)一多、實(shí)例一變、一擴(kuò)縮容馬上就會(huì)亂成一鍋粥。這也是為什么現(xiàn)在只要聊到微服務(wù)架構(gòu)服務(wù)發(fā)現(xiàn)絕對(duì)是繞不開(kāi)的一環(huán)。我這邊用的是 Consul 來(lái)做的服務(wù)注冊(cè)與發(fā)現(xiàn)從集群搭建到 Spring Cloud 集成完整跑了一遍期間踩了不少坑也把原理層面的東西摸了個(gè)七七八八。這篇就把我的實(shí)操過(guò)程和經(jīng)驗(yàn)整理出來(lái)給正準(zhǔn)備做服務(wù)發(fā)現(xiàn)、或者正在 Eureka、Nacos、Consul 之間糾結(jié)的團(tuán)隊(duì)一個(gè)參考。這篇文章會(huì)覆蓋這么幾個(gè)部分為什么需要服務(wù)發(fā)現(xiàn)、Consul 的核心原理與數(shù)據(jù)模型、單機(jī)和集群怎么搭、服務(wù)注冊(cè)和健康檢查怎么做、Spring Cloud 怎么集成最后還有我實(shí)際運(yùn)維中遇到的高頻問(wèn)題和排查思路。無(wú)論你是剛拆微服務(wù)的新手還是已經(jīng)在維護(hù)注冊(cè)中心的開(kāi)發(fā)這篇文章里應(yīng)該都有能直接拿去用的東西。1. 為什么微服務(wù)離不開(kāi)服務(wù)發(fā)現(xiàn)1.1 沒(méi)有注冊(cè)中心時(shí)服務(wù)調(diào)用有多痛苦先回到最原始的場(chǎng)景。假設(shè)你有一個(gè)訂單服務(wù)和一個(gè)用戶服務(wù)訂單服務(wù)要調(diào)用戶服務(wù)的接口。最笨的辦法就是配置里寫(xiě)死用戶服務(wù)的 IP 和端口比如http://192.168.1.10:8080。剛開(kāi)始實(shí)例少確實(shí)夠用。但一旦用戶服務(wù)部署了 3 個(gè)節(jié)點(diǎn)或者某臺(tái)機(jī)器掛了要縮容麻煩就來(lái)了你得手動(dòng)改配置、改 Nginx 上游、重新 reload而且掛掉的那個(gè)節(jié)點(diǎn) Nginx 并不知道照樣往里轉(zhuǎn)發(fā)流量線上就開(kāi)始零星報(bào)錯(cuò)。我見(jiàn)過(guò)不少團(tuán)隊(duì)在這個(gè)階段用 Nginx 做反向代理把服務(wù)地址統(tǒng)一收斂到 Nginx然后業(yè)務(wù)代碼只調(diào) Nginx。這比寫(xiě)死 IP 好一些但本質(zhì)上是把手動(dòng)改配置從業(yè)務(wù)代碼轉(zhuǎn)移到了 Nginx 配置實(shí)例變動(dòng)的通知依然靠人肉。一旦微服務(wù)規(guī)模上了兩位數(shù)每次發(fā)布、擴(kuò)容、故障轉(zhuǎn)移都要改一遍 Nginx運(yùn)維壓力非常大而且極易出錯(cuò)。這不是工具不好用而是思路錯(cuò)了。Nginx 適合做流量入口的負(fù)載均衡不適合做服務(wù)間動(dòng)態(tài)調(diào)用的注冊(cè)表。服務(wù)之間的調(diào)用關(guān)系是動(dòng)態(tài)的實(shí)例隨時(shí)在變必須有一個(gè)組件能實(shí)時(shí)記錄當(dāng)前有哪些服務(wù)、各自在哪個(gè)地址、是否健康并且把這個(gè)信息自動(dòng)同步給所有調(diào)用方。1.2 服務(wù)發(fā)現(xiàn)幫我們解決了哪三件事服務(wù)發(fā)現(xiàn)解決的核心問(wèn)題其實(shí)就三件事。第一件是服務(wù)注冊(cè)。服務(wù)啟動(dòng)時(shí)自動(dòng)把自己的 IP、端口、服務(wù)名、元數(shù)據(jù)信息上報(bào)給注冊(cè)中心。第二件是健康檢查。注冊(cè)中心定期探測(cè)服務(wù)的存活狀態(tài)發(fā)現(xiàn)實(shí)例不健康就自動(dòng)標(biāo)記、摘除不再把流量分給它。第三件是服務(wù)發(fā)現(xiàn)與負(fù)載均衡。調(diào)用方在發(fā)起請(qǐng)求前先向注冊(cè)中心拿一份可用實(shí)例列表然后按照負(fù)載均衡策略挑一個(gè)發(fā)起調(diào)用??梢杂靡粋€(gè)生活化的類比來(lái)理解。你去一家熱門(mén)餐廳吃飯門(mén)口有個(gè)等位取號(hào)系統(tǒng)。你到了之后先取號(hào)這就是注冊(cè)系統(tǒng)會(huì)不斷喊號(hào)沒(méi)人應(yīng)答的就跳過(guò)這就是健康檢查輪到你的號(hào)時(shí)服務(wù)員帶你去空桌這就是發(fā)現(xiàn)與分配。如果沒(méi)有這個(gè)取號(hào)系統(tǒng)你就得挨個(gè)桌子問(wèn)有沒(méi)有空位效率極低而且很多桌子已經(jīng)坐滿了人你卻不知道。現(xiàn)在主流的注冊(cè)中心方案有 Consul、Nacos、Eureka、ZooKeeper 等。Eureka 2.x 已經(jīng)停止維護(hù)ZooKeeper 更偏向分布式協(xié)調(diào)場(chǎng)景。Nacos 在國(guó)內(nèi)用得多功能也很全自帶配置中心和注冊(cè)中心。我選擇 Consul 主要看中它的多數(shù)據(jù)中心支持、一致性協(xié)議更成熟、以及和 Spring Cloud 的集成度很高后面我會(huì)詳細(xì)講。2. Consul 服務(wù)發(fā)現(xiàn)的核心原理2.1 先認(rèn)識(shí) Consul 里的角色與端口Consul 是 HashiCorp 家的產(chǎn)品核心由 Agent 組成。Agent 有兩種運(yùn)行模式Server 模式和 Client 模式。Server 節(jié)點(diǎn)負(fù)責(zé)維護(hù)集群狀態(tài)、處理查詢和寫(xiě)入請(qǐng)求、參與 Raft 一致性協(xié)議選舉是 Consul 集群的大腦。生產(chǎn)環(huán)境一般部署 3 個(gè)或 5 個(gè) Server 節(jié)點(diǎn)必須是奇數(shù)因?yàn)?Raft 協(xié)議要求多數(shù)派才能提交數(shù)據(jù)。Client 模式則是一個(gè)輕量代理部署在每臺(tái)業(yè)務(wù)機(jī)器上負(fù)責(zé)轉(zhuǎn)發(fā)請(qǐng)求給 Server、執(zhí)行健康檢查、維護(hù)本機(jī)的服務(wù)注冊(cè)信息。業(yè)務(wù)進(jìn)程不直接和 Server 集群通信而是先找本機(jī) Client再由 Client 轉(zhuǎn)發(fā)這是一個(gè)很典型的分層設(shè)計(jì)。Consul 用到了幾個(gè)端口我用一張表整理了一下方便排查問(wèn)題的時(shí)候?qū)φ斩丝趨f(xié)議用途8500HTTP提供 REST API 和 Web UI服務(wù)注冊(cè)、查詢都走這里8600TCP/UDPDNS 接口可以通過(guò)域名解析服務(wù)地址8300TCPServer 節(jié)點(diǎn)之間的 RPC 通信8301TCP/UDP同數(shù)據(jù)中心內(nèi) Agent 間 gossip 通信LAN8302TCP/UDP跨數(shù)據(jù)中心 Agent 間 gossip 通信WAN我剛開(kāi)始部署的時(shí)候沒(méi)注意端口問(wèn)題結(jié)果集群起來(lái)之后成員之間一直互相看不到排查了半天才發(fā)現(xiàn)是防火墻把 8301 端口給攔了。如果你也遇到 Agent 日志里反復(fù)出現(xiàn) join 失敗優(yōu)先檢查這幾個(gè)端口是否放通。2.2 服務(wù)注冊(cè)與查詢的數(shù)據(jù)模型Consul 里最核心的數(shù)據(jù)模型是 Service。一個(gè)服務(wù)實(shí)例用下面幾個(gè)關(guān)鍵字段描述ID實(shí)例的唯一標(biāo)識(shí)同一個(gè)服務(wù)下不能重復(fù)Name服務(wù)名邏輯上的服務(wù)名稱Tags標(biāo)簽可以用來(lái)區(qū)分版本、環(huán)境等Address 和 Port實(shí)例的訪問(wèn)地址和端口Check健康檢查配置這里有個(gè)容易混淆的點(diǎn)Consul 的服務(wù)查詢接口有兩套/v1/catalog/service/{name}和/v1/health/service/{name}。前者返回的是注冊(cè)表里的原始數(shù)據(jù)不管實(shí)例是否健康都會(huì)返回后者只返回通過(guò)健康檢查的實(shí)例。實(shí)際調(diào)用的時(shí)候一定要用/v1/health/service/{name}否則你把流量打到一個(gè)已經(jīng)掛掉的實(shí)例上故障排查會(huì)非常痛苦。我自己在項(xiàng)目里就遇到過(guò)這樣的問(wèn)題服務(wù)調(diào)用的下游實(shí)例已經(jīng)宕機(jī)了但調(diào)用方還是能拿到它的地址。查了半天發(fā)現(xiàn)代碼里用的是 catalog 接口改成 health 接口之后掛掉的實(shí)例被自動(dòng)過(guò)濾掉問(wèn)題立刻消失。這個(gè)細(xì)節(jié)在 Consul 官方文檔里寫(xiě)得不算醒目但生產(chǎn)環(huán)境非常重要。2.3 三種健康檢查方式的選擇邏輯Consul 的健康檢查有三種模式適用場(chǎng)景完全不同很多人一開(kāi)始容易搞混。第一種是 HTTP 檢查。Consul 定期請(qǐng)求你指定的 HTTP 接口比如/actuator/health根據(jù)返回的 HTTP 狀態(tài)碼判斷是否健康。只要接口返回 200就認(rèn)為實(shí)例存活。這是我用得最多的一種因?yàn)?Spring Boot 的 Actuator 天然提供了健康檢查端點(diǎn)可以直接對(duì)接。第二種是 TCP 檢查。Consul 定期嘗試和實(shí)例的 IP:Port 建立 TCP 連接連得上就認(rèn)為健康。適合沒(méi)有 HTTP 接口的服務(wù)比如數(shù)據(jù)庫(kù)連接、自定義 RPC 服務(wù)。第三種是 TTL 檢查。服務(wù)實(shí)例自己定期主動(dòng)上報(bào)心跳告訴 Consul 我還活著。如果超過(guò)指定時(shí)間沒(méi)有上報(bào)就判定為不健康。這種模式下 Consul 不會(huì)主動(dòng)探測(cè)適合那些不方便提供 HTTP 端點(diǎn)、或者內(nèi)部有復(fù)雜存活判斷邏輯的服務(wù)。選擇邏輯其實(shí)很簡(jiǎn)單能用 HTTP 檢查就用 HTTP 檢查因?yàn)樗钪苯拥胤从沉朔?wù)的真實(shí)可用狀態(tài)服務(wù)本身沒(méi)有 HTTP 接口就用 TCP需要服務(wù)自己決定是否存活、或者不想讓注冊(cè)中心主動(dòng)探測(cè)的場(chǎng)景選 TTL。但要注意TTL 模式依賴業(yè)務(wù)代碼主動(dòng)上報(bào)心跳一旦業(yè)務(wù)線程卡死心跳可能還在發(fā)實(shí)際服務(wù)已經(jīng)不能處理請(qǐng)求了這會(huì)造成誤判所以能用 HTTP 檢查的地方我一般不會(huì)用 TTL。2.4 Consul 的一致性保證與多數(shù)據(jù)中心Consul 的 Server 節(jié)點(diǎn)采用 Raft 協(xié)議保證數(shù)據(jù)一致性。Raft 是一種分布式一致性算法核心思想是選舉一個(gè) Leader 節(jié)點(diǎn)負(fù)責(zé)處理寫(xiě)入請(qǐng)求其他節(jié)點(diǎn)同步數(shù)據(jù)。寫(xiě)入操作必須得到多數(shù)派節(jié)點(diǎn)確認(rèn)才算成功所以集群里掛掉的節(jié)點(diǎn)不能超過(guò)半數(shù)否則整個(gè)集群會(huì)變成只讀狀態(tài)服務(wù)注冊(cè)和更新都會(huì)失敗。這個(gè)機(jī)制保證了數(shù)據(jù)不會(huì)丟但也帶來(lái)一個(gè)運(yùn)維常識(shí)Consul 集群的 Server 節(jié)點(diǎn)數(shù)最好是 3 或 5不要因?yàn)楣?jié)省成本只部署 2 個(gè)因?yàn)?2 個(gè)節(jié)點(diǎn)掛 1 個(gè)就湊不齊多數(shù)派了連一臺(tái)都不掛反而不如單點(diǎn)穩(wěn)定。我后面會(huì)詳細(xì)演示 3 節(jié)點(diǎn)集群怎么搭。Consul 還支持多數(shù)據(jù)中心每個(gè)數(shù)據(jù)中心有獨(dú)立的 Server 集群數(shù)據(jù)中心之間通過(guò) WAN gossip 協(xié)議交換服務(wù)目錄信息。這一點(diǎn)在做異地多活或跨機(jī)房容災(zāi)時(shí)很有價(jià)值應(yīng)用層不需要感知物理機(jī)房的差異直接通過(guò)服務(wù)名就能拿到對(duì)端機(jī)房的可用實(shí)例。如果你的公司暫時(shí)沒(méi)有多機(jī)房需求這個(gè)功能可以先了解但選型時(shí)多一個(gè)加分項(xiàng)總是好的。3. 從零搭建 Consul 集群并完成服務(wù)注冊(cè)3.1 單機(jī)快速體驗(yàn)開(kāi)發(fā)模式先從最簡(jiǎn)單的單機(jī)模式開(kāi)始跑通了再上集群。Consul 的安裝很簡(jiǎn)單直接從官網(wǎng)下載二進(jìn)制包解壓后把可執(zhí)行文件放到 PATH 里就行。啟動(dòng)開(kāi)發(fā)模式consul agent -dev-dev模式會(huì)啟動(dòng)一個(gè)單節(jié)點(diǎn)的 Consul所有功能默認(rèn)開(kāi)啟非常適合本地調(diào)試。啟動(dòng)成功后打開(kāi)瀏覽器訪問(wèn)http://127.0.0.1:8500就能看到 Consul 的 Web UI。界面上有 Services、Nodes、ACL 等菜單服務(wù)注冊(cè)進(jìn)來(lái)后在 Services 頁(yè)面就能看到實(shí)例列表和健康狀態(tài)。開(kāi)發(fā)模式下如果提示端口被占用可以用-http-port指定其他端口。我做本地實(shí)驗(yàn)時(shí)常用consul agent -dev -http-port18500避開(kāi)可能被占用的 8500 端口。3.2 3 節(jié)點(diǎn)集群搭建實(shí)操生產(chǎn)環(huán)境我不會(huì)用單節(jié)點(diǎn)至少搭 3 個(gè) Server 節(jié)點(diǎn)的集群。這里演示在 3 臺(tái) Linux 服務(wù)器上搭建假設(shè)三臺(tái)機(jī)器的 IP 分別是 10.0.0.11、10.0.0.12、10.0.0.13。每臺(tái)機(jī)器上先準(zhǔn)備一個(gè)配置文件consul.hcl內(nèi)容大致如下data_dir /opt/consul/data log_level INFO server true bootstrap_expect 3 ui true bind_addr 0.0.0.0 client_addr 0.0.0.0 retry_join [10.0.0.11, 10.0.0.12, 10.0.0.13]然后依次在三臺(tái)機(jī)器上執(zhí)行consul agent -config-dir/etc/consul.d第一臺(tái)啟動(dòng)的時(shí)候因?yàn)閎ootstrap_expect 3Consul 會(huì)等待 3 個(gè) Server 節(jié)點(diǎn)都加入后才開(kāi)始選舉 Leader。這個(gè)參數(shù)的意思是期望的 Server 節(jié)點(diǎn)數(shù)用于避免過(guò)早選舉產(chǎn)生腦裂。等三臺(tái)機(jī)器全部啟動(dòng)后在任意一臺(tái)執(zhí)行consul members應(yīng)該能看到三個(gè)節(jié)點(diǎn)都是alive狀態(tài)。再執(zhí)行consul operator raft list-peers可以看到有一個(gè)節(jié)點(diǎn)是 leader其他節(jié)點(diǎn)是 followerRaft 集群正常工作了。這里有個(gè)經(jīng)驗(yàn)生產(chǎn)環(huán)境的 Server 節(jié)點(diǎn)最好是奇數(shù)3 個(gè)或 5 個(gè)。原因在 Raft 協(xié)議里說(shuō)過(guò)了要湊多數(shù)派。另外如果集群規(guī)模很大或者請(qǐng)求量很高還可以給 Server 節(jié)點(diǎn)前加一層負(fù)載均衡但一般的微服務(wù)規(guī)模用不到業(yè)務(wù)請(qǐng)求會(huì)優(yōu)先打到本機(jī)的 Client Agent再轉(zhuǎn)發(fā)給 Server壓力可控。3.3 通過(guò) REST API 注冊(cè)、查詢、注銷(xiāo)服務(wù)Consul 提供了完整的 REST API我先用 curl 演示最基礎(chǔ)的服務(wù)注冊(cè)流程。注冊(cè)一個(gè)名為user-service的服務(wù)實(shí)例到 Consulcurl -X PUT http://127.0.0.1:8500/v1/agent/service/register \ -H Content-Type: application/json \ -d { ID: user-service-1, Name: user-service, Tags: [primary], Address: 192.168.1.100, Port: 8080, Check: { HTTP: http://192.168.1.100:8080/actuator/health, Interval: 10s } }這里注意兩個(gè)細(xì)節(jié)。第一注冊(cè)接口是/v1/agent/service/register走的是本機(jī) Agent。第二Check 里的 HTTP 地址要填業(yè)務(wù)實(shí)例的地址不是 Consul 的地址Consul 會(huì)主動(dòng)去探測(cè)這個(gè)接口。注冊(cè)成功后在瀏覽器 UI 里能看到這個(gè)服務(wù)。查詢可用實(shí)例用 health 接口curl http://127.0.0.1:8500/v1/health/service/user-service返回結(jié)果里每個(gè)實(shí)例會(huì)帶一個(gè)Checks數(shù)組里面Status為passing的才是健康實(shí)例。服務(wù)下線時(shí)要調(diào)用注銷(xiāo)接口curl -X PUT http://127.0.0.1:8500/v1/agent/service/deregister/user-service-1這個(gè)接口是 Agent 級(jí)別的只注銷(xiāo)本機(jī) Agent 上注冊(cè)的這個(gè)實(shí)例。搞清楚 agent 和 catalog 兩套 API 的區(qū)別能避免很多誤操作。4. Spring Cloud 集成 Consul服務(wù)注冊(cè)與調(diào)用4.1 服務(wù)提供者注冊(cè)到 Consul手動(dòng)用 curl 注冊(cè)服務(wù)只是為了理解原理真實(shí)項(xiàng)目里不會(huì)這么干都是讓框架自動(dòng)完成。Spring Cloud 對(duì) Consul 的集成非常成熟我在 Spring Boot 2.x Spring Cloud 2021.0.x 環(huán)境下測(cè)試過(guò)步驟很簡(jiǎn)潔。在服務(wù)提供者項(xiàng)目里引入依賴dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-consul-discovery/artifactId /dependency然后在application.yml里配置 Consul 地址和注冊(cè)信息spring: application: name: user-service cloud: consul: host: 127.0.0.1 port: 8500 discovery: instance-id: ${spring.application.name}-${spring.cloud.client.ip-address}-${server.port} prefer-ip-address: true health-check-path: /actuator/health health-check-interval: 10s主類上加上EnableDiscoveryClient注解SpringBootApplication EnableDiscoveryClient public class UserApplication { public static void main(String[] args) { SpringApplication.run(UserApplication.class, args); } }啟動(dòng)應(yīng)用后服務(wù)會(huì)自動(dòng)注冊(cè)到 Consul。這里instance-id的配置非常關(guān)鍵如果一臺(tái)機(jī)器上同一個(gè)服務(wù)部署了多個(gè)實(shí)例端口不同那么 ID 里帶上 IP 和端口就能保證唯一否則會(huì)出現(xiàn)后面的實(shí)例把前面的實(shí)例覆蓋掉的情況這是我在多實(shí)例部署時(shí)踩過(guò)的坑。prefer-ip-address: true會(huì)讓服務(wù)注冊(cè)時(shí)優(yōu)先使用 IP 而不是主機(jī)名。如果不開(kāi)這個(gè)配置在容器環(huán)境或內(nèi)網(wǎng) DNS 不完善的環(huán)境下注冊(cè)到 Consul 的地址可能是主機(jī)名其他服務(wù)解析不了調(diào)用就會(huì)失敗。4.2 服務(wù)消費(fèi)者通過(guò) Consul 找到并調(diào)用服務(wù)服務(wù)消費(fèi)者的配置和服務(wù)提供者幾乎一樣只是不注冊(cè)自身的情況更多。如果某個(gè)服務(wù)只是調(diào)用別人不需要被別人調(diào)用可以在配置里關(guān)閉注冊(cè)spring: cloud: consul: discovery: register: false調(diào)用方式有兩種主流方案。一種是 RestTemplate 加LoadBalanced注解Configuration public class RestTemplateConfig { Bean LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }然后直接通過(guò)服務(wù)名調(diào)用String result restTemplate.getForObject(http://user-service/api/user/1, String.class);另一種是用 OpenFeign聲明式調(diào)用更符合微服務(wù)的風(fēng)格FeignClient(name user-service) public interface UserClient { GetMapping(/api/user/{id}) String getUser(PathVariable(id) Long id); }這兩套方式底層的原理是一樣的攔截到服務(wù)名后向 Consul 查詢可用實(shí)例列表再用負(fù)載均衡策略選一個(gè)實(shí)例發(fā)起請(qǐng)求。Spring Cloud LoadBalancer 默認(rèn)的負(fù)載均衡策略是輪詢你也可以根據(jù)自己的需求替換成隨機(jī)、最少連接數(shù)等策略。我第一次用 RestTemplate 調(diào)服務(wù)名時(shí)報(bào)了UnknownHostException原因就是忘加LoadBalanced注解。這個(gè)注解的作用是給 RestTemplate 注入一個(gè)攔截器讓它能識(shí)別http://user-service這種服務(wù)名格式并走服務(wù)發(fā)現(xiàn)邏輯。沒(méi)有這個(gè)注解RestTemplate 只會(huì)把它當(dāng)普通域名去 DNS 解析自然就失敗了。4.3 健康檢查、優(yōu)雅下線與自動(dòng)摘除Spring Cloud Consul 默認(rèn)的健康檢查路徑就是/actuator/health但前提是項(xiàng)目里引入了 Spring Boot Actuator。如果沒(méi)引入健康檢查請(qǐng)求會(huì)返回 404Consul 會(huì)把實(shí)例標(biāo)記為不健康。所以一定要在服務(wù)提供者項(xiàng)目里加上dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependencyhealth-check-interval: 10s表示每 10 秒檢查一次。這個(gè)值不要設(shè)得太短否則頻率太高會(huì)浪費(fèi)不必要的資源也不要設(shè)得太長(zhǎng)否則實(shí)例掛了之后下游最長(zhǎng)要等一個(gè)周期才能感知到。10 秒是我覺(jué)得比較平衡的配置如果對(duì)時(shí)效性要求高可以壓到 5 秒。還有一個(gè)很實(shí)用的配置是deregister-critical-service-after。當(dāng)健康檢查連續(xù)失敗實(shí)例進(jìn)入 critical 狀態(tài)后如果超過(guò)這個(gè)時(shí)間還沒(méi)有恢復(fù)Consul 會(huì)自動(dòng)把實(shí)例從注冊(cè)表里刪除spring: cloud: consul: discovery: deregister-critical-service-after: 2m這個(gè)配置我強(qiáng)烈建議加上否則一個(gè)實(shí)例掛了之后它的記錄會(huì)一直躺在 Consul 服務(wù)列表里UI 上看著紅叉一片數(shù)據(jù)也不干凈。加了這個(gè)配置后Consul 會(huì)在 2 分鐘后自動(dòng)清理。優(yōu)雅下線方面Spring Cloud 在應(yīng)用關(guān)閉時(shí)會(huì)自動(dòng)從 Consul 注銷(xiāo)服務(wù)實(shí)例不需要額外寫(xiě)代碼。但如果你用的是容器編排系統(tǒng)比如 Kubernetes 或 Docker Compose要注意關(guān)閉順序。先讓 Consul 把實(shí)例標(biāo)記為不健康并停止接收新流量再真正銷(xiāo)毀容器這樣才能做到滾動(dòng)發(fā)布無(wú)感知。單純依賴進(jìn)程退出時(shí)的注銷(xiāo)邏輯在容器被強(qiáng)殺時(shí)往往來(lái)不及執(zhí)行。5. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄5.1 服務(wù)列表里看不到服務(wù)這個(gè)是最常見(jiàn)的問(wèn)題排查思路從簡(jiǎn)單到復(fù)雜排開(kāi)先看 Consul UI 的 Services 頁(yè)面確認(rèn)服務(wù)有沒(méi)有注冊(cè)成功再看服務(wù)提供者的啟動(dòng)日志有沒(méi)有報(bào)錯(cuò)然后用curl http://127.0.0.1:8500/v1/agent/services查看本機(jī) Agent 上注冊(cè)的服務(wù)列表。一個(gè)容易被忽略的原因是配置的spring.cloud.consul.host指向了錯(cuò)誤的機(jī)器或者端口不是 8500。另外檢查服務(wù)提供者和 Consul 之間的網(wǎng)絡(luò)連通性在服務(wù)提供者所在機(jī)器上直接執(zhí)行telnet {consul_host} 8500如果端口不通說(shuō)明網(wǎng)絡(luò)層面有問(wèn)題。踩過(guò)的一個(gè)隱蔽坑是服務(wù)注冊(cè)請(qǐng)求確實(shí)發(fā)出去了但注冊(cè)到 Consul 的地址是內(nèi)網(wǎng) Docker 網(wǎng)段的 IP比如172.17.0.2其他機(jī)器訪問(wèn)不了。這就是沒(méi)有配prefer-ip-address: true或者容器網(wǎng)絡(luò)配置不當(dāng)造成的。解決方法是配置spring: cloud: consul: discovery: prefer-ip-address: true ip-address: 宿主機(jī)對(duì)外IP # 可選手動(dòng)指定注冊(cè)IP5.2 控制臺(tái)健康狀態(tài)紅叉但服務(wù)本身正常服務(wù)進(jìn)程明明還在跑接口也能通但 Consul UI 里顯示健康檢查失敗。這時(shí)候先看 Consul 配置的健康檢查路徑是什么再手動(dòng)在 Consul 所在機(jī)器上 curl 一下這個(gè)地址。如果是/actuator/health返回 404說(shuō)明服務(wù)提供者沒(méi)引入 Actuator或者 context-path 配置導(dǎo)致路徑不對(duì)。Spring Boot 如果設(shè)置了server.servlet.context-path/api那么健康檢查端點(diǎn)也會(huì)跟著變化Consul 配置里的health-check-path也要改成/api/actuator/health。還有一種情況是健康檢查返回了 200但檢查頻率太高把服務(wù)打掛了表現(xiàn)就是服務(wù)偶爾可用偶爾不可用。我有一次把 interval 配成了 1 秒結(jié)果 Consul 集群對(duì)每個(gè)實(shí)例每秒發(fā)一個(gè)請(qǐng)求業(yè)務(wù)高峰期把服務(wù)拖得很慢。后來(lái)調(diào)整為 10 秒一切正常。健康檢查的頻率不是越高越好還是一個(gè)平衡問(wèn)題。5.3 服務(wù)實(shí)例被自動(dòng)摘除后反復(fù)重連如果實(shí)例處于不太健康的狀態(tài)Consul 會(huì)標(biāo)記為 critical然后deregister-critical-service-after時(shí)間一到就刪除注冊(cè)信息。但服務(wù)端的 Spring Cloud Consul 組件有自動(dòng)重連機(jī)制會(huì)嘗試重新注冊(cè)于是在 UI 上看到的現(xiàn)象就是服務(wù)一直在注冊(cè)、刪除、注冊(cè)、刪除之間反復(fù)橫跳。這種情況下核心問(wèn)題是實(shí)例本身不穩(wěn)定可能是內(nèi)存溢出、數(shù)據(jù)庫(kù)連接池耗盡、或者磁盤(pán)滿了。先去查服務(wù)日志和健康檢查端點(diǎn)的返回內(nèi)容Actuator 的/actuator/health返回體里會(huì)帶上各組件的健康狀態(tài)比如 MySQL 連接、Redis、磁盤(pán)空間等能直接指出是哪一個(gè)組件出了問(wèn)題。5.4 集群出現(xiàn)腦裂或不可寫(xiě)Consul 集群的 Server 節(jié)點(diǎn)網(wǎng)絡(luò)發(fā)生分區(qū)時(shí)Raft 協(xié)議會(huì)觸發(fā)重新選舉。如果某個(gè)分區(qū)的節(jié)點(diǎn)數(shù)湊不齊多數(shù)派這個(gè)分區(qū)就不可寫(xiě)服務(wù)注冊(cè)和更新都會(huì)失敗。這不是 Consul 的 bug而是 Raft 為防止腦裂寫(xiě)的固有機(jī)制。排查方法是登錄 Server 節(jié)點(diǎn)執(zhí)行consul operator raft list-peers查看 Raft 狀態(tài)。如果 leader 一直在切換或者沒(méi)有 leader說(shuō)明節(jié)點(diǎn)間網(wǎng)絡(luò)不穩(wěn)定檢查 8300 端口連通性和機(jī)房之間的專線質(zhì)量。另一個(gè)常見(jiàn)原因是服務(wù)器時(shí)鐘偏差太大Raft 對(duì)時(shí)鐘一致性有要求生產(chǎn)環(huán)境務(wù)必配置好 NTP 時(shí)間同步。5.5 服務(wù)下線時(shí)沒(méi)有及時(shí)清空進(jìn)程被 kill 之后服務(wù)實(shí)例在 Consul 里還會(huì)存在一段時(shí)間直到健康檢查連續(xù)失敗后才被標(biāo)記為 critical再等到deregister-critical-service-after觸發(fā)才被清理。這是正?,F(xiàn)象但如果是主動(dòng)發(fā)布最好在發(fā)布腳本里先調(diào)用注銷(xiāo)接口把實(shí)例從 Consul 里摘掉再停進(jìn)程。寫(xiě)一個(gè)簡(jiǎn)單的下線腳本#!/bin/bash SERVICE_IDuser-service-192.168.1.100-8080 curl -X PUT http://127.0.0.1:8500/v1/agent/service/deregister/${SERVICE_ID} kill -TERM $(pgrep -f user-service)這里調(diào)的還是本機(jī) Agent 的接口所以腳本在服務(wù)提供者機(jī)器上執(zhí)行即可。結(jié)合 CI/CD 流水線在停止容器前先執(zhí)行這個(gè)下線步驟可以讓發(fā)布期間下游調(diào)用方始終只訪問(wèn)存活實(shí)例真正實(shí)現(xiàn)無(wú)感發(fā)布。6. 一點(diǎn)擴(kuò)展ACL 安全與配置中心玩法6.1 別忽略 ACL 安全Consul 老版本曝出過(guò)一些安全漏洞大多和 ACL 權(quán)限校驗(yàn)繞過(guò)有關(guān)。如果只是在內(nèi)網(wǎng)跑很多人會(huì)忽略安全配置但微服務(wù)架構(gòu)里注冊(cè)中心掌握著所有服務(wù)的地址一旦被入侵整個(gè)系統(tǒng)的調(diào)用拓?fù)渚捅┞读孙L(fēng)險(xiǎn)非常高。Consul 支持完整的 ACL 系統(tǒng)可以為不同的服務(wù)、Key 配置細(xì)粒度的讀寫(xiě)權(quán)限。簡(jiǎn)單做法是啟用 ACLacl { enabled true default_policy deny tokens { master your-bootstrap-token } }開(kāi)啟后所有 API 請(qǐng)求都需要帶 Token 頭。Spring Cloud 的 Consul 集成也支持配置 Tokenspring: cloud: consul: config: acl-token: your-token discovery: acl-token: your-token我的建議是即使內(nèi)網(wǎng)環(huán)境也把 ACL 開(kāi)啟至少做個(gè)基礎(chǔ)防護(hù)。同時(shí)盡量使用較新版本的 Consul官方修復(fù)安全漏洞后在 release note 里都有記錄及時(shí)升級(jí)比什么防護(hù)都管用。6.2 Consul 還能當(dāng)輕量配置中心用Consul 的內(nèi)置 KV 存儲(chǔ)除了支撐服務(wù)發(fā)現(xiàn)也可以直接用做配置中心。雖然沒(méi)有 Nacos 的命名空間、分組、灰度這些豐富功能但對(duì)中小團(tuán)隊(duì)來(lái)說(shuō)夠用。Spring Cloud Consul Config 的接入方式和 Nacos 類似。引入依賴dependency groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-consul-config/artifactId /dependency配置里指定 KV 路徑spring: cloud: consul: config: enabled: true prefixes: config default-context: application然后在 Consul 的 KV 里創(chuàng)建config/user-service/data這樣的路徑存放配置文件內(nèi)容。配合spring-cloud-starter-bus可以實(shí)現(xiàn)配置變更后的自動(dòng)刷新。不過(guò)要提醒一句Consul 的 KV 功能適合存一些簡(jiǎn)單的、變更頻率不高的配置。如果配置項(xiàng)特別多、需要分環(huán)境分團(tuán)隊(duì)管理、需要灰度發(fā)布還是用 Nacos 或者 Apollo 這類專業(yè)配置中心更合適。選型要看團(tuán)隊(duì)體量沒(méi)有銀彈。我在實(shí)際使用中最深的一個(gè)體會(huì)是服務(wù)發(fā)現(xiàn)這塊選哪個(gè)注冊(cè)中心不是最難的難的是把健康檢查、優(yōu)雅上下線、負(fù)載均衡這些細(xì)節(jié)真正落實(shí)到生產(chǎn)環(huán)境里。很多人項(xiàng)目跑起來(lái)看著一切正常等到發(fā)布日才發(fā)現(xiàn)流量打到了正在關(guān)停的實(shí)例上或者服務(wù)擴(kuò)容后新實(shí)例遲遲沒(méi)有被下游感知到。這些坑大多不是注冊(cè)中心本身的問(wèn)題而是配置和使用姿勢(shì)的問(wèn)題。希望這篇文章能讓你在搭服務(wù)發(fā)現(xiàn)的時(shí)候少走些彎路。最后再分享一個(gè)小習(xí)慣無(wú)論用 Consul 還是其他注冊(cè)中心上線前一定要把“實(shí)例下線 - 健康檢查失敗 - 自動(dòng)摘除”這條鏈路完整演練一遍確認(rèn)每個(gè)環(huán)節(jié)的時(shí)間都符合預(yù)期。這個(gè)流程順暢了線上發(fā)布和故障處理會(huì)省去很多麻煩。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美日韩情色一区二区| 亚洲性综合| 婷婷人妻激情| 色狠狠综合噜一二三区| 色黄污美女啪啪啪免费网站| 亚洲色悠悠久久88| 啪啪资源网| 欧美草草| 亚洲情色婷婷五月天| 国产精品第一页国产大屁股视频免费区| 日本福利二区视频| 欧美日韩在线小说 | 婷婷精品视频| 日本日逼视频网| K8久久久久| 综合色图,成人综合网| 婷婷久久五月综合激情| 偷拍超碰| 91精品人妻电影| 亚洲人妻五月丁香婷婷| 成人女人国产| AV九九| 日韩一级欧美一级国产一级台湾 | 欧美性天天影院| 国产激情av女片自拍| 91在线丝袜| 99热精品在线观看| 美女尤物人人操| 伊人网高清| 国产乱弄免费在线视频。| 国产精品成人福利在线| 欧美人与动性人交a| 超碰97网址| 在线精品福利免费播放| 中文字幕国产在线天堂| 夜夜国自区| 60秒试看最爽10分钟网站| 夜夜草网站| 99这里只有精品国产| 欧美亚洲宗合色性图| 五月天色图| www.91人妻.com| 国产国产亚洲一二三久久| 国产自产91区13区| 日本女厕偷拍| 亚州色图第三区| 亚欧视频在线| 无遮挡男女激烈动态图| 伊人久大| 91九九九吃| 丝袜喷水在线| 五月色综合| 日人妻视频91| 亚洲一区二区三区不卡国产欧美| 中文字幕三四五区| 抽插一区二区视频| 欧美天堂亚洲电影院一区在线播放| 夜夜夜久久| 亚洲综合成人网| 婷婷视频在线免费观看| 亚洲国产奇米影视久久| A片大香蕉在线| 小说区 图片区色 综合区| 人人九九精| 日韩噜噜69| 精品日韩人妻视频| 一区二区影视| 久久久久九九九| 东京热,男人的天堂| 少妇内射www在线观看视频| 天天色香欲综合网| 久热久一区二区三区| 91neishe| 日韩国产十八禁| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 久青草影院| 人、人、摸,人、人、草| 色综合V| 亚洲 小说 欧美 激情 另类| 五十路六十路七十路熟婆| 999久久久| 久久国产成人精品国产成人亚洲| 欧美亚洲国产91在线| 中文字幕三四区| 青青草久草| 热热色91| 亚洲一卡二卡在线免费| 国产精品无码AV网站| 日韩欧美aⅴ综合网站发布| 久久黄色视频一区二区三区 | 安徽熟妇视频| 日韩美女操b| 欧美日韩 强奸乱伦| 中文字幕一区电影在线观看| 国产情侣自拍在线播放| 久久性爱城| 亚洲精品久久久久久久蜜桃臀| 国产日韩在线播放| 97电影院超碰| 人人摸人人干| 99爱精品| 亚州成人A√| 韩日精品福利视频一区不卡在线免 | 黄色AV影视| 五月丁香综合| 久久 亚洲 日韩 人妻| 色五月激情AV在线| 欧美亚洲激情| 国产免费一区在线观看| 东京太热久久久| 9精品在线| 大屁股熟女一区二区三区| 校园激情狠狠四射| 人人艹亚洲| 婷婷综合网| 丁香五月天婷婷姐| 校园春色中文字幕AV| 青操影院| 天天干人人看综合| 91蜜桃婷婷狠狠久久综合9色| 六月丁丁香| 亚洲欧洲无码97久久精品| 国产精品一级片在线看| 中文字幕91综合| 99日免费视频中文字幕| 蜜臀久久99精品久久久久久婷婷| 岛国毛片在线观看免费| 狠狠干综合| 蜜桃久久久久久久久久久久| 97国产精品一区| 97色伦97色伦国产欧美| 天天流夜夜操| 国产精品乱码久久久久久| 草B在线| 玖玖爱在线视频免费观看| 欧美色www亚洲国产阿娇要播| 秋霞蝌科网日本一区| 美女黄页| 国产97亚洲| 思思热在线cao| 午夜情侣自拍网站| 日本熟女不卡视频| 啊啊啊啊嗯嗯嗯用力好爽 | 精品一区二区三区四区外站| 久久六六| 小草精彩毛片| 日韩激情无码影院| 高凊专区人人操| 亚洲操逼视频网站| 91美女視頻| 午夜亚洲WWW湿好大| 久久久九九网站| 老女人碰碰在线碰碰视频| 啊v在线观看视频| www网站黄| 日日噜噜夜夜久久亚洲一区二区 | 国产小u女在线观看| 男人的天堂成人的社区| 丰满人妻一区二区三区免费 | 国精综合一二三区影视| 老司机午夜精品视频| 丁香六月婷| 男人的天堂久久| 熟女六十路| 超碰69| 熟女五十路一区二区三| 亚洲男人天堂2016| 色青青久久影视| 亚洲人人夜夜澡人人爽| 欧美性爱一级操| 久久久久久久久久久久欧美日| 91成人高清在线观看| 日日日啊啊啊| 少妇一区二区三区高速| 黑人精品久久97| 亚洲清纯唯美| 日本网色| 玖玖爱视频网站| 国产树林里野战在线看| 亚洲精品国产熟女久久久| 欧美日本成人一区二区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 大屁股人妻女教师撅着屁股| 亚洲av热热色| 99re国产中文字幕| 国产精品96| 久操高青| 欧美一区二区三区另类精品| av 模特一区了| 人妻精品一区二区在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 青青草AV色| 一级性爱aaaa| 91亚州| 97香蕉人人乳| 欧亚在线视频| 亚洲婷婷丁香在线| 97在线资源| 婷婷五月天成人| 亚洲高清视频在线免费观看| 亚州日韩97| 91精品人妻电影| 中文字幕乱码在线观看| 天堂精品小草| 视频分类 国内精品| 精品少妇99| 精品乱子一区二区三区99| 天堂а√在线最新版在线| 91美女片在线| 伊人伊人LD| 97av在线视频| 操逼逼中文字幕| 亚洲资源站| 2018天天干在线视频| 久久尹人大香焦视| 午夜视频久久久| 久久一二三四五六七八九区区区| 亚洲精品一二牛牛| 天天92av| 少妇高潮九九九九九九九| 99在线精品观看99| av资源在线播放天堂| 亚洲AV无码乱码| 蜜乳AV一区二区三区四| 国内伊人久久久久久网站视频| 日本精品免费一区二区三区四区| 神马精品视频| 日本三级日本三级99| 欧美成人免费在线观看| 一二三区精品视频| 亚洲第一页综合在线| 欧洲精品在线播放| 亚洲丝袜色图| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 精品久久久久,69国产成人精| 强奸乱伦免费网站| 国产av强奸美女| 在线观看中文字幕| 操一操摸一摸| 91精品人妻| 亚洲九九视频在线观看| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | av网站免费看| 亚洲97资源| 亚洲欧美精品久| 亚洲宗合电影| 极品后入免费视频| 在线亚洲精品久久久| 性感女人网页在线观看视频| 欧美最婬乱婬爆婬性视频 | 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 亚洲av青草久久一区二区| 丝袜天堂网| 亚洲成人妻日韩在线| 97se综合网| 嗯嗯嗯,草死我| 91国产精品熟女| 东京热激情视频一二三区| 免费视频a级毛片免费视频| 日本激情免费大片| 手机看片1024你懂的国产| 日韩国产乱子伦App| 久操凹凸视频| julia高潮后不停追击中出| 97av在线视频| 91久热这里只有精品| 中文伊人大香蕉视频| 少妇超碰在线| 亚洲aw毛茸茸在线| 69久久久久久久久久久久久| 97超碰总站| 91热色| 中文字幕免费在线观看| 欧美日韩亚洲天堂| 欧美日韩国产另类综合| 国产女人成人精品视频| 又黄又爽在线观看视频| 日本不卡高清免v欧美日韩在线观看| 欧美|91色综合| 熟妇女人妻呻吟久久AV| 青青三级视频| 日本 情色 1区| 中文字幕欧美丝袜07资源| se吧提供国产乱老熟视频胖女人| 久久久久人妻二区精品叶可怜| 把腿张开老子CAO烂你| 国产精品久久久三级无码| 亚洲AV免费在线| 麻豆亚洲Av成人无码一区精品| 91欧美偷拍| 97频视在线| 夜夜夜夜久久久久| 乱伦图一区| 日韩操人| 日本精品免费一区二区三区四区| 蜜臀AV午夜精品久| 第四色奇米影视777| av片在线观看免费播放| 91色黑人少妇| 啊啊啊啊好多水| 色哟哟AⅤ| 国产原创剧情在线丝袜| 欧美久久久15P| 91天天综合在线观看| 超碰97亚洲| 日韩欧美综合激情| 91夜夜蜜桃臀1区2区3区| 国产乱不卡| 秋霞一集毛片观看| 七久久久| 亚洲天堂一区二区| 亚洲aV无码成人在线观看| 国产suv精品一区二区四| 欧美日本视频一区| 翔田千里AⅤHD无码| 思思99热| nuu12国产麻豆精品| 高清一区AV无码| 男人的天堂亚洲| 九一国产精品| 嗯啊抽插大香蕉网页| 熟女精品一区二区三区| 热久久无毒不卡| 高潮的A片激情扒开一区| 日韩人妻资源网| 韩日欧亚a级| 精品一区二区综合熟妇| 啊啊啊啊啊好大好舒服想要| 人人摸人人入| 亚洲色欲一区二区三区| 97香蕉网| 亚洲少妇喷视频看| 密臀在线一区尤物| 欧美做爰无码A片视频| 欧美亚洲厕所精品偷拍91| 日韩一二三区| 67914亚洲精品| 国产又粗又长的视频| 操高情无码| 四虎视频在线观看| 国产日韩色综合| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 操操吧亚洲乱伦视频| www.婷婷五月天| 久久成人东京热人妻| 91动漫操逼视频| 五毛骚逼极品美女怕怕| 永久免费发布性爱网| 日本99一区二区| 秋霞操逼片| 快点操死我| 九九精品无码专区免费| 97这里只精品| 日本性爱不卡视频| 玖日综合网| 婷婷丁香在线| 亚洲图片欧美色| AV天天综合| 9国产超碰| 美骚妇av高清在线| 在线v中文字幕一区二区三区| 日本高清一本二本免费不卡| 9久久精品| 亚洲欧美小说| 超碰97久久观看| 在线无码操| 青青草大香蕉视频| 日韩午夜国产| 任你草| 12一15性XXXX粉嫩国产| 色网1| 少妇滛荡视频| 日韩免费高清大片在线| 美女网站黄页| 久久嫩草国产成人一区| 亚洲综合九九| 欧美不卡在线一区二区| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | A级毛片在线看免费| 亚欧美综合网。| 久草福利在线资源站| 九九九国产| 大吊色| 欧美性爱精品一区二区| 激情小说亚洲| 免费国产| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 亚洲人妻精品一区二区| 天美传媒AV国产在线| 亚洲欧洲综合视频在线| 超碰在线欧美性爱激情| 日比av无码| 国产精品久久久久久久免牛肉蒲团 | 色综合五月天| 久操网址| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲成A∨人影院在线欢看| 亚洲国产天堂| 91成人久久| 中文字幕视频一区视频二区| 国产女人成人精品视频| 狠狠操官网| 久久精品国产亚洲av水密被窝| 欧洲精品在线播放| 中文字暮97| 自偷自拍的亚洲视频| 伊人网青青| 97中文字幕九区| 综合97亚洲| 91嫩草欧美| 首页亚洲国产高跟丝袜诱惑视频 | 狠狠躁天天躁日日躁| 亚洲夜色在线| 好吊妞转入那个网| 91操人视频| 国产高清精品福利| 人人操,操人人| 国产精品ⅴ无码大片在线看.| 久久久久白虎| 97操碰| 欧美性少妇| 嗯嗯啊啊啊啊轻点视频| 国产熟女二区| www.男人天堂| 加勒比AV天堂| 国产女同性恋视频| 国产精品第二页| 东北老女人的激情视频| 国产熟妇一区二区| 久久精品夜色国产亚洲AV| 一区二区三区男女操逼黄色小电影| 欧美激情综合色综合啪啪五月| A片 AV一级在线播放观看免费| 一级黄色性爱A级片| 熟妇xxxxx性春色| 国产精品久久天天干| 久久永久无码人妻视频| 日本黄大片在线观看视频| 午夜小电影在线插入淫高潮| 51国产午夜精品视频| 国产精品com| 欧美日韩午夜精品一区二区三区| 色视频蜜乳| 操日韩第| 久久久网站| 99热这里只有精| 日韩免费人妻色情网站| laoshunv91| 啊啊啊啊好大好硬啊啊啊啊啊 | 激情综合网激情综合| 亚洲国产精品无石码久久| 91天天| 91久久九九精品国产综合| 日韩激情毛片一级久久久| 国产专区第一页| 精品性爱一区二区| 人妻少妇视频在线播放| 东京成人一区| 小电影欧美91| 强奸抽插av| 亚洲一级性爱视频免费看| 精品人人插人人操| 欧美日韩99精品麻豆传媒| 精品国产99| 夜夜青青无码影院| 久久久96| 蜜乳AV一区二区三区四| 白嫩嫩一区| 一本大道综合伊人精品热热| 日本大香蕉综合网红本杳社区| 激情五月天中文字幕色| 啪一啪免费视频| 97超碰jingpin| 欧美高潮| 在线播放成人高清免费视频 | 伊人国产视频| 亚洲欧美碰碰| a天堂视频| 亚洲丝袜色| 国产精品久久久久久久免牛肉蒲团| 大茄子熟女AV导航| 377p欧洲日本亚洲大胆| 伊人综合色网| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 免费的很黄很污的全部视频| 国产刺激视频| 99re在线视频国产| 中文字幕第9页萱萱影音先锋| 国产操偷| 麻豆天美传媒在线视频天堂| 欧美无圣光在线| 在线欧美亚洲| 日韩丝袜二区| 亚洲诱惑天堂| 狼狼色丁香久久婷婷综合五月| 爽爽淫人网| 九七人妻在线| 园内精品自拍视频在线播放| 嗯啊免费视频| 久久精品导航| 色综合网1| 麻豆 亚洲 97| 日韩欧美大力操| 偷拍欧美综合| 国产成人五月天丁香花| 99热只有这里有精品| 九九九九九九成人| 成人午夜高潮av猛片| 色人久久| 91白虎| 立川理惠加勒比无码| 日韩天天本| 74成人在线| 亚洲一二三四区机械| 舔足天天操天天射| 夜夜爽33333| 九t超碰| 五月婷婷基地| 国产一区在线播放| 9/A片| 精品人妻一区二区免费蜜桃视频| 99啪啪| 黑白配性爱AV成| 欧美视频边做饭边橾| 九一国产精品| 精品超碰国产| 最新制服中文第一页| 五月香婷婷| 这里只有精品97| 婷婷五月天综合网| 大香蕉久久| 蜜桃久久久久久| 老熟女乱伦一区| 操B久久| 亚洲欧美综合区自拍另类| 国产第11页| 国产精品视频精品一二| 成人国产二区三区在线,男女精品。| av中文在线| 精品人妻av区天天看片| 久久国产精品,久久国产| 久热影视| 日日干夜夜欢| 屌逼麻豆| 国产精品精品系列在线观看| 操亚州| 国产又粗又长又爽又色| 黄色无码高清黄色无码网站| 欧美暴力猛交| 丁香五月婷婷啪啪| 日本潮催一卡操| 亚洲美女黄色| 欧美日韩资源在线| 另类成人首页一区| 五月天偷拍| 国产亚洲精品激情| 国产嫩草精品A88AV| 亚洲AV无码| 成人 日本A片无码8888| 97色碰| 97视频新免费| 久久久久国产亚洲一区欧美色图日韩| 秋霞久久亚洲精品成人| 久久国产乱子伦精品免费女,网站| 国产AV天美| 久99| 日本三级网页| 东北少妇高潮zzzz| 99999国产| 小明看看网址| 亚洲精品久久久久久久久豆丁网| 亚洲色图日韩精品| 亚洲日韩在线a不卡99精品| 欧美日日人人天天| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 久热久操| 天天透伊人| 伊人女女资源在线观看| 97无码视频在线播放| 暴力av在线| av72网| 日韩欧美麻豆大片| 六月丁香五月婷婷| 日韩欧美字幕亚洲一区二区| 操逼逼一区视频| 欧美人妻制服| 99色热| 97爱啪| 69久久久久久久久久久久久| 在线综合 亚洲 欧美中文字幕 | 亚洲精品1区| 中文字幕精品丝袜| 久久久精品国产亚洲伊人| 操逼操操操91| 三级片网站在线播放| 密乳无码| 蜜桃视频成a人v在线| 97资源视频| 国产精品精品系列在线观看| 久久超碰网| 色97干| 男人天堂毛片| 久久久久久久久久久久97| 久久中文字幕女同性恋一区| 香蕉色网| 精品免费成人久久| 小电影欧美91| 天天综合官网| 欧美中文综合| wwwxxx日本爽| 97任你吞精| 日产狠狠干| 久久老子无码午夜伦不卡| 国产自产自拍| 夜间福利片1000无码| 免费看国产曰批40分钟怎么下载| 国产精品视频麻豆入口| 亚洲国产精品有声| 天天做日日做天天欢。| 亚洲熟女中文字幕在线| 色5月婷婷| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 欧美丰满熟妇XXXX性ppX人交| 69精品久久久久中文字幕| 中文字幕狠狠玩| 欧美日韩第一页| 天天综合色| 中文字幕一区 二 区 三 四 五 区日 日 骚| 欧美日韩999| 96AV精品| 综合天天网| 日本97久久| 成人国产二区三区在线,男女精品。| 香蕉99秘 一区精品蜜桃臀| 大肥女高潮bbwbbwhd视频| 亚洲中文字幕熟女| 95自拍视频在线观看| 色婷婷九月天天综合| 99亚洲天堂| 欧美 中文字幕 一区| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久久中文| 人人爽天天爽| 亚洲性猛交| 91精品导航| 三级日韩一区二区三区| 成人无码影片视频在线| 综合网,亚洲,欧美| 999 久久久| 九热中文字幕| 国产h片在线观看视频| 亚洲少妇喷视频看| 夜夜骑天天燥| 综合网欧美| 亚洲天堂7777| 日日日啊啊啊| 欧美日韩狠狠爱| 性爱视频无打码在线观看| 精品婷婷| 亚洲国产丝袜在线观看| 国产日韩久久| 综合自拍| 18岁禁 茉莉成人久久| 欧美热图99| 在线播放一级无码视频| 97香焦色区| 亚洲自拍青操视频| 天天干天天燥| 亚洲色吧网| 亚洲综合另类色图| 九月丁香婷婷色| 青青欧美在线| 97免费视频在线| 干婷婷综合网| 综合91网| 两女互慰AV高潮喷水在线观看| 丁香五月性| 偷拍2020| AV一起草在线| 熟妇人妻一区二区| 久久免费少妇| 欧美日韩成人在线| 中文字幕乱偷人妻久久艾草网| 综合伊人网12色| 深夜操逼网| 国产91 丝袜在线播放 | 2020视频1区2区3区| 国产亚热在线久久| 亚洲乱码国产乱码精网站| 骚熟女吞| 变态乱伦伪娘灌肠一区二区| 亚洲熟女综合| 免费家庭乱伦视频| 中文字幕在线观看AV| 天天网综合| 亚洲五月丁香花狠狠干一区二区三区 | 亚洲美女精品九九视频| 亚洲丁香花色| 国产成人五月天丁香花| 天天日天天爽| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 3p国产色噜噜一区| 欲色啪| 在线强奷到舒服的无码视频 | 九月丁香婷婷色| 成人一区二区三区四区| 这里只有精品视频在线观看麻豆| 神马久久69| 亚洲高清91| 超碰在线人人射| 在现视频女上位好爽| 人人操人人摸人人骑| 丝袜夫妻自拍| 极品欧美一区二区三区| 伊人丝袜美腿高跟在线观看高清| 国产一级特黄大片处女| 久噜噜| 国产区性爱在线视频秋霞豆| 久热网| 性吧在线视频| 狠狠操,使劲操| 91国产美女丝袜足交精品视频 | 免费综合亚洲中文| 青草地一本线一区二区三区| 国产黄a三级三级三级av在线看| 国产主播福利| 欧美中字不卡| 日本福利社| 囯戸精品高潮呻吟旡码| 久热99999| 亚洲性爱高潮影院| 欧美综合娱乐久久| 人妻少妇精品久久久久久| 性欧美另类高清| 先锋激情∨在线视频播放| 春色综合免费| 国产自产91区13区| 96久久精品一二三区色欲| 免费视频一二三区| 精品国产乱码久久久兰草影视| 在线日韩视频| 中文字幕AV乱伦| 老熟女天天操| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美高清16| 亚洲欧美日韩有码| 日本女人操逼| 一类av片在线看| 欧美日韩色| 天堂伊人久久| 国产精品老熟女一区二区| 国产人妖视频一区在线观看| 天天92av| 公司1区2区3区精产精| 淫色网综合| 乱伦熟女区| 亚洲无码超碰免费| 伦理第一页| 在线小视频| 亚洲激情 欧美色图| 色欲天天综合网| 操操逼操操逼操操逼逼| 亚洲中文字幕精品一区| 久久综合97| 久久亚洲日韩国产欧| 操逼精品视频| 麻豆天美电影一区二区| 99热这里是精品| 日韩亚洲国产视频| 岛国在线国产| 久久精品一区二区三区四区五区| 好色美女九七第一页| 在线黄色污污网站| 校园春色综合色| 亚洲,欧美,春色,另类| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲乱色熟女一区| 天天射天天操天天干天天吃2018 | 久久av成人无码免费| 两女互慰AV高潮喷水在线观看| 国产精品视频在线观看| 亚洲人妻色图| 色天天野狼综合社区| 亚洲国产丝袜在线观看| 少妇内射www在线观看视频| 91色黑人少妇| 啊啊啊啊啊操我视频| 欧美亚州手机在线| 亚洲91少妇| 久久人妻丝袜一区二区三| 亚洲精品视频在线| 激情综合五月| 天天日天天插| 一区二区激情国产熟女| 亚洲成人av色网| A V少妇特黄三级| 在线观看一卡二卡| 久久久久久夜夜夜夜夜| 男女打扑克高清网站| 综合色图,成人综合网| 国产精品久久久亚洲一区| 狠狠 91| 按摩中文字幕| 成人A片男人的天堂| 欧美日韩大陆黑人少妇99| 亚洲中文字幕日产无码久久| 中文字幕十五区| 精品久久九| 啊啊啊轻点在线观看| 日韩干B| 中文字幕三四五区| 中文字幕丰满子伦无码专区在线视频最新 | 超碰日韩美妻| 人妻丰满熟妇av无码区蜜桃| julia国产在线 | 岛国免费黄色网址| 3D污黄视频在线观看| 久久久精品成人国产| 欧美国产日韩清纯唯美| 一区中文字幕二区日韩| 超碰97久久观看| 极品出轨视频网站| 亚洲天堂一区| 强奸国产在线| 色五月婷婷在线| 91精品人妻一区二区三区蜜桃臀| 日韩少妇无吗| 人妻熟女一区二区三区视频| 国产又黄又爽| 国产白嫩漂亮KTV在线| 99人人干| AV丝袜少妇| #NAME?| 亚洲影院无码在线| 国产精品成人无码av无码免费| 97天天爽| 亚洲色图自拍| 久草加勒比一区在线| 亚洲国产奇米影视久久| 五月天婷婷综合网| 97精品国产手机| 欧美天堂在线| 美女极品一区二区三区| 亚洲综合五月天| 亚洲色入欧美| 夜夜骑夜夜操| 亚洲黄网在哪免费看| 精品无码一区二区| 蜜臀99久久精品| 内射夫妻三片| 中文字幕一区av| 亚洲图片 激情小说| 加勒比海色香蕉婷婷| 国产男人又猛又粗又爽| 暖暖精品二区三区观看| 清纯唯美第一页| 午夜男人av| 三级片大波波| 91中文字幕制服丝袜免费视频| 亚洲 日本 国产 综合| 黄污污污污| 一级免费精品| 成全在线观看免费观看| 青青草在线成人视频| 竹菊一区二区三区AV线| 国产极品99热在线播放69| 美女97超碰| 欧美激情专区| 久操热| 爱丝福利| 久久久亚洲欧美综合| 久久有码| 沈阳熟女高潮对白视频| 东京日日夜夜| 97久久超碰国产精品| 亚洲制服欧美另类内射| 蜜臀久久久| 91久久免费视频互動交流| 久热色情精品| 欧美天天射| 久久人妻视频网| 欧美性高潮| 久久人人爽人人爽人人片Ⅴ| 青青草久久| 操逼国产免费| 鸥美极品| 青青伊人这里只有精品| 成熟熟女国产精品一区二区| 亚洲国产欧美一区二区潘金莲| 丝袜性亚洲| 久久日韩精品一区二区| 人人摸人人干| 欧美日韩啪啪电影| 亚洲情色在线| 亚洲国产精品9999在线观看| 超碰97最新人妻| 中文字幕日韩人妻视频| 精品小视频在线| 狠狠中文字幕| 青青草导航在线视频| 久久久久国产一区二| 人妖欧美一区二区| 婷婷色五月激情| 色图四区| 丰满人妻一区二区三区在线| 丰满人妻被猛烈进入中| 自拍视频大全亚洲专媒视频/一区二区三区 | 日本一区二区三区免费观看| 99抽插| 国产极品美女高潮无套在线观看| 久久精品中文字幕女同| 97香蕉碰碰人妻国产欧美| 欧美色九九| 九九久久一区二区三区| 国产成人精品必看| 国产精品69久久久久孕妇欧美| 中文字幕av乱伦| 国产精品96久久久久久| 校园春色综合色| 夜嗨影院| 欧美日韩亚洲天堂| 嗯嗯啊啊亚欧精品| 午夜爽爽爽在线观看永久入口姬片| 2017天天操天天日| 日本一二区免费| 日韩亚洲精品一区二区| 男人的天堂VA| 熟啊v色欧美热| 日韩黄色成人性爱| 日韩成人性日韩成人性爱视频在线免费观看| 日日橹狠狠爱欧美超碰| 视频分类 国内精品| 蜜臀中文字幕| 久久99精品国产| 婷婷综合在线| 久久天天艹| 这里只有97精品| 97视频620| 人妻久久久久久| 色婷婷激一区二区三区| 97操| 国产精品农村妇女精品| 自拍视频大全亚洲专媒视频/一区二区三区 | 亚洲欧洲国产综合av| 日本操逼视频免费| 99re在线视频这里只有精品| 蜜臀精品1区2区| 一区在线观看中文字幕| 久久草草亚洲蜜桃臀| 后入人妻无码| 欧美日韩婷婷中文| 天天综合色电影| 熟妇操花| 亚洲 日本 国产 综合| 欧综合网| 精品国产乱码久久久久久日本公司| 日本美女性生活久久久久久久| 国产伦乱91| 亚欧免费| 青娱乐999| 一二三区精品视频| 少妇精品久久久八区九区| 美女淫穴| 中文字幕91综合| 国产亚洲色婷婷久久99精品91| 一区二区三区黄色片a| 女人精品内射国产99| 欧美色图校园春色| 九久久精品| 亚洲熟女乱综合一区二区三区| 亚州成人a∨| 69超碰综合| 国产精品成人无码av| 思思性爱| 免费簧片在线观看| 95自拍视频在线观看| 乱操乱伦AV| 黑人免费福利视频| 91久久久久久久久18| 欧美色图亚洲色| 日韩大香蕉AV影片| 玖玖爱视频网站| 91操熟女视频| 色九色久| 青青操日韩| 超碰色美女| 麻豆天天躁天天揉揉AV| 欧美啪啪啪91| 九七超碰人人乐| 午夜精品久久久久久久第一页按摩| 老熟妇一区二区三区| 黑人干亚洲| 中文字幕av一区二区三区人妻少妇| 国产免费一区| 亚欧美综合| 黑白配性爱AV成| 欧美性爱超碰97| 精品一区二区三区丰满熟女-亚洲欧美一区| 桑老女人九区| 精品久久久久综合无码| 天天干嫩逼网| 97免费视频在线观看| 热99这里有精品综合久久 | 在线情色电影 91大 | 国产v片在线免费观看| 久久欲| 户外裸露刺激视频第一区| www.av在线观看| 五月婷婷色| 少妇被玩视频二三区| 久久色一区二区| 少妇激情AV| 好吊色青靑草| 天天操人人操狠狠插| 日韩一级片在线看| 夜夜中出国产| 97在线无精品| 嗯嗯啊啊啊好爽| 乱操乱伦AV| 蜜臀AV网站| 国产精品久久发布| 天天大干大香蕉| 极品肉射| 色综合天天| 色婷婷综合网| 鸥美插入视频| 香蕉精品二区二区| 日本高清视频xxxx| 香蕉综合网| 91黑丝美女| 欧美 亚洲精品首页| 久久久久久久伊人精品| 97色婷婷| 精品人妻一区二区三区夜夜| 2017天天插| 岛国黄色短视频| 中文字幕国产精品1区| 色偷偷超碰亚洲| 国产91福利小视频在线观看| 国产一区二区视频在线播放| 天天天肏屄欧美| 十八禁黄色| 不卡一区二区日本视频| 欧洲综合视频| 久热精品在线| 九九干| 后入内射蜜桃臀| 欧美欧美少妇| 美中日韩无码| 国产污视频麻豆传媒一区二区| 日本道人妻久久久在线不卡色视频| 大香蕉免费3| 国产欧美伊人| 久超碰这里只有精品| {男男暴菊gay无套网站| 亚洲男人天堂Av| 欧美日韩国产色五月综合在线 | 久久久久密臀视频| 乱伦熟女论坛| 丁香五月AV| 色欧美色交综合| 国模不卡| 久久、1234| 思思热在线视频在线| 99热在线观看| 欧美亚洲在线| 丰满人妻大屁一区二区| 国产精品电影推荐| 一本色道久久天天射天天干| 东京太热久久久| 色香综合| 色色亚洲| 91欧美经典| 大香蕉AV在线| 天堂亚洲精品| 丁香九月激情啪| 后入日本1234| 午夜国产成人福利视频| 亚欧洲一区二区视频| 性影在线视频| 亚洲性综合| 久操网址| 久久久一区二区| www黄片免费看com| 欧美日韩美女精品久草一区二区三区| 日韩在线一区高清在线| 密臀视频一区二区三区| 中国一级操逼视频| 色老牛| 特级丰满少妇一级AAAA爱毛片| 2019午夜福利视频| 一区二区视频在线播放| 中文子幕一二三| 国产成人精品日本亚洲语言| caorenqi shipin| 麻豆天美91| 夜色五月天| 亚洲色图图片| 一二三啪啪专区| 91欧洲国产成人久久精品网站| 好吊妞转入那个网| 综合另类| a天堂视频| 国产97av| 欧日韩不卡视.频| 天美传媒AV在线播放| 另类图片五月天| 国产又黄又爽| 麻豆精品A片免费观看| 亚洲国产精品V?在线播放| 校园春色综合色| 乱伦图一区| 97视频一区| 大香蕉伊人久久| 激情综合网亚洲| 夜夜狠狠躁日日躁色视频| 国产一区二区免费福利片| 免费草草草草草视频| 亚洲综合色婷婷| 国产三级中文字幕粉嫩| 九九久久综合| 国产高清午夜成人在线观看| 欧美暴力猛交| 91足交| 亚洲性天堂| 伊人网在线观看| 国产一区二区三区视频在线看| 亚洲电影91| 久久久98网站免费视频| 天天躁日日躁AAAAXXXX国产 | 91九九| 91天天综合网,天天综合网| 特级丰满少妇一级AAAA爱毛片 | 五月丁香社区婷婷日韩欧美精品影院 | 久久透逼视频| 色偷偷超碰亚洲| 超碰日本97美女人妻人人玩人人爱| 国产一区在线观看无码AV| 91热| 日韩精品熟妇| 婷婷99狠狠| 色色色欧美| 亚洲九九九| 9长久久精品| 九九热精品免费视频| 国产AV激情无码久久无码| 青青草公开在线免费不卡视频| 欧美日韩婷婷中文| 亚洲美乱| 曰韩成人免费视频| 91老熟妇| 日本一二三免费久久| 歐美性天天| 熟女啪啪视频| 加勒比在线视频一区二区三区| 日本成人在线不卡一区二区三区| 爱丝福利| 920日本午夜免费| 亚洲一区二区性爱电影| 中文人妻av高清一区|