欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

Kafka KRaft 深度解析:Raft 共識(shí)原理、部署實(shí)戰(zhàn)與故障排查

Kafka KRaft 深度解析:Raft 共識(shí)原理、部署實(shí)戰(zhàn)與故障排查 1. 從“會(huì)用的中間件”到“懂原理的工程師”為什么我要啃 Kafka Raft很多人用 Kafka 用了好幾年日常就是寫 Producer、調(diào) Consumer、偶爾看看 Lag覺得這套東西“會(huì)用就行”。但一旦集群出現(xiàn) Controller 頻繁切換、元數(shù)據(jù)不一致、Partition Leader 選舉卡住這類問題光靠翻文檔和重啟大法就完全不夠用了。我真正下決心把 Kafka Raft 從頭到尾捋一遍就是因?yàn)橐淮尉€上事故一個(gè)三節(jié)點(diǎn)的元數(shù)據(jù)集群在滾動(dòng)重啟后Controller 反復(fù)易主日志里全是選舉超時(shí)和日志截?cái)嘞嚓P(guān)的報(bào)錯(cuò)當(dāng)時(shí)團(tuán)隊(duì)里沒人能說清楚底層到底發(fā)生了什么。Kafka Raft準(zhǔn)確說是KRaftKafka Raft Metadata Mode是 Kafka 用來替代 ZooKeeper 做元數(shù)據(jù)管理的共識(shí)協(xié)議實(shí)現(xiàn)。它把原本托管在外部協(xié)調(diào)組件里的元數(shù)據(jù)——比如 Broker 注冊(cè)、Topic 配置、分區(qū)副本分配、ACL、ISR 變更——全部收回到 Kafka 自己內(nèi)部通過一個(gè) Raft 共識(shí)組來維護(hù)。這件事的意義不只是“少部署一個(gè)組件”而是讓元數(shù)據(jù)的讀寫路徑、一致性模型、故障恢復(fù)邏輯都統(tǒng)一到同一套體系里。這篇文章適合三類人看第一類是把 Kafka 當(dāng)黑盒用、但想搞清楚元數(shù)據(jù)層到底怎么運(yùn)轉(zhuǎn)的開發(fā)和運(yùn)維第二類是正在做 Kafka 版本升級(jí)、考慮從 ZooKeeper 模式遷移到 KRaft 的架構(gòu)同學(xué)第三類是準(zhǔn)備面試、被問到“Kafka 為什么能去掉 ZooKeeper”卻答不深的朋友。我會(huì)從設(shè)計(jì)思路、核心概念、實(shí)操部署、故障排查幾個(gè)角度把 KRaft 這套東西拆開講透盡量做到看完能自己搭一套、出問題能自己定位。2. KRaft 的整體設(shè)計(jì)與核心思路拆解2.1 為什么非要干掉 ZooKeeper要理解 KRaft得先理解 ZooKeeper 模式下的痛點(diǎn)。在舊架構(gòu)里Kafka 的元數(shù)據(jù)分成兩半一部分存在 ZooKeeper 的 znode 里比如 Broker 列表、Topic 配置、Controller 選舉另一部分存在 Controller 的內(nèi)存里比如分區(qū)狀態(tài)機(jī)、副本分配。這兩半之間靠 Controller 監(jiān)聽 ZooKeeper 事件來同步問題就出在這個(gè)“同步”上。當(dāng)集群規(guī)模變大比如上千個(gè) Broker、幾萬個(gè)分區(qū)Controller 需要處理的元數(shù)據(jù)變更事件會(huì)急劇膨脹。ZooKeeper 的 watch 機(jī)制在大量事件同時(shí)觸發(fā)時(shí)Controller 會(huì)收到海量通知然后串行處理很容易成為瓶頸。更麻煩的是Controller 切換時(shí)新 Controller 必須先從 ZooKeeper 全量拉取元數(shù)據(jù)再重建內(nèi)存狀態(tài)這個(gè)過程中整個(gè)集群的元數(shù)據(jù)操作基本處于半停滯狀態(tài)。我見過一個(gè)中等規(guī)模集群Controller 切換一次要花好幾分鐘期間新建 Topic、分區(qū)重分配全部卡住。KRaft 的思路是把元數(shù)據(jù)當(dāng)成一條日志流來管理。所有元數(shù)據(jù)變更都寫成一條條記錄追加到一個(gè) Raft 日志里然后由 Raft 協(xié)議保證這條日志在多個(gè)節(jié)點(diǎn)之間一致復(fù)制。每個(gè)節(jié)點(diǎn)都按相同順序回放這條日志最終得到完全一致的狀態(tài)機(jī)。這樣一來元數(shù)據(jù)不再有“兩半”而是單一事實(shí)來源Controller 也不再是單點(diǎn)瓶頸因?yàn)樵獢?shù)據(jù)日志本身就是高可用的。2.2 Raft 在 Kafka 里的角色定位Raft 本身是一個(gè)共識(shí)算法核心解決的是“多個(gè)節(jié)點(diǎn)如何就一系列操作達(dá)成一致”。它把問題拆成三塊Leader 選舉、日志復(fù)制、安全性約束。Kafka 并沒有直接照搬某個(gè)現(xiàn)成的 Raft 庫而是自己實(shí)現(xiàn)了一套原因在于 Kafka 的元數(shù)據(jù)場(chǎng)景有特殊需求。第一個(gè)特殊點(diǎn)是元數(shù)據(jù)日志和消息日志的分離。KRaft 里的 Raft 日志只存元數(shù)據(jù)不存用戶消息。用戶消息還是走原來的 Partition 副本機(jī)制。這樣 Raft 組的負(fù)載相對(duì)可控不會(huì)被消息流量拖垮。第二個(gè)特殊點(diǎn)是快照機(jī)制。Raft 日志不能無限增長否則重啟回放會(huì)越來越慢。KRaft 會(huì)定期對(duì)狀態(tài)機(jī)做快照然后把快照之前的日志截?cái)???煺绽锎娴氖钱?dāng)前完整的元數(shù)據(jù)狀態(tài)新加入的節(jié)點(diǎn)或者落后太多的節(jié)點(diǎn)可以直接拉快照不用從第一條日志開始回放。第三個(gè)特殊點(diǎn)是動(dòng)態(tài)成員變更。KRaft 支持在運(yùn)行中調(diào)整 Controller 節(jié)點(diǎn)集合比如從三節(jié)點(diǎn)擴(kuò)到五節(jié)點(diǎn)。這個(gè)過程中要保證不出現(xiàn)兩個(gè) Leader 同時(shí)存在的情況Raft 用聯(lián)合共識(shí)joint consensus的思路來處理Kafka 的實(shí)現(xiàn)里叫“動(dòng)態(tài) Quorum 重配置”。2.3 Controller、Broker、Quorum 三者的關(guān)系在 KRaft 模式下節(jié)點(diǎn)角色可以分成兩類Controller和Broker。Controller 負(fù)責(zé)元數(shù)據(jù)管理Broker 負(fù)責(zé)消息讀寫。一個(gè)節(jié)點(diǎn)可以同時(shí)扮演兩個(gè)角色也可以只做其中一個(gè)。生產(chǎn)環(huán)境里通常會(huì)把 Controller 和 Broker 分開部署避免元數(shù)據(jù)操作和消息流量互相干擾。Controller 們組成一個(gè)Quorum也就是 Raft 組。Quorum 里有一個(gè) Active ControllerLeader其余是 Standby。所有元數(shù)據(jù)寫請(qǐng)求都發(fā)給 Active Controller它把變更寫成日志條目復(fù)制給多數(shù)派然后應(yīng)用到自己的狀態(tài)機(jī)。Standby 們持續(xù)從 Leader 拉日志保持狀態(tài)同步。一旦 Leader 掛了Standby 里會(huì)重新選出一個(gè) Leader整個(gè)過程通常在秒級(jí)完成。Broker 則通過一個(gè)叫BrokerRegistration的機(jī)制向 Quorum 注冊(cè)自己定期發(fā)送心跳。如果 Broker 長時(shí)間不心跳Quorum 會(huì)把它標(biāo)記為下線并觸發(fā)分區(qū) Leader 重選舉。這里的關(guān)鍵是Broker 不直接參與 Raft 共識(shí)它只是元數(shù)據(jù)的消費(fèi)者和生產(chǎn)者通過 Controller 來間接操作元數(shù)據(jù)。3. 核心概念與關(guān)鍵機(jī)制深度解析3.1 日志、任期、索引Raft 的三塊基石Raft 日志里的每一條記錄都有一個(gè)偏移量Offset從 0 開始單調(diào)遞增。這個(gè)偏移量是全局唯一的所有節(jié)點(diǎn)上的同一條日志必須有相同的偏移量。日志條目里除了元數(shù)據(jù)變更內(nèi)容還帶著一個(gè)任期號(hào)Term。任期號(hào)是個(gè)單調(diào)遞增的整數(shù)每次 Leader 選舉都會(huì)加一。任期號(hào)的作用是區(qū)分不同 Leader 的日志防止舊 Leader 的殘留日志被誤認(rèn)為有效。選舉過程中候選人會(huì)把自己的任期號(hào)加一然后向其他節(jié)點(diǎn)拉票。其他節(jié)點(diǎn)如果發(fā)現(xiàn)候選人的任期號(hào)比自己大就更新自己的任期號(hào)并投票如果發(fā)現(xiàn)候選人的日志不如自己新就拒絕投票。這里“日志新不新”的比較規(guī)則是先比最后一條日志的任期號(hào)任期號(hào)大的更新任期號(hào)相同再比偏移量偏移量大的更新。這個(gè)規(guī)則保證了新選出的 Leader 一定擁有最完整的日志不會(huì)丟失已經(jīng)提交的條目。索引Index在 KRaft 里有兩個(gè)層面。一個(gè)是日志偏移量另一個(gè)是快照索引??煺帐菍?duì)狀態(tài)機(jī)在某個(gè)偏移量上的完整記錄。當(dāng)節(jié)點(diǎn)重啟時(shí)它會(huì)先加載最新的快照然后從快照對(duì)應(yīng)的偏移量之后開始回放日志。這樣就不用從零開始重建狀態(tài)啟動(dòng)速度大幅提升。3.2 Leader 選舉什么時(shí)候選、怎么選、選不出來怎么辦Leader 選舉的觸發(fā)條件主要有三個(gè)集群啟動(dòng)時(shí)沒有 Leader、Leader 心跳超時(shí)、Leader 主動(dòng)退位。心跳超時(shí)時(shí)間由controller.quorum.election.timeout.ms控制默認(rèn)是 1000 毫秒。也就是說如果 Follower 超過 1 秒沒收到 Leader 的心跳就會(huì)認(rèn)為 Leader 掛了開始新一輪選舉。選舉過程是這樣的Follower 先變成 Candidate任期號(hào)加一投自己一票然后向其他所有節(jié)點(diǎn)發(fā)送 RequestVote 請(qǐng)求。其他節(jié)點(diǎn)收到請(qǐng)求后先比較任期號(hào)再比較日志新舊決定是否投票。如果 Candidate 拿到了多數(shù)派的票就變成 Leader開始發(fā)送心跳。如果這一輪沒選出來就等待一個(gè)隨機(jī)超時(shí)controller.quorum.election.backoff.max.ms然后任期號(hào)再加一重新發(fā)起選舉。選不出來最常見的原因是網(wǎng)絡(luò)分區(qū)或者節(jié)點(diǎn)數(shù)不滿足多數(shù)派。比如三節(jié)點(diǎn) Quorum 掛了一個(gè)剩下兩個(gè)還能選掛兩個(gè)剩下一個(gè)永遠(yuǎn)選不出來因?yàn)槟貌坏蕉鄶?shù)派。這時(shí)候集群會(huì)進(jìn)入不可用狀態(tài)元數(shù)據(jù)寫操作全部阻塞。所以生產(chǎn)環(huán)境里 Quorum 節(jié)點(diǎn)數(shù)必須是奇數(shù)三節(jié)點(diǎn)能容忍一個(gè)故障五節(jié)點(diǎn)能容忍兩個(gè)。3.3 日志復(fù)制與提交數(shù)據(jù)怎么寫進(jìn)去、什么時(shí)候算寫成功客戶端發(fā)來的元數(shù)據(jù)寫請(qǐng)求比如創(chuàng)建 Topic會(huì)先到 Active Controller。Controller 把請(qǐng)求轉(zhuǎn)成一條日志條目追加到自己的本地日志末尾然后并行發(fā)送給所有 Follower。Follower 收到后先寫入本地日志然后返回確認(rèn)。當(dāng) Leader 收到多數(shù)派的確認(rèn)后就把這條日志標(biāo)記為已提交Committed然后應(yīng)用到狀態(tài)機(jī)最后返回給客戶端成功。這里有個(gè)關(guān)鍵點(diǎn)已提交的日志一定會(huì)被所有未來的 Leader 包含。Raft 通過選舉限制來保證這一點(diǎn)——只有擁有最完整日志的節(jié)點(diǎn)才能當(dāng)選 Leader。所以即使某個(gè) Follower 落后很多它也不可能在落后狀態(tài)下當(dāng)選從而避免了已提交數(shù)據(jù)丟失。日志復(fù)制是流水線式的Leader 會(huì)維護(hù)每個(gè) Follower 的nextIndex和matchIndex。nextIndex是下一條要發(fā)給該 Follower 的日志偏移量matchIndex是該 Follower 已經(jīng)確認(rèn)復(fù)制的最高偏移量。如果 Follower 的日志和 Leader 不一致Leader 會(huì)逐步回退nextIndex直到找到一致點(diǎn)然后從那里開始覆蓋 Follower 的沖突日志。這個(gè)過程叫日志修復(fù)。3.4 快照機(jī)制日志不能無限長怎么截?cái)郣aft 日志如果一直不清理磁盤會(huì)爆重啟回放也會(huì)慢到無法接受。KRaft 的解決辦法是定期做快照??煺盏膬?nèi)容是當(dāng)前狀態(tài)機(jī)的完整序列化比如所有 Topic 的配置、所有分區(qū)的副本分配、所有 Broker 的注冊(cè)信息??煺丈珊髮?duì)應(yīng)的日志就可以被截?cái)嘀槐A艨煺拯c(diǎn)之后的日志??煺盏挠|發(fā)條件由controller.quorum.snapshot.interval.ms控制默認(rèn)是 10 分鐘。也就是說每隔 10 分鐘Controller 會(huì)把當(dāng)前狀態(tài)機(jī)做一次快照。如果日志增長太快也可以基于日志條數(shù)觸發(fā)由controller.quorum.snapshot.interval.records控制。新節(jié)點(diǎn)加入 Quorum 時(shí)如果它的日志落后太多Leader 會(huì)直接發(fā)一個(gè)快照給它而不是逐條回放日志。這個(gè)機(jī)制叫InstallSnapshot??煺諅鬏斒欠謮K的避免一次性傳輸大文件導(dǎo)致網(wǎng)絡(luò)阻塞。節(jié)點(diǎn)收到快照后先加載快照再從快照點(diǎn)開始拉后續(xù)日志。4. 實(shí)操部署從零搭一套 KRaft 集群4.1 環(huán)境準(zhǔn)備與版本選擇KRaft 模式從 Kafka 2.8 開始有實(shí)驗(yàn)性支持3.3 之后基本穩(wěn)定3.5 以后生產(chǎn)可用。我建議至少用 3.6 或更高版本因?yàn)樵缙诎姹驹趧?dòng)態(tài) Quorum 重配置和快照恢復(fù)上還有一些邊界問題。JDK 用 17 或 21 都行Kafka 對(duì) JDK 17 的支持已經(jīng)很成熟。假設(shè)我們要搭一個(gè)三節(jié)點(diǎn) Quorum 三節(jié)點(diǎn) Broker 的集群但為了演示方便先用三個(gè)節(jié)點(diǎn)同時(shí)扮演 Controller 和 Broker 角色。每臺(tái)機(jī)器配置 4 核 8G 起步磁盤用 SSD因?yàn)?Raft 日志對(duì) fsync 性能比較敏感。網(wǎng)絡(luò)延遲要低Quorum 節(jié)點(diǎn)之間最好在同一個(gè)機(jī)房或同一個(gè)可用區(qū)跨機(jī)房部署會(huì)顯著增加選舉超時(shí)和日志復(fù)制延遲。4.2 關(guān)鍵配置項(xiàng)逐條解讀KRaft 模式下server.properties里最核心的幾個(gè)配置如下process.rolescontroller,broker node.id1 controller.quorum.voters1node1:9093,2node2:9093,3node3:9093 listenersPLAINTEXT://node1:9092,CONTROLLER://node1:9093 controller.listener.namesCONTROLLER listener.security.protocol.mapCONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT log.dirs/data/kafka-logs controller.quorum.election.timeout.ms1000 controller.quorum.election.backoff.max.ms1000 controller.quorum.fetch.timeout.ms2000process.roles決定這個(gè)節(jié)點(diǎn)是 Controller、Broker 還是兩者兼有。生產(chǎn)環(huán)境建議分開用獨(dú)立的 Controller 節(jié)點(diǎn)避免 Broker 的 IO 壓力影響元數(shù)據(jù)一致性。controller.quorum.voters是靜態(tài) Quorum 配置格式是idhost:port所有節(jié)點(diǎn)必須配置一致。controller.listener.names指定 Controller 通信用的監(jiān)聽器名稱必須和listeners里的對(duì)應(yīng)。controller.quorum.election.timeout.ms是選舉超時(shí)默認(rèn) 1000 毫秒。如果網(wǎng)絡(luò)延遲高可以適當(dāng)調(diào)大比如 2000 毫秒。但調(diào)太大意味著故障發(fā)現(xiàn)變慢Leader 掛了之后要等更久才能重新選出來。controller.quorum.fetch.timeout.ms是 Follower 拉日志的超時(shí)默認(rèn) 2000 毫秒通常不用改。4.3 格式化與啟動(dòng)流程第一次啟動(dòng)前必須對(duì)每個(gè)節(jié)點(diǎn)做格式化生成初始的元數(shù)據(jù)目錄。命令是bin/kafka-storage.sh random-uuid這個(gè)命令會(huì)生成一個(gè)集群 UUID所有節(jié)點(diǎn)必須用同一個(gè) UUID。然后對(duì)每個(gè)節(jié)點(diǎn)執(zhí)行bin/kafka-storage.sh format -t cluster-uuid -c config/kraft/server.properties格式化會(huì)創(chuàng)建log.dirs下的meta.properties文件里面記錄了集群 ID 和節(jié)點(diǎn) ID。注意格式化只能在集群第一次啟動(dòng)前做如果已經(jīng)有數(shù)據(jù)重新格式化會(huì)清空所有元數(shù)據(jù)相當(dāng)于把集群重置了。啟動(dòng)順序上先啟動(dòng)所有 Controller 節(jié)點(diǎn)等 Quorum 選出一個(gè) Active Controller 后再啟動(dòng) Broker 節(jié)點(diǎn)。可以用bin/kafka-metadata-quorum.sh --bootstrap-server node1:9092 describe --status查看 Quorum 狀態(tài)確認(rèn) Leader 是誰、Follower 是否同步。4.4 驗(yàn)證集群是否正常集群起來后先創(chuàng)建一個(gè)測(cè)試 Topicbin/kafka-topics.sh --bootstrap-server node1:9092 --create --topic test-kraft --partitions 3 --replication-factor 3然后查看 Topic 描述確認(rèn)分區(qū) Leader 和 ISR 都正常。再往 Topic 里發(fā)幾條消息用 Console Consumer 消費(fèi)出來驗(yàn)證消息鏈路沒問題。最后可以手動(dòng) kill 掉 Active Controller 進(jìn)程觀察 Quorum 是否在幾秒內(nèi)重新選出 LeaderBroker 是否正常重新注冊(cè)。這個(gè)過程能幫你直觀感受 KRaft 的故障恢復(fù)能力。5. 常見問題與排查技巧實(shí)錄5.1 Quorum 選不出 Leader 怎么辦這是最常見的問題表現(xiàn)是元數(shù)據(jù)操作全部超時(shí)日志里反復(fù)出現(xiàn)Election timeout和RequestVote相關(guān)記錄。第一步先確認(rèn) Quorum 節(jié)點(diǎn)數(shù)和存活數(shù)。三節(jié)點(diǎn) Quorum 掛兩個(gè)剩下一個(gè)永遠(yuǎn)選不出來這是數(shù)學(xué)上的必然不是 bug。用kafka-metadata-quorum.sh describe --status看當(dāng)前 Quorum 里有多少節(jié)點(diǎn)在線。如果節(jié)點(diǎn)都在線但選不出來檢查網(wǎng)絡(luò)連通性。Controller 之間的通信端口默認(rèn) 9093必須互通防火墻、安全組、DNS 解析都要確認(rèn)。我遇到過一次三臺(tái)機(jī)器里有一臺(tái)的 hostname 解析到了錯(cuò)誤的 IP導(dǎo)致另外兩臺(tái)收不到它的投票響應(yīng)選舉一直失敗。還有一次是 MTU 不匹配小包能通大包被丟日志復(fù)制正常但選舉請(qǐng)求偶爾超時(shí)。5.2 日志復(fù)制卡住或延遲高如果 Follower 的matchIndex長時(shí)間不推進(jìn)說明日志復(fù)制出了問題。先看 Leader 和 Follower 的磁盤 IORaft 日志寫入是 fsync 的磁盤慢會(huì)直接拖垮復(fù)制速度。用iostat看await和%util如果磁盤利用率長期 100%考慮換 SSD 或降低日志寫入頻率。另一個(gè)常見原因是日志修復(fù)循環(huán)。如果 Follower 的日志和 Leader 差異太大Leader 會(huì)不斷回退nextIndex試圖找到一致點(diǎn)這個(gè)過程可能很慢。如果差異超過快照范圍Leader 應(yīng)該直接發(fā)快照而不是逐條回退。檢查controller.quorum.snapshot.interval.ms是否設(shè)置合理太小會(huì)導(dǎo)致頻繁快照太大又會(huì)導(dǎo)致日志修復(fù)變慢。5.3 快照生成失敗或加載慢快照生成失敗通常是因?yàn)榇疟P空間不足或者狀態(tài)機(jī)太大。快照文件默認(rèn)存在log.dirs下的__cluster_metadata-0目錄里如果磁盤滿了快照寫不進(jìn)去日志就無法截?cái)嘧罱K磁盤徹底爆掉。監(jiān)控磁盤使用率預(yù)留至少 30% 的余量??煺占虞d慢一般發(fā)生在節(jié)點(diǎn)重啟時(shí)。如果快照文件很大加載需要時(shí)間期間節(jié)點(diǎn)無法參與選舉??梢哉{(diào)大controller.quorum.election.timeout.ms給節(jié)點(diǎn)更多時(shí)間完成加載。另外快照文件是二進(jìn)制格式不要手動(dòng)修改否則會(huì)導(dǎo)致狀態(tài)機(jī)不一致。5.4 動(dòng)態(tài)擴(kuò)縮容 Quorum 的注意事項(xiàng)KRaft 支持動(dòng)態(tài)調(diào)整 Quorum 成員但操作必須謹(jǐn)慎。擴(kuò)容時(shí)先把新節(jié)點(diǎn)格式化并啟動(dòng)然后用kafka-metadata-quorum.sh add-controller把它加入 Quorum。縮容時(shí)用remove-controller把節(jié)點(diǎn)移出。每次變更都會(huì)觸發(fā)一次聯(lián)合共識(shí)過程期間 Quorum 對(duì)多數(shù)派的要求會(huì)臨時(shí)變化必須確保網(wǎng)絡(luò)穩(wěn)定否則容易卡在中間狀態(tài)。我踩過的一個(gè)坑是縮容時(shí)一次性移除兩個(gè)節(jié)點(diǎn)結(jié)果剩下的節(jié)點(diǎn)數(shù)不滿足多數(shù)派整個(gè) Quorum 卡死。正確做法是一次只動(dòng)一個(gè)節(jié)點(diǎn)等 Quorum 穩(wěn)定后再動(dòng)下一個(gè)。另外動(dòng)態(tài)變更期間不要做其他元數(shù)據(jù)操作比如創(chuàng)建 Topic避免加重 Quorum 負(fù)擔(dān)。5.5 常見問題速查表問題現(xiàn)象可能原因排查手段解決方向元數(shù)據(jù)操作全部超時(shí)Quorum 無 Leader查看 Quorum 狀態(tài)和節(jié)點(diǎn)存活數(shù)恢復(fù)多數(shù)派節(jié)點(diǎn)檢查網(wǎng)絡(luò)選舉反復(fù)失敗網(wǎng)絡(luò)分區(qū)或時(shí)鐘漂移檢查 Controller 間連通性和 NTP修復(fù)網(wǎng)絡(luò)同步時(shí)鐘日志復(fù)制延遲高磁盤 IO 瓶頸iostat 看磁盤利用率換 SSD降低 fsync 頻率快照生成失敗磁盤空間不足df -h 看磁盤使用率清理空間或擴(kuò)容節(jié)點(diǎn)重啟后無法加入快照加載超時(shí)看日志里的快照加載記錄調(diào)大選舉超時(shí)檢查快照文件動(dòng)態(tài)擴(kuò)縮容卡住多數(shù)派不滿足查看 Quorum 成員列表逐個(gè)操作確保多數(shù)派在線6. 一些實(shí)操心得與避坑建議6.1 監(jiān)控指標(biāo)別只看 BrokerQuorum 才是重點(diǎn)很多人監(jiān)控 Kafka 只看 Broker 的請(qǐng)求延遲、消息吞吐、Consumer Lag但在 KRaft 模式下Quorum 的健康狀況才是元數(shù)據(jù)穩(wěn)定性的根基。必須監(jiān)控的指標(biāo)包括Active Controller 是否頻繁切換、選舉耗時(shí)、日志復(fù)制延遲、快照生成耗時(shí)和大小、Quorum 節(jié)點(diǎn)間的網(wǎng)絡(luò) RTT。這些指標(biāo)在 Kafka 的 JMX 里都有暴露比如kafka.controller:typeKafkaController,nameActiveControllerCount和kafka.server:typeMetadataQuorum,nameCurrentLeader。我建議給 Quorum 相關(guān)指標(biāo)單獨(dú)配告警。比如 Active Controller 在 5 分鐘內(nèi)切換超過 3 次或者日志復(fù)制延遲超過 500 毫秒就應(yīng)該立即介入。元數(shù)據(jù)層的問題會(huì)迅速放大到整個(gè)集群等到 Broker 開始報(bào)錯(cuò)再查就晚了。6.2 生產(chǎn)環(huán)境一定要 Controller 和 Broker 分離雖然 KRaft 允許一個(gè)節(jié)點(diǎn)同時(shí)做 Controller 和 Broker但生產(chǎn)環(huán)境強(qiáng)烈建議分離。原因很簡單Broker 承載消息流量磁盤 IO 和網(wǎng)絡(luò)帶寬波動(dòng)大Controller 需要穩(wěn)定的低延遲環(huán)境來維持 Raft 共識(shí)?;觳繒?huì)導(dǎo)致 Broker 的 IO 尖峰影響 Controller 的日志復(fù)制進(jìn)而拖慢整個(gè)元數(shù)據(jù)層。分離部署時(shí)Controller 節(jié)點(diǎn)配置可以低一些比如 2 核 4G但磁盤一定要用 SSD網(wǎng)絡(luò)要低延遲。Broker 節(jié)點(diǎn)按消息量配置和傳統(tǒng) Kafka 集群一樣。三節(jié)點(diǎn) Quorum 是最小生產(chǎn)配置五節(jié)點(diǎn)能容忍兩個(gè)故障適合對(duì)可用性要求更高的場(chǎng)景。6.3 升級(jí)和遷移要留退路從 ZooKeeper 模式遷移到 KRaft 不是一鍵操作Kafka 提供了kafka-metadata-quorum.sh和kafka-storage.sh來做遷移但過程比較復(fù)雜需要先做元數(shù)據(jù)快照再逐步切換。我的建議是先在測(cè)試環(huán)境完整走一遍遷移流程記錄每一步的耗時(shí)和可能的問題生產(chǎn)環(huán)境遷移前做好全量備份包括 ZooKeeper 數(shù)據(jù)和 Kafka 日志目錄遷移過程中保持 ZooKeeper 集群可用一旦 KRaft 出問題可以快速回滾。升級(jí) Kafka 版本時(shí)也要注意 KRaft 的兼容性。不同版本之間的 Raft 日志格式可能有變化跨大版本升級(jí)要先看官方升級(jí)指南確認(rèn)是否需要中間版本過渡。我見過一次從 3.3 直接升到 3.7結(jié)果快照格式不兼容節(jié)點(diǎn)起不來最后只能回滾重來。6.4 日志目錄的磁盤規(guī)劃KRaft 的元數(shù)據(jù)日志和快照都存在log.dirs下和消息數(shù)據(jù)共用磁盤。如果消息量很大元數(shù)據(jù)日志可能被擠到磁盤邊緣影響寫入性能。建議給元數(shù)據(jù)單獨(dú)掛一塊小容量 SSD通過log.dirs配置指向不同磁盤。元數(shù)據(jù)日志本身不大幾 GB 足夠但快照可能會(huì)到幾十 GB取決于 Topic 和分區(qū)的數(shù)量。另外log.dirs支持配置多個(gè)目錄Kafka 會(huì)把不同分區(qū)的日志分散到不同目錄。但元數(shù)據(jù)日志只會(huì)寫到一個(gè)目錄所以多目錄對(duì)元數(shù)據(jù)沒有幫助。如果元數(shù)據(jù)磁盤滿了整個(gè) Quorum 會(huì)停止工作所以這個(gè)目錄的磁盤使用率要重點(diǎn)監(jiān)控。6.5 時(shí)鐘同步不能忽視Raft 本身不依賴絕對(duì)時(shí)鐘但選舉超時(shí)和心跳超時(shí)是基于本地時(shí)鐘的。如果節(jié)點(diǎn)之間時(shí)鐘漂移太大比如一臺(tái)機(jī)器慢了幾秒它可能會(huì)誤判 Leader 心跳超時(shí)頻繁發(fā)起選舉導(dǎo)致集群不穩(wěn)定。生產(chǎn)環(huán)境必須配 NTP 或類似的時(shí)鐘同步服務(wù)確保 Quorum 節(jié)點(diǎn)之間的時(shí)鐘偏差在毫秒級(jí)。我遇到過一次時(shí)鐘漂移導(dǎo)致的問題一臺(tái) Controller 的時(shí)鐘比另外兩臺(tái)慢了 5 秒結(jié)果它每隔幾秒就發(fā)起一次選舉雖然選不出來但大量選舉請(qǐng)求占用了網(wǎng)絡(luò)和 CPU導(dǎo)致正常的日志復(fù)制也變慢。后來查了半天才發(fā)現(xiàn)是 NTP 服務(wù)掛了時(shí)鐘慢慢漂移了。所以時(shí)鐘同步不僅要配還要監(jiān)控。6.6 快照和日志的清理策略KRaft 會(huì)自動(dòng)清理快照之前的日志但快照本身不會(huì)自動(dòng)刪除。如果快照生成太頻繁磁盤上會(huì)積累大量快照文件。雖然 Kafka 會(huì)保留最近幾個(gè)快照但舊快照的清理不是實(shí)時(shí)的??梢允謩?dòng)清理舊快照但一定要保留最新的一個(gè)否則節(jié)點(diǎn)重啟時(shí)無法加載狀態(tài)。日志清理方面controller.quorum.snapshot.interval.ms控制快照頻率間接影響日志保留量。如果元數(shù)據(jù)變更頻繁比如大量 Topic 創(chuàng)建刪除可以適當(dāng)調(diào)小這個(gè)值讓快照更頻繁日志截?cái)喔皶r(shí)。但快照本身也有開銷太頻繁會(huì)影響 Controller 性能。我的經(jīng)驗(yàn)是元數(shù)據(jù)變更不頻繁的集群10 分鐘一次快照足夠變更頻繁的可以調(diào)到 5 分鐘。7. 從原理到實(shí)戰(zhàn)一次 Controller 頻繁切換的排查記錄7.1 問題現(xiàn)象與初步判斷某天下午監(jiān)控告警顯示 Active Controller 在 10 分鐘內(nèi)切換了 7 次。Broker 日志里大量Controller not available和Metadata update failed部分 Topic 的元數(shù)據(jù)操作超時(shí)。但消息讀寫本身沒受太大影響因?yàn)?Broker 緩存了元數(shù)據(jù)短時(shí)間內(nèi)的元數(shù)據(jù)不一致還沒波及到消息層。先看 Quorum 狀態(tài)發(fā)現(xiàn)三個(gè) Controller 節(jié)點(diǎn)都在線但 Leader 頻繁易主。查看選舉日志發(fā)現(xiàn)每次選舉的任期號(hào)都在快速增長說明選舉被反復(fù)觸發(fā)。初步判斷是某個(gè) Follower 頻繁發(fā)起選舉導(dǎo)致 Leader 不斷退位。7.2 深入排查網(wǎng)絡(luò)、磁盤、時(shí)鐘先查網(wǎng)絡(luò)。用ping和traceroute看 Controller 之間的延遲發(fā)現(xiàn)其中兩臺(tái)之間偶爾有 200 毫秒以上的抖動(dòng)。但 Raft 的選舉超時(shí)是 1000 毫秒200 毫秒抖動(dòng)不至于觸發(fā)選舉。繼續(xù)查磁盤三臺(tái)機(jī)器的磁盤 IO 都正常沒有明顯瓶頸。然后查時(shí)鐘。用ntpq -p看 NTP 同步狀態(tài)發(fā)現(xiàn)其中一臺(tái)機(jī)器的偏移量在 300 毫秒左右而且還在緩慢增大。這臺(tái)機(jī)器正是頻繁發(fā)起選舉的那個(gè)。時(shí)鐘漂移導(dǎo)致它的本地時(shí)間比另外兩臺(tái)快它認(rèn)為 Leader 心跳超時(shí)了于是發(fā)起選舉。雖然它選不上但選舉請(qǐng)求會(huì)干擾 Leader導(dǎo)致 Leader 也誤判最終引發(fā)連鎖反應(yīng)。7.3 解決與后續(xù)加固臨時(shí)解決很簡單重啟 NTP 服務(wù)強(qiáng)制同步時(shí)鐘。同步完成后選舉立刻停止Controller 恢復(fù)穩(wěn)定。但根本解決要加監(jiān)控對(duì) NTP 偏移量設(shè)告警超過 100 毫秒就通知對(duì)選舉頻率設(shè)告警5 分鐘內(nèi)超過 3 次就介入。另外把controller.quorum.election.timeout.ms從 1000 毫秒調(diào)到 1500 毫秒給網(wǎng)絡(luò)抖動(dòng)和時(shí)鐘偏差更多容錯(cuò)空間。這個(gè)調(diào)整的代價(jià)是故障發(fā)現(xiàn)變慢但在這個(gè)場(chǎng)景下穩(wěn)定性比快速發(fā)現(xiàn)更重要。調(diào)整后觀察了一周沒有再出現(xiàn)頻繁選舉。7.4 這次排查給我的啟發(fā)Raft 的選舉機(jī)制對(duì)時(shí)鐘和網(wǎng)絡(luò)非常敏感而這兩個(gè)因素在分布式環(huán)境里恰恰是最容易出問題的。很多人排查 Kafka 問題習(xí)慣只看 Broker 層但在 KRaft 模式下Controller 層的穩(wěn)定性才是根基。時(shí)鐘同步、網(wǎng)絡(luò)質(zhì)量、磁盤 IO 這三樣必須納入日常巡檢。還有一點(diǎn)選舉超時(shí)不是越小越好。默認(rèn) 1000 毫秒在大多數(shù)環(huán)境夠用但如果網(wǎng)絡(luò)質(zhì)量一般或者時(shí)鐘同步不夠精確適當(dāng)調(diào)大反而更穩(wěn)。調(diào)參的本質(zhì)是在“快速發(fā)現(xiàn)故障”和“避免誤判”之間找平衡沒有標(biāo)準(zhǔn)答案只能根據(jù)實(shí)際環(huán)境試。8. 關(guān)于 KRaft 后續(xù)演進(jìn)的一些觀察KRaft 目前已經(jīng)能覆蓋絕大多數(shù) ZooKeeper 模式的場(chǎng)景但還有一些邊界情況在完善中。比如超大規(guī)模集群下的 Quorum 性能、跨機(jī)房部署的延遲優(yōu)化、動(dòng)態(tài)成員變更的平滑度這些都在持續(xù)改進(jìn)。從社區(qū)動(dòng)向看KRaft 是 Kafka 元數(shù)據(jù)管理的唯一方向ZooKeeper 模式遲早會(huì)退出歷史舞臺(tái)。對(duì)普通用戶來說現(xiàn)在就可以開始學(xué)習(xí)和測(cè)試 KRaft不用等到必須遷移時(shí)才臨時(shí)抱佛腳。先在測(cè)試環(huán)境搭一套跑一些元數(shù)據(jù)操作密集的場(chǎng)景比如批量創(chuàng)建刪除 Topic、頻繁調(diào)整分區(qū)副本觀察 Quorum 的表現(xiàn)。踩過坑之后生產(chǎn)遷移時(shí)心里就有底了。我個(gè)人在實(shí)際操作中的體會(huì)是KRaft 把 Kafka 的元數(shù)據(jù)層從“黑盒”變成了“白盒”雖然學(xué)習(xí)曲線陡了一些但一旦理解了 Raft 的日志復(fù)制和選舉機(jī)制排查元數(shù)據(jù)問題就不再是靠猜了。這套知識(shí)不僅對(duì) Kafka 有用對(duì)其他基于 Raft 的系統(tǒng)比如 etcd、Consul也有觸類旁通的效果。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久久久婷婷五月热综合| 棕合影院色色| 六月婷婷九月丁香| 亚洲无码99| 思思99精品视频| 国产精品久久久久久久久久免费| 婷婷激情社区| 婷婷97| 五月丁香六月激情综合| 牛牛碰免费| 国产又爽又猛又粗的视频A片 | 97自拍视频在线| 婷婷丁香色五月| 久久九区| 久草热8精品视频在线观看| 天天色2017| 日日操,夜夜撸| 丁香久久九九99| 中文字幕AV在线播放| 99热思思久| 国产精产国品一二三在观看 | 色播婷婷五月天| Av性爱网站| 欧美顶级少妇做爰HD| 日日爱激情| 综合五月丁香97| 超碰av在线| 操操操操操操婷婷五月天| 中文成人在线| 五月丁香久久久久| 中文字幕性爱丰满| 99热精品在线观看| 婷婷久久婷婷色五月| 国产 亚洲 在线| 丁香五月 综合| 激情婷婷五月在线合集| 色香欲综合| 婷婷5月开心6月| 噜综合| 久草狼人| 国产探花AV在线| 色婷婷的五月天| 91色操| 五月婷婷片| 三级成人网站| 色综合婷婷| 亚洲成人AV高清字幕| 婷婷色色播五月天| 丁香久久综合| 雪千夏麻豆| 色欲丁香| 欧美成人色婷婷| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 婷婷伊人綜合中文| 欧美成人AAA片一区国产精品| 操你av| 日本97人人| 91狠狠色色丁香婷婷综合久久| AV在线观看网站| 色婷婷六月| 91丨九色丨高潮丰满日本| 广东99色在线| 久久久999精品| 久久婷婷五月天激情新地址| 欧洲色色| 大香蕉五月婷婷| 天天爽天天爽夜夜爽| 激情九月婷婷| 丰滿爆乳一区二区三区| 色婷婷操逼| 思思热在线视频99| 色播五月综合网| 另类激情五月在线视频欧美| 成人综合伍月天| 亚洲sesesese| 天天综合网91| 色哟呦av| 九九热免费| 亚洲色99| 亚洲色模骚货| 欧美狠狠草| www. 五月. com| 久久精品99国产精品日本| 久久久久婷| 五月婷婷精品视频| 天天草婷婷五月| 久久香蕉福利| 亚洲无码www| 午夜不卡久久精品无码免费| 91狠狠色丁香婷婷综合久久精品| 五月婷婷之激情五月| 色婷婷六月| 激情综合网五月| 5月丁香六月婷婷| 再綫Av免费視品| 99 re视频一区| 亚洲另类AV| 天天插天天插| 色色婷婷丁香| 欧美日韩成人高清在线| 99这里只有精品视频| 人人操超踫| 成人va在线观看视频| www.五月天婷婷| 婷婷五月天丁香综合网| 99re资源在线视频导航| 婷婷综合婷婷| 男人大jjc女人免费视频| 天天爽天天弄| 亚洲激情网| 97五月天婷婷综合激情网| 婷婷色色网站| 婷婷视频在线碰| 99精品成人无码A片观看金桔| 亚洲啪啪啪啪| 色五月婷婷丁香婷婷| 开心五月网 | Xx色综合| 久热91| 狠狠色狠狠爱| 99热69| 超碰久热| 天天透天天爱| 999影院成人在线影院| 4438激情网| 久久精品国产一区二区三区四区| 亭亭色色五月天| 亚洲啪啪精品| 五月天婷婷丁香花| 五月丁香婷婷激情影院欧美| 国产综合婷婷| 九九精品综合| 中文激情网| 超碰人人艹| 超碰免费99| 色九综合| 欧美三日本三级少妇三99| 97碰碰电影| 全部老头和老太XXXXX| 五月婷婷色| 日韩啊啊啊| 久9精品视频| 欧美日韩成人在线网| 成人精品99| 色六月视频| 成人九九视频| 色99网站| 91无码视频| 日本色天堂| 五月丁香久久网| 99这里有精品视频| 日韩 中文 欧美| 婷婷五月,偷窥偷拍网| 成人网在线视频| 思思re99视频在线观看| 久久这里有精品在线观看| 久久亚洲婷婷| 五月天丁香婷婷社区| 99无码超碰| 九热精品| 色色影院aaaav| 婷婷伊人无码| 天天透天天摸天天舔| 热热久久久久久久久| 99ri视频| 国自产拍偷拍精品啪啪一区二区| 久久久国产精品黄毛片| 禁片二区| 91精品婷婷国产综合久久| 色情婷婷。| 久久婷婷五月综合色奶水99啪| 人妻久热| 开心五月综合激情综合五月| 久久精品99久久久久久| 99这里只有精品| 婷婷婷婷午夜| 欧美交换配乱吟粗大25P| 色9999日韩国产| 三级av在线| 久久九九99.www| 日日爽日日| 久久婷婷综合五月趴| 婷婷六月综合激情| 六月天婷婷| 国产肥白大熟妇BBBB视频| 99热xx| 丁香花成人区| 桃色Av色哟哟| 久久久精品色色色| 久久久久9| 色色婷婷丁香| 无码日本精品XXXXXXXXX | 色婷婷狠狠禁18久久| 婷婷综合伊人| 丁香五月天偷拍| 91凹凸在线| 久久最新色色色| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 五月丁香综合激情网| 97精品自拍视频| 亚洲色网络| 亚洲三A| 婷婷丁香社区| 天天综合干| 久久婷婷婷婷伊人| 婷婷五月激情欧美| 一本道在线电影| 婷五月天| 久久久久久天天日天天爱| 亚洲综合婷婷六月丁香五月| 1024人妻| 成人精品免费在线观看| 97狠狠色| 色婷五月天亚洲| 日本五月天婷婷丁香| 玖色色综合| 婷婷综合色色| 女人天堂久久| 超碰京东热av男人的天堂| 99久久精彩视频。| 国产97色在线 | 日韩| 天天干天天干天天干天天干天天干| 日韩人妻在线播放| 色欲影香| 超碰成人在线观看| 激情婷婷护士激情| 六月丁香啪| av五月天婷婷丁香| 99热免费| 日本一毛片| 深爱开心五月天| 美女五月天| 在线婷婷| 人人人操 超碰| 色五月大| 综合五月亭亭9| 欧美日比视频| 五月婷狠狠| 玖热精品综合视频| 色婷婷影院| 色婷婷久久综合丁香五月| 999热这里只有精品| 97婷婷狠狠久久综合9色| 婷婷丁香五月天色区| 激情久久久| 综合久久久婷| 五月婷婷亚洲色视频| 色爆五月| 欧爱综合视频| 日本人妻伦在线中文字幕| 亚洲精品中文字幕成人片| 天天干天天爽天天爽| 日本一级一级一级一级| 综合激情五月综合激情五月激情1| 午夜色丁香| 亚洲性爱AV在线| 成人天天爽| 激情综合区| 丁香五月婷婷Av| 久热网站| 久久码久久无清| 丁香五月中文字幕久色| 99热综合在线观看| 六月丁AV| 91九色超碰正在播放| 日本五月视频| 4399精品一区二区| 日本色爽| 色五月超碰| 国产精品色婷婷99久久精品| 五月激情婷婷综合| www.婷婷| 青青草a在线| 婷婷六月天| 亚洲精品一区无码A片| 丁香五月自拍| 国自产拍偷拍精品啪啪一区二区 | 丁香五月花婷婷开心| 综合婷婷都市激情| 五月停停色色丁香| 亚洲精品成人| 婷婷五月天熟妇| 丁香六月激情综合| 天天色天天舔天天爱天天爽| a网站免费观看| 热无码A∨| 婷婷伊人| 色五月丁香五月婷婷五月成人网| 人妻在线网站| 亚洲五月婷婷| 色婷婷狠狠| 五月激情综合网| 久久在这里有精品| 五月天另类小说久久小说网| 99视频只有精品| 丁香婷婷综合激情五月色| 久久 婷婷 五月天| 69堂午夜视频最新地址| 六月五月天婷婷涩播在线| 小视频在线亚洲| 五月丁香婷中文| 五月天婷婷六月激情网| 教师性爱毛片| 79精品视频在线观看,| 激情五月综合久久| 五月天综合| 高清无码一区二区三区四区| 色97啪啪| 五月婷婷色播| 五月久久噜噜| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 日本婷久久| 亚洲无码yw| 国产一区18| 91久久久久久久久久久| 色婷綜合网| 九九精品9| 激情综合五月开心狠狠| 丁香五月情| 激情五月天社区| 一本久久亚洲五月婷婷| 综合精品99| 9热在线观看| www.久久久久久久久久.com| 五月婷婷人人人操| 五月丁香婷婷爱激情综合网| 97碰精品| 91蜜桃婷婷狠狠久久综合9色| 日本婷婷丁香五月| 日操熟女| 老司机伊人| 99综合免费视频| 国产真实乱了老女人视频 | 五月天综合网| 9色在线| 国产精品第一国产精品| 大香蕉中文| 视频久久9| 超碰亚洲天堂| 丁香婷婷性久久| 亚洲av成人电影在线观看| 新激情五月天天在线网| 亚洲成人综合在线| 熟妇人妻中文字幕无码老熟妇| 79成人网| 97人人操人人拍| 夜夜谢天天干| 久久精品99久久久久久| 91色婷婷综合久久中文字幕二区| 激情黄色小说五月天| 国内久久婷婷| 99热大香蕉| xxxx五月激情| 五月天激情小说网| 一本伊人色婷| 五月丁香黄色| 激情五月天婷婷| 99精品视频免费观看,| 97碰 在线视频观看| 一级黄色尤物综合视频手机在线观看| 91色色色18| 99精品在线播放| 激情综合网亚洲色图| 91色欲综合| 九月丁香婷婷综合| 亚洲丁香五月美女| 五月丁香婷婷色播无码| 日韩色色视频| 人人爽亚洲| 欧美色色干| 婷婷五月丁香五月| 操操操AV| 九九这里只有精品在线视频| 人妻丰满精品一区二区A片| 日日噜狠狠色| 26uuu视频欧美| 婷婷五月婷婷| 久99久热只有精品国产99| 波多野结衣AV无码Porn| 六月婷婷中文字幕| 日日肏夜夜干| 久久激情五月| 婷婷丁香五月社区亚洲| 六月丁香婷| 五月丁香婷婷中文网| 影音先锋偷偷色男人站| 久操人妻| 久久婷婷激情久久| 视频久久9| 丁香花综合永久入口| 精品亚洲国产成人A片在线鸭王| 亚洲操逼片| 九九这里有精品| 五月五丁香婷婷| 婷婷五月成人色综合| 99热爱爱干干日| 色色色国产| 色色三级视频| WWW.99视频| www.com.色色| 免费观看欧美成人AA片爱我多深| WWW.99视频| 亚洲Av入口| 五月天伊人综合| 亚洲情综合五月天| 丁香五夜激情四射夜夜夜| 五月综合色| 五月丁香婷婷基地| 亚洲综合激情五月久久| 日本乱子人伦在线视频| 国产肥白大熟妇BBBB视频| 91色色色| 人妻久久久久久久 | 91热er| 丁香五月天激情婷婷丁香六月 | 亚洲六月综合激情久久下卡| 91碰免费视频| 亚洲无码九九九| 婷婷性爱五月天丁香网| 91亚洲免费片| 夜夜大香蕉婷婷丁香| 美欧成人视频| 91狠狠综合网| 激情丁香婷婷六月天| 欧美va亚洲va| 人人做人人看人人摸| 欧美成人精品一区二区| 五月天婷婷綜合院| 伊人婷婷五月天| 激情五月天婷婷| 日逼AV影音先锋男人资源站| 亚洲啪啪自拍| 五月婷婷色影院| 日本三级中国三级99人妇网站| 九九伊人网| 久久久妻人人人| 五月丁香拍拍激情综合| www、色色色| www五月| 99热这里| 风流少妇A片一区二区蜜桃| 国产熟妇乱子伦hd| 97干在线看| 伊人网大香| 丁香五月天在线视频| 久热这里只有精品66| 色五月婷婷五月天激情综合| 婷婷丁香五月天操逼| 精品婷婷| 婷婷五月天社区| 9 1超碰九色| 美欧成人视频| 综合五月天| 丁香五月婷久久| 我要射综合| 激情伍月 欧美| 操操操操操操婷婷五月天| 久久女婷| 99久久网站| 中文激情网| 五月丁香激| 99re这里只有| 久久丁香综合| 黄色激情五月天| 人人摸人人干人人做| 色婷五月丁香久亚洲| 色婷婷在线视频久| 婷婷久久视频| 九热免费视频| 99自拍视频在线观看| 无码字幕中文| 亚洲五月天,激情视频| 日日婷婷不卡| 色丁香五月婷婷| 97精品综合| 五月丁香偷拍| 五月丁香婷婷五月色| 丁香五月天激情视频| 99视频只有精品| 超碰成人影视| 激情五月综合ì香亚洲| 香蕉曰比| 色青青电影色五月| JlZZJlZZ8JlZZ亚洲熟女| 丁香六月婷婷色XXXX| 9国产在线视频| 青草视频在线观看视频| 婷婷五月丁香综合亚洲| 婷婷丁香久久网| 婷婷五月天涩涩| 97超碰99热99| 免费播放片大片| 色九月综合网| 激情视频91| 天天色综| 中文网婷婷字幕婷| 国产婷婷五月天| 亚洲无码播放| 99热乎| 亚洲色爽| 丁香激激情网| 综合在线色婷婷| 日韩精品一品二区三区的使用体验| 丁香五月先锋| 泰州成人视频| 香蕉久久国产AV一区二区| 色欧美色色色| 色 噜噜 九月 婷婷| 久久九九热re6这里有精品| 99热99日天天干| 婷婷色一二三区波多野结衣| 久久婷婷六月天| 久久色亭亭五月天| 激情五月天福利| 五月色 亚洲| 九九热这里只有精品6| 无码橾| 这里只有精品69| 99在线免费观看| 日本久久高清| 婷婷色色丁香五月天| 伊人超碰在线| 五月婷婷网站| 五月停停大香蕉| 99久久综合网| 91综合国免费久入| 99在线视频免费| 亚洲激情婷婷| 人人97操| 99热这里只有精品2| 2050人人操免费工开爱| α久久| 99只有精品| 久热久色| 色色99| 成人短视频在线观看| 欧美激情综合色综合啪啪五月| 综合久久综合综合| 激情久久综合网| 91九色PORNY大屁股| 激情五月网站| 丰满少妇猛烈A片免费看观看| 狠狠干天天内射| 五月婷婷成人| 亚洲另类婷婷五月丁香在线播放| 九九热最新| 99婷婷| 激情小说视频图片| 婷婷五月天AV网| 五月天狠狠| av九九| 六月丁香激情网| 九九Av| 婷婷爱五月天| 婷婷六月综合在线| 久久综合五月天| 99热成人精品| 毛片新网地| 99思思在线视频| 丁香成人色情五月天| 99热偷拍| 婷婷五月天av小说| 欧美色图45678| 日日操天天爽| 久久性视频| 色444综合网| 在线视频色五月| 91成人性爱视频| 97五月天| 香蕉婷婷| 婷婷性爱视频在线| 深爱五月中文字幕| 99爽视频| 五月天婷婷偷拍| 久久99视频| 婷婷五月天激情丁香| 直接看的AV| 色婷婷丁香AV综合| 99热日韩这里只有精品| 日本狠狠干| 99在线精品免费视频| 91激情五月开心| 五月婷婷视频28| 天天干天天色综合| 丁香五月性爱爱五月| 激情婷婷五月天伊人在线观看| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 日韩啪啪自拍| 婷婷激情综合无月| 天天操加勒比| 天天操天天国产三级片处女学生妹| 97色97干| 色情五月婷婷| 婷婷五月久久| 91九色国产熟女| 天天操天天日天天爱| 免费无码毛片一区二区A片| 丁香涩涩爱| 欧洲不卡视频| 琪琪色五月婷婷老师| 国产偷人爽久久久久久老妇APP | 人人草人人视| 日本少妇裸体做爰高潮片| 国产欧美第五十五页| 婷婷六月五月| 五月丁香婷婷伊人| www。狠狠干。com| 91九色国产| 日韩黄色中文字幕| 第2色五月婷| 91偷拍视频| www.色色com| 婷婷五月免费在线| 91九色首页| 午夜精品久久久久久久爽| 欧美色婷婷| mmm1717.6dbm人人爱人人操| 99免费青青蜜臀| 99操视频| 超碰人人干| 日本ww亚洲| 日本99在线视频| 91肏肏肏| 99九无网码| 亚洲va日| 秋霞av不能| 五月丁香色婷婷| 丁五月激情视频免费| 精品视频99看在线视频| 婷婷五月天激情电影| 天天揷综合网| 91久久精品无码一区二区三区| 69er小视频| 亚洲精品无码久久| 五月丁香久久丝袜啪啪| 操97免费超级视频| 婷婷中文综合网| 99免费在线视频| 七七色色综合| 九九综合久久| 、激情六月天| 91肏| 六月丁香开心婷婷欧美| 婷婷久久网| 99热99热在线| 婷婷五月天伊人网在线观看视频| 激情婷婷| 色综合久久99色| 婷婷五月天大香蕉在线视频观看| 欧美电影在线播放| 欧美人妻一区二区| 五月婷婷六月丁香色| 婷丁香五月天| 婷婷情色五月天| 久草九九| 中文婷婷狠狠| 成人 在线观看国产| 久久久久久久人妻| 综合色图区| 五月激情小说| 激情欧美五月丁香| 婷婷激情蜜桃玖玖丁香| 婷婷五月色花丁香社区| 国产亚洲99久久精品| 综合色婷婷| 婷婷丁香五月在线播放| 五月天色色色色色| 啪啪色区| 亚洲色综合| 天天天天天天操| 婷婷日在线观看| 成人做爰A片免费看视频| 停停色综合伊人| JAPANRCEP老熟妇乱子伦视频| 五月亚洲激情| 老师高潮流白浆喷水的A片| 337午夜福利| 国产乱码久久| 婷婷五月天免费小说| 激情五月天色网站| 色婷婷9| 超级碰碰91| 五月天激情综合网俺也去| 五月婷婷六月丁香| Av性爱网站| 色婷婷呢狠禁久禁| 激情五月婷婷开心网| 99re久热| 看片视频在线免费日产在线看| 色婷婷激情| 六月婷婷中文字幕| 色综合久久伊伊婷婷五月| a性生活久久无| 激情色色色| 超碰在线9| 亚洲热视频| 少妇久久诱惑视频| 色婷婷五月天无码视频| 日日噜噜夜夜狠狠久久丁香六月| 久久网站免费亚洲| 综合色在线| 亚洲99精品欧美一区| XX久久| 天天天干夜夜夜操| 四色女婷婷| 五月丁香久久丝袜啪啪| www.狠狠| 丁香六月爱综合| 激情五月婷婷啪啪| 热久久99热欧美国产亚洲| 亚洲射激情| 99色免费在线观看| 9久久久久久久久久久| 婷婷丁香成人在线视频| 久草婷婷视频| 婷婷天天色| 婷婷色五月色妇| 超碰99热精品在线| 九九热视频99| 婷婷热婷婷色| 黄色一极大片| 人人爱操| 色播五月网| 天天爱天天做天天日| 激情综合五月| 九九亚洲| 超碰在线资源| 91亚洲天堂| 97精品综合久久| 五月婷庭丁香在线| 日本熟女二区| 婷婷丁香五月激情| 国产一级视频a| 天天操五月天| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 99热这里只有精品10| 五月色丁香婷婷综合| 色色色色网| 色五月综合激情| 色婷婷综合网| 激情网色五月| 日韩操人| 亚洲人人操BD| 激情久久四色| 五月天另类图片区99| 色五月综合网| 色综合天天| 亚洲 在线 性爱| 亭亭色网| 欧美一级a | 久久精彩综合视频| 久久ri精品视频| 色五月婷婷老师| 五月丁香成人视频| 五月丁香啪啪激情| 色欲天天综合| 色综合中文综合网| 涩五月婷婷| 超碰在线超碰| 激情五月亚洲| 丁香五月六月久久综合 | 婷婷性福五月天| 天天艹天天色| 丁香五月婷婷av| 国产91在线视频| 丁香激情五月| 激情綜合網址| 五月丁香淫淫婷婷婷| 久久久久亚洲A∨成人乱码电影| 99视频在线观看网址| 成人超碰网| 久久久这里有精品| 成人在线99| 婷婷五月天熟妇| 99久久久国产大片| www.婷婷.com| 国产中文字幕在线视频免费观看| 亚洲乱码日产精品BD| 久草大| 久久久这里有精品| 色天天综合成人网| 亚洲色爽| 成片免费播放| 丁香五月开心亚洲| www九月婷婷| 国产精品91抖高| 91操碰| 久久人妻伦理| 色色色在线免费视频| 99色久| 色噜噜狠狠狠狠色综合久欧美| 国产精品色色| 色情五月婷婷| 日日爱699| 97色色色| 91精品在线看| 五月婷婷综合网| 五月丁香婷久久| 第四色婷婷最爱| 日韩色久| 五月天丁香综合在线| 第四色26uuu| 国产精品涩涩涩视频网站| 婷婷综合五月天| 丁香五月天视频| 婷婷免费视频| 操射国产日本| 久久九九综合| 五月婷五月婷伊人伊人五月婷| 人妻久久婷婷| 五月婷婷婷| 色五月婷婷婷婷| 久久久av久av久片一区二区| 女人天堂av| 性综合网| 狠狠大香婷婷爱| 丁香五月色网| 色玖玖玖| 伊人在线视频| 天堂亚洲 在线| 久久久精品人妻| 色婷亚洲| 五月天婷婷伊人| 99这里只有精品在线观看| 五月丁香成人| 丁香六月婷婷高清| 色婷婷成人做爰A片免费看网站| 日日色综合| 操操啪| 91狠狠综合久久久| 狠狠色色| 人妻精品一区二区三区| 亚洲天天| 婷婷五月天电影网| 亚洲操操操| 色婷婷丁香| 婷婷五月丁香五月| 双性美人被调教到喷水A片| 99噜噜噜在线播放| 强伦轩人妻一区二区电影| 热99在线| 91九色精品熟女内射| 色婷婷亚洲婷婷| 五月四色色| 一级操逼大片| 婷婷五月精品中文字幕| WWW久久99久久99久久| 丁香婷婷成人在线播放| 亚洲韩国日产综合AV| 婷婷射丁香| 久久久久久久久久久月丁| 天堂综合久久 | 97色天堂| 色色综合网站| 欧美性爱五月天| 国产欧美日韩一区二区三区| ..真实国产乱子伦毛片| 九九视频这里有精品| 丁香五月亚洲综合丝袜| 九热视频| 久久久性爱视频| A1片久久| 8区视频在线| 色播五月婷婷综合| 婷婷六月久久| 五月花综合视频| 久久婷婷五月天| www超碰| 九久9精品| 色情综合| 99热官网| 99久久国产宗和精品1上映| 亚洲欧美成人在线观看| 丁香综合久久| 天天综合网91| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 五月丁香久久激情综合| 五月天婷婷影院| 人妻操逼视频。| 国产成人精品一区二区三区视频| 天天爽综合网| 99自拍视频网站| 高清一区二区三区日本久| 婷婷五月天干干| 99九无网码| 久久婷婷五月天| www.五月天婷婷姐姐| 日本黄色在线观看| 色5月婷婷| 久久精品亚洲一级牲爱综合| 色婷婷五月综合在线| 亚洲欧洲另类| 色综合网综合| 久久伦乱| 亭亭五月天黑人2014| 色五月大| 国产激情综合五月久久| 五月丁香六月婷婷开心网| 成人在线不卡| 伊人婷婷大香蕉在线| 182TV大香蕉| 南京搡BBBB搡BBBB| 97操碰在线视频| 伊人五月天| 天天影院色| 五月六月丁香婷婷在线观看| 黄色av高清| www.色婷婷| 吉澤明步Av一區二區| 日本色频| 婷婷五月激情在线| 很很干天天干| 停停五月丁香| 婷婷基地成人五月天| 成人AV综合在线| 五月婷婷丁香| 噜噜操操| 99热国产这里只有精品| 深爱 五月天| 国产肏屄大片| 婷婷在线中文字幕| 色人久久| 99热这里只| 天天更新天天亚洲| 六月婷婷激情| 色综合色综合网| 99热最新网址| 91丨九色丨首页| 超碰在线视屏| 婷婷五月天激情五月天网站| 久婷婷婷| 久9热视频在线| 91性高潮久久久久久久久| 国内婷婷丁香社区在线播放| 五月激情婷婷国产精品久久久久久| 九色婷婷| 五月婷婷九| www,欧美干干干干干干| 97婷婷丁香| 婷婷六月激情综合| 色色婷| 五月天婷婷婷| 热久久这里只有精品| www色婷婷com| 白天AV月月| 国产成人+综合亚洲+天堂| 免费在线观看av网站| 亚洲五月天,激情视频| 日本久久爱| 99ER热精品视频| 婷婷第一页| 在线色五月婷婷| 噜噜色com| 日本天天色| 日韩精品成人在线| 色五月天激情| 天天日天天色| 日本天堂免费99| 综合大香蕉| 草榴视频黄色网| 亚洲三级无码| 丁香五月婷婷影院| 色色五月天婷婷| 婷婷涩涩五月天| 五月综合激情视频在线| 丁香六月天之亚州热女| 91dy.av| 亚洲 综合中文| 亚洲精品视频在线| 久久激情天堂| 中文字幕五月久久婷婷| 大香蕉伊在| 91日精品| 亚洲AV无码成人精品电影| 真实熟女-91九色| 五月四色激情| 久操乱| 色插人人| 97碰碰免费.视频| 精品视频二级九九| 黄网在线免费观| 欧美特大片黄| 538在线精品| 成人国产欧美大片一区| 欧美性猛交 XXXX 乱大交| 免费无码毛片一区二区A片| 99婷婷| 人妻中文在线| 婷婷亚洲色| 天天操天天插| 亚洲欧洲中文日韩久久AV乱码| 成人精品一区日本无码网| 欧美性猛交 XXXX 乱大交| 99热这里只有精品22| 丁香五月激情综合| 五月丁香综合在线| 色色色五月婷婷| 99久久综合| 青草青草视频2免费观看| 亚洲亚洲人成综合网络| 婷婷五月久久| 婷婷九月丁香中文| 色九九一二| 99综合熟女| 奇米网大香蕉| 色婷婷丁香综合中文字幕| 婷婷五月天综合网| 视频这里只有精品| 色久在| 五月丁香色婷婷基地| 婷婷五月天va| 婷婷在线免费| 日韩人妻操逼视频| 日韩视频99| 97干在线播放| 91碰碰碰| 婷婷五月花| 亚洲狠狠爱婷婷| 狠狠色九月| 久操综合| 久操操| 天天夜天天色天天| 色五月激情| 97久久久久| 99热这里是精品| 激情五月婷婷老师| 亚洲成人AV在线| 久久久999精品| 色八月婷婷| 九九久久五月天综合伊人| 99这里只有精品|v| 99热这里都是精品| 九九热最新| 亚洲欧洲中文日韩久久AV乱码| 婷婷丁香久久网| 国产日韩av片| jiqingtaose五月天| 森林影视大全,最好看的2019年视频 | 色婷网站| 狠狠色噜噜狠狠| www.综合久久.com| 区区久久妻| 性色99| 色呦呦美女| 亚洲九九视频| 任你干aa| 色色色国产| 亚洲色情激情丁香五月| 天天爽天天日| 五月香婷婷| 操碰99在线视频观看| 激情性爱五月| 九九精品在线视频观看| 我要看激情五月天| 精品成人在线观看| 无码人妻AV久久久一区二区三区 | 丁香五月六月综合欧美| 婷婷激情六月| 国产精产国品一二三在观看| A1片久久| 亚洲熟妇AV综合网五月丁香伊人 | 日本九九视频| 亚洲五月天天| 久久小片| 极品少妇XXXX精品少妇偷拍| 夫妻超碰在线| www.minyis.com【JT】实力收量可预付TG@LXSPSW8| av性爱在线| 大香蕉AV在线| 大香蕉在线99热| 日本久久综合| 婷婷色情小说| 天天狠天天叉| 人操人| 激情综合5月| 五月天婷婷久久| 免费无码毛片一区二区A片| 中文久久婷婷| 丁香五月婷婷久久综合激情网| A久网| 日韩无码成人电影| 色五月大| 丁香五月激情视频在线| 婷婷五月天色色| av一区免费看| 久草久青福利| 日韩成人免费电影| 婷婷丁香五月基地| 丁香五月色播中文在线播放| www.99情趣网| 久久精品99国产精品日本| 99狠狠色| a久久免费视频| 婷婷爱五月| 在线99精品| 79色色免费| 婷婷五月天福利| 婷婷丁香五月基地| 俺五月| 五月激情婷婷丁香| 色婷婷综合在线| 四色女婷婷| 国产精品色| 婷婷免费无马| 9久热这里只有精品| 99热欧美| 97人人干人人操| 综合网亚洲| 97碰碰九九视频| 九九热10| 色色五月婷婷| 亚洲免费观看高清完整版AV线| 天天干天天叉| 香蕉AV777XXX色综合一区| 色色综合色视频| 久久99久久99精品免观看粉嫩| 中文字幕人妻AV| 五月婷婷伦理| 色五月婷婷影院| 激情丁香六月| 夜夜骑夜夜撸| av五月天婷婷丁香| 亚洲综合色丁香五月天| 狠狠色婷婷| 精品乱码视频| 久热人妻| 国产44页| 婷婷色正月| 中文AV网站| 五月婷婷丁香六月在线| 婷婷五月花| 丁香五月婷婷成人色区| 精品一二三区久久AAA片| 亚洲五月天综合色| 五月激情站| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 日比网免费国产| 狠狠色丁婷婷日日,伊人激情综合网| 婷婷五月六月| 任你艹| 亚洲色五月| 丁香婷婷色五月| 日韩久久视频| www.婷婷五月天啪啪| 中文久久久人妻| 青青操丝袜美腿| www.婷婷六月天| 五月婷婷色播| 久久精品性爱| 成人色图情色成人网 www.5b5b5bcom 五月天| 色99欧洲色19| 色综合女人99| 婷婷基地爱| 丁香五月天社区婷婷| 五月丁香淫淫婷婷婷| 亚洲精品另类| www.henhengan| 91精品又长又大又粗又爽又猛| 久久婷婷激情视频| 手机在线视频观看9| 丁香五月天激情视频| 丁香熟女乱| 五月婷在线| 色97啪啪| 五月婷婷综合网| 亚洲在线操| 91婷婷| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 婷婷色中文字幕| 超碰人人干| 亭亭玉立国色天香| 色婷婷成人网| 国产精品视频| 91狠狠综合久久| av婷婷丁香 六月| 五月色情| 99爱在线观看视频| 男女免费视频999| 丁香五月天亚洲视频| 一本久道综合99| 中文AV网站| 深爱激情九九五月天 | 五月婷婷影| 日日撸夜夜操| 狠狠干总合| 20253AV| 五月开心啪啪| 久久天堂色| 97视频91| 婷婷五月天六点丁香五月| 人妻久久久| 久久婷婷五月草视频| 久久R激情| 婷婷五月天激情网| 黄色aaaaa| 欧美交换配乱吟粗大25P| 天堂AV在线看| 91九色在线视频| 五月天激情图片| 亚洲不卡| 狠狠插.com| 五月丁香久久| 丁香五月六月久久综合| 九色综合网| 天天情色综合网| 激情久久网 | 色色丁香色五月| 成人午夜无码视频| 久久永久网址| 丁香五月天AV在线| 97干视频在线| 正宗黄色毛片| 丁香五月天婷婷激情| 婷婷丁香综合成人| 小泽玛利亚视频一区二区| 天天干,夜夜爽| 天天干天天叉| 91精品久久久久久| 精品久久久中文字幕大豆网推荐理由| 六月丁香激情| 婷婷五月天视| 亚洲色图啪啪| 五月婷婷啪啪| 99热这里只有精品青草| 婷婷五月中文在线| 丁香婷婷六月| 这里只有精品免费视频| 中文字幕婷婷五月天在线观看| 六月婷婷青青青视频| 九九热视频在线观看| 激情五月天婷婷丁香 | 久久久久久97| 日韩艹比| 殴美日比视频| 五月婷婷欲色| 色琪琪一综合久久激情五月视频| 搡BBBB搡BBB搡五十| 先锋资源婷婷| 丰满人妻一区三区三区| 婷婷五月综合社区| 狠狠ri| 久久免费操| 超碰狠狠色| 九九99在线免费在线观看视频| 色色色色色九九九九九| 久热免费视频| 涩综合网| 激情丁香婷婷五月天| 无码橾| 大香蕉AV电影在线| 丁香五月电影| 99爱视频免费看| 国产Va视频| 激情久久肏屄视频| 91精品久久久久久久久久| 六月婷婷激情| 99精品亚洲| 六月丁香成人| 五月丁香综合中文| 丁香五月激情五月| 九九热10| 夜夜夜夜撸夜夜操| 五月丁香婷婷激情在线| 久久久人妻不卡| 综合久久六月| 婷婷成人av|