久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

Kafka環(huán)境搭建全攻略:從單機(jī)到集群的避坑指南

Kafka環(huán)境搭建全攻略:從單機(jī)到集群的避坑指南 有人問(wèn)我Kafka到底難不難學(xué)。我的回答一直是環(huán)境搭建這一關(guān)過(guò)了后面就順了過(guò)不了后面一天到晚都在跟各種報(bào)錯(cuò)打架。Kafka不是那種解壓就能跑的軟件它對(duì)操作系統(tǒng)、JDK版本、網(wǎng)絡(luò)配置、磁盤(pán)規(guī)劃都有要求任何一個(gè)環(huán)節(jié)不合適啟動(dòng)時(shí)可能不報(bào)錯(cuò)但生產(chǎn)環(huán)境一跑就出問(wèn)題。這篇是Kafka學(xué)習(xí)系列的第二篇我默認(rèn)你已經(jīng)了解了Kafka的基本概念主題、分區(qū)、消費(fèi)者組、副本這些如果你還不太清楚建議先看系列第一篇把核心概念過(guò)一遍。這篇的主要內(nèi)容很聚焦怎么把Kafka環(huán)境從零搭起來(lái)每一步該怎么做、為什么這么做、踩過(guò)哪些坑全部用實(shí)際操作的思路來(lái)講。我主要從三個(gè)場(chǎng)景來(lái)講單機(jī)開(kāi)發(fā)環(huán)境搭建、三節(jié)點(diǎn)集群搭建、以及環(huán)境搭建過(guò)程中必踩的坑和排查思路。中間會(huì)穿插我在實(shí)際項(xiàng)目中總結(jié)的一些經(jīng)驗(yàn)和教訓(xùn)比如版本怎么選、參數(shù)怎么調(diào)、磁盤(pán)怎么規(guī)劃這些常規(guī)文檔里不會(huì)細(xì)說(shuō)的東西。1. 為什么先別急著裝Kafka組件架構(gòu)和版本選擇比下載更重要1.1 從單機(jī)玩具到分布式事實(shí)Kafka到底需要哪些組件很多人第一次搭Kafka環(huán)境下載完壓縮包就想著趕緊解壓、啟動(dòng)、跑起來(lái)。但如果你對(duì)Kafka的運(yùn)行機(jī)制沒(méi)有一個(gè)整體認(rèn)知后面配置參數(shù)時(shí)會(huì)非常迷茫出了問(wèn)題也不知道從哪兒排查。Kafka本身是一個(gè)分布式消息系統(tǒng)它最少需要兩類角色才能完整跑起來(lái)一類是管理分布式協(xié)調(diào)狀態(tài)的組件另一類是真正存儲(chǔ)和轉(zhuǎn)發(fā)消息的Broker節(jié)點(diǎn)。在過(guò)去很長(zhǎng)一段時(shí)間里這個(gè)協(xié)調(diào)組件就是ZooKeeper它負(fù)責(zé)保存Kafka的元數(shù)據(jù)信息包括主題列表、分區(qū)分配情況、消費(fèi)者組進(jìn)度等。雖然從Kafka 2.8版本開(kāi)始官方引入了KRaft模式把元數(shù)據(jù)管理從ZooKeeper剝離了但到目前為止ZooKeeper模式依然是大量線上環(huán)境的主流選擇尤其是很多公司內(nèi)部的存量集群一時(shí)半會(huì)兒遷不過(guò)去的。所以環(huán)境搭建這件事本質(zhì)上就是在你選擇的操作系統(tǒng)上把JDK、ZooKeeper如果用的話、Kafka Broker按正確的順序和配置部署好讓它們能互相通信、協(xié)同工作。這里還要特別提一個(gè)概念Client和Server要分清楚。Kafka的Server端是Broker集群Client端是生產(chǎn)者和消費(fèi)者。你搭建的環(huán)境是Server端但驗(yàn)證環(huán)境是否成功必須用Client端工具或?qū)懸欢未a來(lái)測(cè)試。很多人搭建完環(huán)境說(shuō)不知道成功沒(méi)有那是因?yàn)橹粏?dòng)了進(jìn)程并沒(méi)有實(shí)際發(fā)消息、收消息來(lái)做驗(yàn)證。1.2 版本選擇陷阱2.x和3.x的差異不只是版本號(hào)Kafka的版本選擇是我見(jiàn)過(guò)的最容易讓人踩坑的地方?jīng)]有之一。你去看Kafka的Apache官網(wǎng)或者GitHub Releases頁(yè)面會(huì)發(fā)現(xiàn)同一時(shí)期有多個(gè)版本并存而且2.x版本和3.x版本不僅僅是數(shù)字上的差別架構(gòu)上都有了很大的變化。首先說(shuō)一下版本號(hào)的規(guī)則。從Kafka 2.0開(kāi)始Apache Kafka采用了新的版本命名方式比如2.13-3.6.0這樣的格式前面的2.13是Scala編譯版本后面的3.6.0才是Kafka的版本號(hào)。很多初學(xué)者看到2.13-3.6.0就以為這是Kafka 2.13是個(gè)舊版本實(shí)際上3.6.0才是真正的Kafka版本前面的2.13指的是用Scala 2.13編譯的。如果你下載的時(shí)候只看前半段數(shù)字很容易下載到不合適的構(gòu)建版本。然后是Kafka版本和生態(tài)組件版本之間的兼容性。比如你用Kafka 3.x配一個(gè)很老的ZooKeeper 3.4.x啟動(dòng)的時(shí)候可能正常但運(yùn)行一段時(shí)間會(huì)出現(xiàn)一些奇怪的連接超時(shí)或會(huì)話過(guò)期錯(cuò)誤。反過(guò)來(lái)Kafka 2.x配太新的ZooKeeper也會(huì)遇到配置項(xiàng)不兼容的問(wèn)題。我的建議是如果是學(xué)習(xí)或者做技術(shù)預(yù)研首選Kafka 3.x的最新穩(wěn)定版用KRaft模式或者ZooKeeper模式都可以但推薦先用ZooKeeper模式因?yàn)榫W(wǎng)上資料多遇到問(wèn)題好搜索。如果是公司生產(chǎn)環(huán)境一定要先確認(rèn)公司已有的監(jiān)控體系、運(yùn)維工具、客戶端版本是否兼容不要盲目上最新版。如果是給老項(xiàng)目升級(jí)優(yōu)先考慮跨版本升級(jí)路徑比如從2.x升到3.x時(shí)建議先看官方的升級(jí)文檔里有沒(méi)有標(biāo)記為不兼容的變更。表格是版本選擇時(shí)最直觀的參考我列一個(gè)我常用的簡(jiǎn)化對(duì)照用途推薦Kafka版本推薦ZooKeeper版本建議模式學(xué)習(xí)/測(cè)試3.4.x及以上3.7.x及以上KRaft或ZooKeeper生產(chǎn)小規(guī)模3.2.x或3.3.x3.6.x及以上ZooKeeper優(yōu)先老項(xiàng)目維護(hù)跟隨現(xiàn)網(wǎng)版本跟隨現(xiàn)網(wǎng)版本ZooKeeper模式關(guān)于Scala版本的選擇我個(gè)人的習(xí)慣是直接選擇官方推薦的那個(gè)不要隨便換。因?yàn)镵afka的啟動(dòng)腳本和部分工具在編譯時(shí)是跟Scala版本綁定的你換一個(gè)編譯版本可能出現(xiàn)微妙的兼容性問(wèn)題。2. 前置環(huán)境準(zhǔn)備JDK配置與ZooKeeper安裝2.1 JDK版本怎么選不是越新越好Kafka是基于JVM運(yùn)行的系統(tǒng)JDK版本直接影響它的運(yùn)行穩(wěn)定性和性能表現(xiàn)。很多新手上來(lái)就裝最新的JDK 17甚至JDK 21結(jié)果發(fā)現(xiàn)Kafka啟動(dòng)報(bào)一堆錯(cuò)或者明明可以啟動(dòng)但G1垃圾回收器一直報(bào)警告日志。Kafka官方對(duì)不同版本的JDK支持情況是有明確聲明的。以Kafka 3.x為例官方博客明確表示支持Java 8、11和17但不同的小版本支持力度不一樣。我自己的實(shí)際經(jīng)驗(yàn)是Kafka 3.0到3.3之間用JDK 8最省心3.4之后的版本用JDK 11或者17更好。但如果你用的是JDK 8u系列的老版本比如8u111之前要注意修一下JCE無(wú)限制強(qiáng)度權(quán)限的問(wèn)題否則加解密相關(guān)的功能會(huì)受限。這里有個(gè)很重要的認(rèn)識(shí)Kafka對(duì)JDK版本的要求不只看Kafka本身還要看你使用的客戶端庫(kù)。如果你的生產(chǎn)者、消費(fèi)者代碼是用JDK 8編譯的而B(niǎo)roker跑在JDK 17上雖然大多數(shù)情況能兼容但如果你用的高版本JDK對(duì)某些舊庫(kù)做了一些安全策略調(diào)整還是可能出現(xiàn)一些奇怪的異常。所以我的建議是環(huán)境統(tǒng)一、版本統(tǒng)一。開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境盡量保持一致。我常用的JDK配置步驟如下下載JDK建議使用tar.gz包而不是rpm或deb包方便自由切換版本并解壓到指定目錄。配置JAVA_HOME和PATH環(huán)境變量。驗(yàn)證版本java -version。這里有個(gè)細(xì)節(jié)值得注意Kafka的啟動(dòng)腳本kafka-server-start.sh默認(rèn)會(huì)找到JAVA_HOME對(duì)應(yīng)的java來(lái)執(zhí)行如果你配置了多個(gè)JDK版本一定要確認(rèn)JAVA_HOME指向了正確的那一個(gè)。2.2 ZooKeeper到底能不能省KRaft模式與ZooKeeper模式的取舍關(guān)于ZooKeeper的爭(zhēng)論在Kafka社區(qū)已經(jīng)持續(xù)了好幾年。Kafka 2.8引入KRaft模式時(shí)官方說(shuō)的是逐步去除ZooKeeper依賴到了3.3版本才把KRaft標(biāo)注為生產(chǎn)可用。但即便到今天很多生產(chǎn)環(huán)境依然用的是ZooKeeper模式。先說(shuō)結(jié)論如果你是新學(xué)Kafka我建議兩種模式都試一遍。先搭ZooKeeper模式理解清楚Kafka的元數(shù)據(jù)管理曾經(jīng)是怎么運(yùn)作的再搭KRaft模式感受一下新架構(gòu)的簡(jiǎn)潔。如果只是出于學(xué)習(xí)目的KRaft模式確實(shí)更簡(jiǎn)單你只需要下載Kafka一個(gè)包不用額外維護(hù)ZooKeeper集群配置也少了一半。但是說(shuō)到生產(chǎn)環(huán)境我目前的態(tài)度還是偏保守。ZooKeeper模式的積累足夠深很多運(yùn)維工具、監(jiān)控腳本、故障處理方案都是圍繞這套架構(gòu)寫(xiě)的KRaft模式雖然簡(jiǎn)化了部署但它在一些極端場(chǎng)景下的表現(xiàn)比如控制器切換、元數(shù)據(jù)同步延遲還沒(méi)有經(jīng)過(guò)足夠長(zhǎng)的時(shí)間驗(yàn)證。而且KRaft的配置參數(shù)和ZooKeeper模式差異很大網(wǎng)上能查到的參考資料相對(duì)少一些。如果你選擇了ZooKeeper模式那ZooKeeper的安裝和Kafka是兩個(gè)獨(dú)立的步驟。ZooKeeper本身是一個(gè)輕量級(jí)的分布式協(xié)調(diào)服務(wù)它也需要JDK配置相對(duì)簡(jiǎn)單核心就是dataDir、clientPort、tickTime這幾個(gè)參數(shù)。我推薦的ZooKeeper部署方式有兩種單機(jī)模式學(xué)習(xí)用配置一個(gè)dataDir和clientPort就能啟動(dòng)。集群模式至少三個(gè)節(jié)點(diǎn)通過(guò)myid文件和zoo.cfg里的server列表來(lái)做選舉。不少人在單機(jī)環(huán)境里圖省事會(huì)把ZooKeeper以單機(jī)模式跑Kafka的Broker也只跑一個(gè)節(jié)點(diǎn)兩者都在同一臺(tái)機(jī)器上。這在開(kāi)發(fā)環(huán)境沒(méi)問(wèn)題但要注意ZooKeeper的數(shù)據(jù)目錄和Kafka的日志目錄不要共用同一個(gè)磁盤(pán)分區(qū)否則日志量大的時(shí)候會(huì)把ZooKeeper的數(shù)據(jù)文件擠爆。3. 單節(jié)點(diǎn)Kafka環(huán)境搭建一步步從下載到收發(fā)消息3.1 下載、解壓和目錄結(jié)構(gòu)解析Kafka的二進(jìn)制包可以在Apache官網(wǎng)找到下載時(shí)認(rèn)準(zhǔn)帶bin后綴的tar.gz包不要下載source包。解壓之后你會(huì)看到一個(gè)很典型的目錄結(jié)構(gòu)我來(lái)逐個(gè)說(shuō)一下這些目錄的作用bin目錄存放所有的啟動(dòng)腳本和運(yùn)維腳本比如kafka-server-start.sh、kafka-topics.sh、kafka-console-producer.sh、kafka-console-consumer.sh。config目錄存放所有配置文件最核心的是server.properties、producer.properties、consumer.properties還有ZooKeeper模式下用到的log4j.properties。libs目錄Kafka運(yùn)行依賴的所有jar包包括Kafka本身的jar包、Scala標(biāo)準(zhǔn)庫(kù)、各種第三方依賴。logs目錄這個(gè)目錄默認(rèn)不一定存在Kafka啟動(dòng)后會(huì)創(chuàng)建里面存放的是Kafka運(yùn)行日志注意這個(gè)logs目錄跟Topic消息的數(shù)據(jù)目錄是兩個(gè)不同的概念。很多新手會(huì)把Kafka的運(yùn)行日志和數(shù)據(jù)目錄搞混。Kafka默認(rèn)的數(shù)據(jù)目錄由配置文件里的log.dirs指定存儲(chǔ)的是Topic分區(qū)的實(shí)際消息文件而logs目錄或者運(yùn)行時(shí)通過(guò)log4j配置指定的目錄存的是Kafka自身的運(yùn)行日志。這兩個(gè)一定要分開(kāi)如果一個(gè)磁盤(pán)滿了另一個(gè)也會(huì)被拖累。解壓后第一件事我建議先看一眼config/server.properties文件把所有帶注釋的配置都過(guò)一遍心里有個(gè)數(shù)。不要急著啟動(dòng)先理解每個(gè)核心參數(shù)是干嘛的。3.2 server.properties核心參數(shù)詳解broker.id、log.dirs、listeners、zookeeper.connectKafka的環(huán)境配置絕大多數(shù)工作量都集中在server.properties這一個(gè)文件上。這個(gè)文件里的參數(shù)非常多但關(guān)鍵的、需要你來(lái)配置的其實(shí)就那么十幾個(gè)其他的基本可以用默認(rèn)值。下面這些是我在每次搭建環(huán)境時(shí)都會(huì)逐一確認(rèn)的參數(shù)broker.id這個(gè)參數(shù)是Kafka集群里每個(gè)Broker節(jié)點(diǎn)的唯一標(biāo)識(shí)必須是整數(shù)。單機(jī)環(huán)境下默認(rèn)是0集群環(huán)境里每個(gè)節(jié)點(diǎn)必須不同。有一點(diǎn)提醒broker.id不要求跟IP綁定但運(yùn)維上建議做一個(gè)IP到broker.id的映射表否則節(jié)點(diǎn)多了以后根本分不清誰(shuí)是誰(shuí)。listeners這個(gè)參數(shù)決定了Kafka對(duì)外提供服務(wù)的地址和端口。默認(rèn)是PLAINTEXT://:9092也就是本機(jī)所有網(wǎng)卡的9092端口。如果你是單機(jī)測(cè)試用默認(rèn)就好但如果你要遠(yuǎn)端的客戶端來(lái)連接切記要配置成內(nèi)網(wǎng)IP或者0.0.0.0并且要同時(shí)關(guān)注advertised.listeners。我遇到過(guò)不止一次Kafka Broker看著啟動(dòng)成功了客戶端卻連不上最后發(fā)現(xiàn)是advertised.listeners寫(xiě)成了localhost客戶端拿到的地址自然是本機(jī)。log.dirs這個(gè)參數(shù)指定了消息數(shù)據(jù)的存儲(chǔ)目錄。默認(rèn)是/tmp/kafka-logs這個(gè)強(qiáng)烈建議改掉。原因很簡(jiǎn)單很多操作系統(tǒng)會(huì)定期清理/tmp下的文件把你的Kafka數(shù)據(jù)當(dāng)垃圾文件清掉。而且/tmp分區(qū)的大小往往受限消息量一大就會(huì)爆盤(pán)。我一般在規(guī)劃環(huán)境時(shí)會(huì)單獨(dú)掛一塊數(shù)據(jù)盤(pán)或者至少用一個(gè)專門(mén)的目錄比如/data/kafka-logs確保磁盤(pán)空間和業(yè)務(wù)數(shù)據(jù)的隔離。zookeeper.connect這是ZooKeeper模式下最重要的參數(shù)指定了Kafka連接ZooKeeper的地址。單機(jī)模式就是一個(gè)IP加2181端口集群模式可以用逗號(hào)分隔多個(gè)ZooKeeper節(jié)點(diǎn)比如192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181。如果你只有一個(gè)ZooKeeper節(jié)點(diǎn)那直接寫(xiě)一個(gè)地址就行。還有一個(gè)可選配置chroot路徑比如192.168.1.10:2181/kafka這樣可以讓Kafka的元數(shù)據(jù)都保存在ZooKeeper的/kafka節(jié)點(diǎn)下避免跟其他使用共用ZooKeeper的服務(wù)沖突。num.partitions這個(gè)參數(shù)是Topic的默認(rèn)分區(qū)數(shù)默認(rèn)是1。如果你后續(xù)不打算手動(dòng)為每個(gè)Topic指定分區(qū)數(shù)建議提前改成一個(gè)合理的值比如3。我見(jiàn)過(guò)很多測(cè)試環(huán)境因?yàn)槟J(rèn)分區(qū)數(shù)是1導(dǎo)致消費(fèi)者并行度上不去還以為是代碼寫(xiě)錯(cuò)了。log.retention.hours消息保留時(shí)間默認(rèn)是168小時(shí)也就是7天。開(kāi)發(fā)測(cè)試環(huán)境下可以縮短比如24小時(shí)省磁盤(pán)。生產(chǎn)環(huán)境根據(jù)業(yè)務(wù)數(shù)據(jù)保留策略來(lái)定不是越長(zhǎng)越好因?yàn)镵afka清理過(guò)期數(shù)據(jù)是定期執(zhí)行的數(shù)據(jù)量大的時(shí)候清理線程本身也會(huì)占用I/O資源。auto.create.topics.enable這個(gè)參數(shù)默認(rèn)是true意思是當(dāng)你往一個(gè)不存在的Topic發(fā)送消息時(shí)Kafka會(huì)自動(dòng)創(chuàng)建這個(gè)Topic。開(kāi)發(fā)環(huán)境方便但生產(chǎn)環(huán)境我建議改成false。原因是自動(dòng)創(chuàng)建的Topic用的是默認(rèn)分區(qū)數(shù)和副本數(shù)容易打亂集群的資源規(guī)劃而且一旦有客戶端誤發(fā)了消息就會(huì)產(chǎn)生一堆意想不到的Topic增加運(yùn)維負(fù)擔(dān)。3.3 啟動(dòng)驗(yàn)證用兩條命令把數(shù)據(jù)跑起來(lái)環(huán)境配置完成后啟動(dòng)順序必須嚴(yán)格遵守先啟動(dòng)ZooKeeper再啟動(dòng)Kafka Broker。ZooKeeper的啟動(dòng)命令是bin/zookeeper-server-start.sh config/zookeeper.properties注意這個(gè)腳本在Kafka的bin目錄下是Kafka自帶的那份ZooKeeper啟動(dòng)腳本。如果你之前沒(méi)裝過(guò)ZooKeeper直接用這個(gè)就行如果你另外裝了獨(dú)立的ZooKeeper那最好用獨(dú)立安裝的那個(gè)來(lái)啟動(dòng)避免版本不一致帶來(lái)問(wèn)題。Kafka Broker的啟動(dòng)命令是bin/kafka-server-start.sh config/server.properties如果你希望進(jìn)程在后臺(tái)運(yùn)行可以加上-daemon參數(shù)bin/kafka-server-start.sh -daemon config/server.properties啟動(dòng)完之后我強(qiáng)烈建議做一次完整的功能驗(yàn)證而不僅僅是看進(jìn)程在不在。完整驗(yàn)證分三步走第一步確認(rèn)進(jìn)程存在。用jps或者ps -ef | grep kafka檢查是否有Kafka進(jìn)程同時(shí)確認(rèn)ZooKeeper進(jìn)程存在。第二步創(chuàng)建一個(gè)測(cè)試Topic。在Kafka的bin目錄下執(zhí)行bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test-topic --partitions 3 --replication-factor 1如果沒(méi)有報(bào)錯(cuò)再執(zhí)行bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test-topic這條命令應(yīng)該能看到Topic的分區(qū)分布信息比如Partition 0、Partition 1、Partition 2以及對(duì)應(yīng)的Leader和Replicas。第三步用控制臺(tái)生產(chǎn)者和消費(fèi)者實(shí)測(cè)消息通路。打開(kāi)一個(gè)終端啟動(dòng)消費(fèi)者bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning再開(kāi)另一個(gè)終端啟動(dòng)生產(chǎn)者bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic在生產(chǎn)者終端輸入一條消息回車切到消費(fèi)者終端看能不能收到。能收到就說(shuō)明整個(gè)環(huán)境已經(jīng)通了。這里有一個(gè)細(xì)節(jié)新版Kafka推薦用--bootstrap-server來(lái)連接Broker但很多老教程還在用--zookeeper來(lái)操作Topic。如果你用的是3.x版本某些場(chǎng)景下--zookeeper已經(jīng)被標(biāo)記為過(guò)度方案比如創(chuàng)建Topic這種操作直接走Broker的API就行不需要再經(jīng)過(guò)ZooKeeper。另外消費(fèi)者用--from-beginning參數(shù)會(huì)把歷史消息全部拉下來(lái)如果你只想看新消息就不要加這個(gè)參數(shù)。4. 三節(jié)點(diǎn)集群環(huán)境搭建高可用不是加一臺(tái)機(jī)器那么簡(jiǎn)單4.1 多節(jié)點(diǎn)配置要點(diǎn)broker.id不能重復(fù)listeners端口不能沖突單節(jié)點(diǎn)環(huán)境跑通之后很多人會(huì)想著直接上集群。這個(gè)想法很好但集群環(huán)境跟單機(jī)環(huán)境有個(gè)本質(zhì)區(qū)別單機(jī)環(huán)境你只需要關(guān)心參數(shù)能不能跑起來(lái)集群環(huán)境你還得關(guān)心節(jié)點(diǎn)之間的網(wǎng)絡(luò)、角色、選舉、數(shù)據(jù)冗余任何一個(gè)環(huán)節(jié)沒(méi)有配好集群就是假集群表面上三個(gè)進(jìn)程都在實(shí)際上副本數(shù)一直處于不健康狀態(tài)。我搭建三節(jié)點(diǎn)集群時(shí)的規(guī)劃是這樣的三臺(tái)虛擬機(jī)或三臺(tái)物理機(jī)上每臺(tái)都部署一個(gè)ZooKeeper實(shí)例和一個(gè)Kafka Broker實(shí)例。ZooKeeper三節(jié)點(diǎn)組成一個(gè)集群Kafka三節(jié)點(diǎn)組成一個(gè)Broker集群。如果你機(jī)器資源緊張可以把ZooKeeper和Kafka混部在同一批機(jī)器上但生產(chǎn)環(huán)境強(qiáng)烈建議分開(kāi)部署因?yàn)閆ooKeeper對(duì)磁盤(pán)延遲比較敏感混部會(huì)導(dǎo)致它的選舉和同步性能受影響。先配置ZooKeeper集群。每個(gè)ZooKeeper節(jié)點(diǎn)需要一個(gè)myid文件存放在dataDir指定的目錄下內(nèi)容就是當(dāng)前節(jié)點(diǎn)的ID比如1、2、3。zoo.cfg里要配置dataDir/data/zookeeper clientPort2181 server.1192.168.1.10:2888:3888 server.2192.168.1.11:2888:3888 server.3192.168.1.12:2888:3888 tickTime2000 initLimit10 syncLimit5三個(gè)節(jié)點(diǎn)的zoo.cfg基本一樣唯一的區(qū)別就是myid文件不一樣。2888是ZooKeeper節(jié)點(diǎn)間同步數(shù)據(jù)的端口3888是選舉端口這兩個(gè)端口必須在防火墻里放行很多集群搭完發(fā)現(xiàn)ZooKeeper一直處于LOOKING狀態(tài)就是因?yàn)檫@兩個(gè)端口被防火墻攔了。Kafka集群的server.properties配置相比單機(jī)只多幾個(gè)關(guān)鍵點(diǎn)broker.id要分別設(shè)置為0、1、2。zookeeper.connect要配置成三個(gè)ZooKeeper地址的列表中間用逗號(hào)分隔。log.dirs建議每個(gè)節(jié)點(diǎn)用不同的目錄比如本機(jī)的/data/kafka-logs不要用共享存儲(chǔ)。listeners和advertised.listeners在每臺(tái)機(jī)器上要配置本機(jī)的內(nèi)網(wǎng)IP。這里最容易出錯(cuò)的是復(fù)制配置時(shí)忘了改IP。4.2 集群?jiǎn)?dòng)驗(yàn)證Topic副本數(shù)的意義和副本狀態(tài)檢查集群搭建完成后的驗(yàn)證跟單節(jié)點(diǎn)的驗(yàn)證不一樣重點(diǎn)從能不能收消息變成了數(shù)據(jù)有沒(méi)有副本、副本有沒(méi)有同步。啟動(dòng)完三臺(tái)Broker后先看集群狀態(tài)。在任意一臺(tái)機(jī)器上執(zhí)行bin/kafka-topics.sh --bootstrap-server 192.168.1.10:9092 --describe --topic test-topic如果這個(gè)Topic的ReplicationFactor大于1那么輸出結(jié)果里每個(gè)分區(qū)的Replicas應(yīng)該有三臺(tái)Broker的IDIsrIn-Sync Replicas里的節(jié)點(diǎn)數(shù)量應(yīng)該跟副本數(shù)一致。如果Isr里的節(jié)點(diǎn)數(shù)少了一個(gè)說(shuō)明有一個(gè)Broker的同步落后了這通常意味著這個(gè)節(jié)點(diǎn)的磁盤(pán)I/O或者網(wǎng)絡(luò)有問(wèn)題需要單獨(dú)排查不能簡(jiǎn)單重啟了事。創(chuàng)建集群Topic時(shí)的副本數(shù)建議設(shè)置成2或者3。副本數(shù)不是越大越好因?yàn)槊吭黾右粋€(gè)副本就意味著多一份磁盤(pán)空間占用和副本同步的流量開(kāi)銷。一般三節(jié)點(diǎn)集群副本數(shù)設(shè)2就能容忍單點(diǎn)故障設(shè)3能容忍更極端的故障場(chǎng)景但代價(jià)是磁盤(pán)占用翻倍。我個(gè)人習(xí)慣在測(cè)試環(huán)境設(shè)2生產(chǎn)環(huán)境設(shè)3。驗(yàn)證消息通路時(shí)生產(chǎn)者和消費(fèi)者的--bootstrap-server參數(shù)要指向集群中任意一個(gè)Broker的地址即可不用寫(xiě)三個(gè)。Kafka客戶端會(huì)自動(dòng)通過(guò)這個(gè)Broker拉取整個(gè)集群的元數(shù)據(jù)知道哪個(gè)分區(qū)在哪個(gè)Broker上。關(guān)于集群還有一個(gè)常見(jiàn)誤解以為連上集群中任何一個(gè)節(jié)點(diǎn)就能保證消息不丟。實(shí)際上消息不丟依賴的是副本同步機(jī)制生產(chǎn)者要設(shè)置acks參數(shù)。acksall代表等待所有副本都確認(rèn)才返回成功這是保證消息不丟的前提。acks0或acks1雖然性能高但節(jié)點(diǎn)故障時(shí)會(huì)有丟消息風(fēng)險(xiǎn)。這個(gè)參數(shù)雖然是在生產(chǎn)者端配置的但搭建環(huán)境時(shí)就應(yīng)該想清楚因?yàn)楹罄m(xù)所有測(cè)試都基于這個(gè)前提。4.3 KRaft模式集群搭建去掉ZooKeeper后的配置差異既然前面提到了KRaft模式這里順便補(bǔ)充一下KRaft模式下集群怎么搭。KRaft模式最大的變化是不需要ZooKeeperKafka自身用一組Controller節(jié)點(diǎn)來(lái)管理元數(shù)據(jù)。部署KRaft模式的集群首先要做的事跟ZooKeeper模式完全不同你要先格式化存儲(chǔ)目錄生成一個(gè)Cluster ID然后每個(gè)節(jié)點(diǎn)都要用到這個(gè)IDController節(jié)點(diǎn)和Broker節(jié)點(diǎn)的配置分開(kāi)放到不同文件。KRaft模式下核心的配置項(xiàng)是process.roles這個(gè)參數(shù)可以設(shè)置broker、controller或者broker,controller決定了節(jié)點(diǎn)的角色。如果是混部模式就寫(xiě)broker,controller如果是分角色部署Controller節(jié)點(diǎn)寫(xiě)controllerBroker節(jié)點(diǎn)寫(xiě)broker。node.id相當(dāng)于broker.id和controller.id的統(tǒng)一體集群內(nèi)唯一。controller.quorum.voters指定Controller節(jié)點(diǎn)列表的地址和ID類似ZooKeeper的server列表但格式不同比如1192.168.1.10:9093,2192.168.1.11:9093,3192.168.1.12:9093。我第一次試KRaft模式時(shí)卡得最久的就是格式化這一步。Kafka提供了一個(gè)腳本用于生成Cluster ID和格式化存儲(chǔ)目錄bin/kafka-storage.sh random-uuid bin/kafka-storage.sh format -t uuid -c config/kraft/server.properties如果你漏掉了格式化這一步直接啟動(dòng)Kafka會(huì)報(bào)一個(gè)Directory is not formatted的錯(cuò)誤。這個(gè)錯(cuò)倒是很直觀但如果你用的是舊版本的KRaft報(bào)錯(cuò)信息可能不一樣有時(shí)候是No meta.properties found這種經(jīng)驗(yàn)不夠的話很容易誤以為配置寫(xiě)錯(cuò)了。KRaft模式解決了ZooKeeper模式的兩個(gè)痛點(diǎn)一個(gè)是減少了需要維護(hù)的外部依賴另一個(gè)是元數(shù)據(jù)的讀寫(xiě)路徑更短Controller可以直接通過(guò)內(nèi)部Raft協(xié)議管理元數(shù)據(jù)不用再跨ZooKeeper同步。但就像我前面說(shuō)的學(xué)習(xí)理解ZooKeeper模式的核心概念仍然有價(jià)值因?yàn)楹芏嗌a(chǎn)環(huán)境還沒(méi)有遷到KRaft。5. 環(huán)境搭建中的高頻問(wèn)題與排查思路5.1 網(wǎng)絡(luò)和端口問(wèn)題連不上、超時(shí)的常見(jiàn)原因Kafka環(huán)境搭建遇到最多的就是網(wǎng)絡(luò)問(wèn)題。由于Kafka涉及多端口、多角色任何一個(gè)端口沒(méi)放行、任何一個(gè)IP配置不匹配表現(xiàn)出來(lái)的癥狀都是連不上。我先列一個(gè)端口清單讓你心里有個(gè)數(shù)組件默認(rèn)端口用途ZooKeeper客戶端端口2181Kafka連接ZooKeeperZooKeeper節(jié)點(diǎn)間同步端口2888集群節(jié)點(diǎn)間數(shù)據(jù)同步ZooKeeper選舉端口3888Leader選舉通信Kafka Broker端口9092客戶端生產(chǎn)和消費(fèi)消息Kafka Controller端口KRaft9093Controller節(jié)點(diǎn)間通信排查網(wǎng)絡(luò)問(wèn)題的通用思路是先確認(rèn)進(jìn)程監(jiān)聽(tīng)在哪個(gè)端口再確認(rèn)目標(biāo)機(jī)器的端口能不能通最后再去查應(yīng)用日志。第一步在Broker節(jié)點(diǎn)上執(zhí)行ss -tlnp | grep 9092確認(rèn)Kafka確實(shí)監(jiān)聽(tīng)在9092。如果這里顯示監(jiān)聽(tīng)的IP是127.0.0.1而不是0.0.0.0或你的內(nèi)網(wǎng)IP那說(shuō)明listeners配置有問(wèn)題。第二步在客戶端機(jī)器上執(zhí)行telnet或nc測(cè)試到Broker的9092端口是否可通。比如telnet 192.168.1.10 9092如果通了會(huì)顯示Connected to...。如果超時(shí)要么是防火墻擋了要么是安全組規(guī)則沒(méi)放行要么是網(wǎng)絡(luò)不通。第三步查看Kafka的server.log。這個(gè)日志文件在logs目錄下里面會(huì)記錄Broker的啟動(dòng)過(guò)程、連接的客戶端地址、異常信息。很多網(wǎng)絡(luò)問(wèn)題都能從日志里找到線索比如Connection refused代表目標(biāo)端口沒(méi)監(jiān)聽(tīng)Connection timed out代表網(wǎng)絡(luò)層就不通。還有一種很隱蔽的情況Broker配置正常、端口也通但客戶端還是報(bào)TimeoutException。這種情況大概率是advertised.listeners配置成了127.0.0.1或localhost客戶端從集群元數(shù)據(jù)里拿到的是Broker自己的回環(huán)地址自然無(wú)法連接。我在本地用Docker跑Kafka時(shí)就經(jīng)常遇到因?yàn)槿萜鲀?nèi)的localhost跟宿主機(jī)的localhost不是同一個(gè)概念。5.2 磁盤(pán)和內(nèi)存問(wèn)題爆盤(pán)、OOM、垃圾回收異常Kafka對(duì)磁盤(pán)和內(nèi)存的要求是出了名的高很多環(huán)境搭起來(lái)能用但一有流量就掛多半是這兩塊配置沒(méi)做好。先說(shuō)磁盤(pán)。Kafka是順序?qū)懴⒌倪@個(gè)特性決定了它對(duì)磁盤(pán)的訴求是順序?qū)懶阅芤枚皇请S機(jī)讀性能要多強(qiáng)。所以服務(wù)器選型時(shí)機(jī)械硬盤(pán)不是不能用但一定要確認(rèn)RAID策略和磁盤(pán)轉(zhuǎn)速SSD當(dāng)然是更好的選擇尤其是NVMe盤(pán)。另外Kafka的數(shù)據(jù)目錄千萬(wàn)不要放系統(tǒng)盤(pán)也不要跟ZooKeeper或數(shù)據(jù)庫(kù)的數(shù)據(jù)目錄混在一起。爆盤(pán)問(wèn)題是最常見(jiàn)的。Kafka會(huì)在磁盤(pán)剩余空間低于一定閾值時(shí)報(bào)警默認(rèn)的閾值是低于500MB進(jìn)入只讀模式低于200MB甚至無(wú)法啟動(dòng)。這個(gè)參數(shù)是log.flush.offset.checkpoint.interval.ms之后的保護(hù)機(jī)制實(shí)際上不同版本的閾值定義不太一樣。我的經(jīng)驗(yàn)是給Kafka單獨(dú)規(guī)劃一塊盤(pán)容量按單日消息量乘以保留天數(shù)再乘以副本數(shù)來(lái)估算比如每天100GB流量、保留3天、2副本那至少要600GB空間再留30%的余量就是800GB左右。再說(shuō)內(nèi)存。Kafka本身是Java應(yīng)用JVM堆內(nèi)存大小通過(guò)bin/kafka-server-start.sh里的KAFKA_HEAP_OPTS來(lái)控制默認(rèn)是1GB-Xmx1G -Xms1G。開(kāi)發(fā)測(cè)試環(huán)境1GB綽綽有余但生產(chǎn)環(huán)境一般建議8GB到16GB起步。這里有個(gè)容易忽視的點(diǎn)Kafka的頁(yè)緩存Page Cache是操作系統(tǒng)層面的不占JVM堆內(nèi)存所以不要一味地調(diào)大JVM堆要給操作系統(tǒng)留足夠的內(nèi)存來(lái)緩存消息數(shù)據(jù)。我見(jiàn)過(guò)有人把JVM堆設(shè)成32GB結(jié)果系統(tǒng)內(nèi)存全被JVM吃掉了頁(yè)緩存幾乎為0Kafka的吞吐量反而下降因?yàn)榇罅孔x操作要走磁盤(pán)而不是走內(nèi)存緩存。如果Kafka進(jìn)程在啟動(dòng)后不久就報(bào)OutOfMemoryError優(yōu)先檢查KAFKA_HEAP_OPTS是不是太小。如果是GC時(shí)間過(guò)長(zhǎng)導(dǎo)致的暫??梢韵瓤碐C日志判斷是堆太小還是有大對(duì)象的分配問(wèn)題。實(shí)用的做法是先保持默認(rèn)的G1收集器不變把堆內(nèi)存調(diào)到合適范圍然后觀察一段時(shí)間不要急著換GC算法。5.3 高并發(fā)環(huán)境下的JVM參數(shù)優(yōu)化聊到環(huán)境搭建很多人以為配置完就完事了實(shí)際上Broker的JVM參數(shù)對(duì)高并發(fā)場(chǎng)景的影響非常大。我在壓測(cè)Kafka環(huán)境時(shí)習(xí)慣在啟動(dòng)前就把JVM的GC日志打開(kāi)這樣就算后面出問(wèn)題也有據(jù)可查。默認(rèn)的bin/kafka-server-start.sh腳本里JVM參數(shù)是通過(guò)KAFKA_HEAP_OPTS和KAFKA_JVM_PERFORMANCE_OPTS兩個(gè)環(huán)境變量注入的。KAFKA_JVM_PERFORMANCE_OPTS默認(rèn)內(nèi)容大概是這樣-server -XX:UseG1GC -XX:MaxGCPauseMillis20 -XX:InitiatingHeapOccupancyPercent35 -XX:DisableExplicitGCG1GC是默認(rèn)的收集器MaxGCPauseMillis控制目標(biāo)停頓時(shí)間InitiatingHeapOccupancyPercent控制G1并發(fā)標(biāo)記的觸發(fā)閾值。這些參數(shù)不需要你去改但建議你理解它們的作用。如果遇到GC停頓時(shí)間飆升除了調(diào)參更要先找代碼層面有沒(méi)有問(wèn)題比如消費(fèi)者客戶端頻繁創(chuàng)建新的Consumer實(shí)例、生產(chǎn)者端批量參數(shù)沒(méi)設(shè)置好都會(huì)導(dǎo)致Broker端負(fù)載異常。一個(gè)非常多人忽略的參數(shù)是num.network.threads和num.io.threadsnum.network.threads默認(rèn)是3負(fù)責(zé)處理網(wǎng)絡(luò)請(qǐng)求。num.io.threads默認(rèn)是8負(fù)責(zé)處理實(shí)際的讀寫(xiě)請(qǐng)求。當(dāng)你的生產(chǎn)者、消費(fèi)者連接數(shù)很多或者請(qǐng)求量很大的時(shí)候這兩個(gè)線程數(shù)可能會(huì)出現(xiàn)瓶頸。我在壓測(cè)環(huán)境里一般會(huì)先調(diào)到num.network.threads8、num.io.threads16再根據(jù)監(jiān)控逐步調(diào)整。不過(guò)提醒一句調(diào)線程數(shù)不是越多越好線程多了會(huì)帶來(lái)線程切換的額外開(kāi)銷反而降低性能。5.4 安全認(rèn)證配置的基礎(chǔ)注意事項(xiàng)如果搭建的Kafka環(huán)境要暴露到不受信任的網(wǎng)絡(luò)或者公司內(nèi)部有安全合規(guī)要求那SSL認(rèn)證和SASL認(rèn)證就是繞不開(kāi)的話題。Kafka的安全配置涉及兩個(gè)鏈路客戶端到Broker、Broker到ZooKeeper如果是ZooKeeper模式。配置不當(dāng)會(huì)導(dǎo)致一個(gè)詭異的現(xiàn)象客戶端能用telnet連上9092端口但一執(zhí)行消費(fèi)命令就報(bào)認(rèn)證失敗。配置SSL時(shí)核心步驟是生成服務(wù)端證書(shū)和客戶端證書(shū)然后分別配置到server.properties的ssl.keystore.location和ssl.truststore.location客戶端則在連接參數(shù)里配置ssl.truststore.location。這一步的坑在于證書(shū)的CNCommon Name必須和Broker的主機(jī)名匹配否則SSL握手時(shí)會(huì)因?yàn)橹鳈C(jī)名校驗(yàn)失敗而拒絕連接。如果是IP直連方式的客戶端需要在證書(shū)里配置subjectAlternativeName的IP否則一樣會(huì)失敗。如果你只是想簡(jiǎn)單驗(yàn)證SASL配置可以用Kafka自帶的配置模板config目錄下有kafka_server_jaas.conf等文件可以直接參考。不過(guò)請(qǐng)記住一個(gè)原則安全認(rèn)證先在內(nèi)網(wǎng)測(cè)試環(huán)境驗(yàn)證完整流程再上生產(chǎn)不要在生產(chǎn)環(huán)境直接開(kāi)啟認(rèn)證后才發(fā)現(xiàn)客戶端全部連不上。6. 可視化工具與后續(xù)學(xué)習(xí)建議6.1 常用監(jiān)控工具從命令行到可視化的過(guò)渡環(huán)境搭好之后純命令行操作效率太低了尤其是多個(gè)主題、多個(gè)消費(fèi)者組的情況下用眼睛看命令輸出根本盯不過(guò)來(lái)。我通常會(huì)搭一個(gè)可視化的監(jiān)控界面把集群狀態(tài)、Topic列表、消費(fèi)者Lag這些關(guān)鍵指標(biāo)集中展示出來(lái)。常見(jiàn)的方案有三種Kafka UI舊稱UI for Apache Kafka界面清爽支持多集群管理能直接查看Topic、分區(qū)、消費(fèi)者組、消息內(nèi)容對(duì)新手很友好是我首推的學(xué)習(xí)工具。Kafdrop輕量級(jí)Spring Boot項(xiàng)目一條命令就能啟動(dòng)但功能相對(duì)簡(jiǎn)單適合快速查看消息。Prometheus Grafana這是生產(chǎn)環(huán)境的主流監(jiān)控方案通過(guò)JMX Exporter暴露Kafka指標(biāo)然后在Grafana上配置看板。對(duì)新手前期不推薦因?yàn)閷W(xué)習(xí)曲線比較陡但你遲早要接觸它。如果你只是想快速看消息內(nèi)容Kafdrop的啟動(dòng)非常簡(jiǎn)單一條jar命令就行java -jar kafdrop.jar --kafka.brokerConnect192.168.1.10:9092如果你希望功能更全Kafka UI會(huì)是一個(gè)更完整的選擇。它支持通過(guò)配置文件來(lái)管理多個(gè)Kafka集群還能展示某個(gè)消費(fèi)者組的消費(fèi)進(jìn)度和Lag。但注意Kafka UI本身是Java應(yīng)用部署時(shí)同樣要注意JDK版本兼容。6.2 從環(huán)境搭建到生產(chǎn)級(jí)安裝要補(bǔ)的功課環(huán)境搭建只是第一步從能跑到生產(chǎn)可用中間差的功課還有很多。我總結(jié)幾個(gè)優(yōu)先級(jí)比較高的事項(xiàng)第一參數(shù)基線化。把搭建環(huán)境的參數(shù)記錄下來(lái)打包成標(biāo)準(zhǔn)配置模板不要再每次手動(dòng)改。Kafka的參數(shù)實(shí)在太多今天改了一個(gè)明天忘了是誰(shuí)改的后面排查問(wèn)題全靠猜。用配置文件管理工具把server.properties作為代碼管理記錄變更歷史這會(huì)省下無(wú)數(shù)時(shí)間。第二日志和監(jiān)控的打通。Kafka本身的運(yùn)行日志需要采集Broker的指標(biāo)需要暴露。生產(chǎn)環(huán)境至少要保證進(jìn)程級(jí)別的存活監(jiān)控、磁盤(pán)使用率監(jiān)控、Topic級(jí)別的消息積壓監(jiān)控。任何一個(gè)維度缺失線上問(wèn)題都會(huì)難定位。第三消息發(fā)送的可靠性驗(yàn)證。環(huán)境搭好之后不要只測(cè)一條消息能不能通。要測(cè)異常場(chǎng)景殺掉一個(gè)Broker看消息會(huì)不會(huì)丟、消費(fèi)者能不能繼續(xù)消費(fèi)把磁盤(pán)空間占滿看Kafka的表現(xiàn)是什么重啟一個(gè)節(jié)點(diǎn)看分區(qū)副本能不能自動(dòng)恢復(fù)。這些測(cè)試沒(méi)有一個(gè)會(huì)白做它們才是環(huán)境真正可用的證明。7. 寫(xiě)在最后的幾點(diǎn)經(jīng)驗(yàn)Kafka環(huán)境搭建這件事看起來(lái)就是個(gè)安裝配置流程但在實(shí)際操作中真正花時(shí)間的往往不是安裝本身而是對(duì)Kafka運(yùn)行機(jī)制的理解和對(duì)各種邊界情況的處理。我陸陸續(xù)續(xù)搭過(guò)開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境和生產(chǎn)環(huán)境每一次都會(huì)踩到不一樣的坑但有幾個(gè)經(jīng)驗(yàn)是通用的第一啟動(dòng)順序永遠(yuǎn)不要亂。ZooKeeper模式先啟ZooKeeper再啟KafkaKRaft模式雖然不需要ZooKeeper但每個(gè)節(jié)點(diǎn)要保證controller角色先就緒再啟動(dòng)broker角色。順序錯(cuò)了表面上不會(huì)有立刻的崩潰但后臺(tái)的錯(cuò)誤日志會(huì)持續(xù)報(bào)。第二版本統(tǒng)一是一個(gè)硬性原則。Kafka、ZooKeeper、JDK、客戶端庫(kù)、可視化工具的版本盡量在同一個(gè)兼容矩陣?yán)镞x。不要小看版本差異我在測(cè)試環(huán)境遇到過(guò)因?yàn)榭蛻舳藥?kù)版本太低連不上3.x版本的Broker報(bào)的是UnsupportedVersionException根本讓人摸不著頭腦。第三日志和監(jiān)控從第一天就做好。哪怕只是單機(jī)測(cè)試環(huán)境也把Kafka的日志級(jí)別調(diào)整好把關(guān)鍵目錄的空間監(jiān)控加好。等到出了大問(wèn)題再來(lái)加監(jiān)控往往已經(jīng)晚了。如果你正在搭Kafka環(huán)境我的建議是先按這篇的步驟把單機(jī)環(huán)境跑通再把三節(jié)點(diǎn)集群跑通最后再考慮安全認(rèn)證和監(jiān)控完善。不要一上來(lái)就追求完美架構(gòu)先把基礎(chǔ)鏈路跑起來(lái)你才能真正理解Kafka的每一個(gè)組件在干什么。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲日韩XXX| 国产丝袜欧美在线视频| 精品国产乱码久久久久久久久1| 国产拍偷精品网站| 精品视频久久| 女人香蕉久久毛毛片精品| 日韩二三区| 97在线精品| 一类无码操逼视频| 国产亚洲精品A在线观看下载| 国模91| 熟妇亚洲一区二区三区| 99自拍视频在线| 一区二区三区免费岛国片| 蜜桃久久一区二区| 超碰在线一区二区三区| 日日干日日摸| 国产精品3| 操老熟女AV| 狠狠干精品一二三四五六2022| 色区久久| 日本三级黄页| 久久精品72| 欧美熟妇人体| 九月AV| 91在线免费观看处女| 久久99久久99久久99人受| 欧美黑人精品在线播放| 日韩精品1区2区中文字幕| 亚洲伊人久久综合97| 蜜臀久久久99久久久久 | 日本三级小说中文字幕| 一区二区三区日韩欧美 | 先锋女优在线观看视频| 97在线/亚洲| 久久天堂网| 超碰97在线中文| 神马久久中文字幕| 亚洲自拍欧美国产首页网曝| 亚洲综合夜色| 韩国嫰模上门援交视频| 一区超碰一区| 日韩在线观看三级电影| 精品国产91av一区二区三区| 亚洲色图欧美视频| 91日韩在线| 99热精品在线观看| 九久9热| 色第一页| 久久久久深夜无码| 国产路线专区| 91东京热男人的天堂| 亚洲乱色熟女一区| 久草大| 欧洲色色| 少妇三P| 综合视频91| 欧美性爱超碰97| 97se亚洲综合自| 国产97在线 | 亚洲| 97综合久久| 操B视频日韩无码| 手机在线人成免费视频| 色女综合| 天天日天天干少妇日| 丁香七月婷婷| 欧美操逼熟女| 91n美女视频| 欧美亚洲se91| 美女91| 久久久久久网址| 日本操逼视频导航| 久久久久成人蜜桃精品| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 97在线视频观看| 日韩黄片视频试看| 欧美夜夜狠| 欧美在线55555| 狠狠爱夜夜| 欧美一级国产一级| 欧洲精品一区二区三区| 污污污8888| 这里只有精品97| 99婷婷一区二区| 免费作爱一级视频| 嗯嗯啊啊用力视频免费| 色97干| 自拍偷拍国产欧美日韩韩| 国产福利av精彩对白| 亚洲国产剧情少妇激情| 亚洲第二页| 国产av强奸美女| 激情五月天婷婷| 亚av顶级裸体一区二区三区四区五区 | 可免费观看的av毛片中日美韩| 91香蕉视频在线观看免费| 狠狠干婷婷| 欧美另类自拍| 综合网天天| 亚洲一卡2卡3卡4卡乱码网站| 农村妇女一级二级三级视频| 亚洲AV色图一区| 1级黄色夫妻对换性交免费看| 亚洲夜夜欢无码一区二区| 久久这里精品国产99丫e6| 人妻第一页| 色综合久| 老鸭窝日丰县女人| 色yeye成人免费视频| 久久的网站啊啊啊啊啊| 亚洲欧洲日本精品中文a∨| 欧美十八禁在线看| 亚洲精品黑丝| 亚洲国产婷婷在线播放| 亚洲精品国产av天美传媒| 乱伦熟女论坛| 九一综合网| 日韩字幕一区| 男人天堂站| 99亚洲精品| 色呦呦、国产精品| 精品人妻一区二区三区四区石在线| 91久久久久久久| 日本亚欧爱爱| 久热婷婷| 亚洲电影中字一区二区| 综精品久久久aaaa| 26uuu性| 91 综合 色| 中文字幕一区电影在线观看| 97视频新免费| 久久激情视频| 天天日天天操天天射河南省| 1204av韩国| 欧美v亚洲v综合v国产v妖精| 亚欧美综合网。| 67194无码不卡| 亚洲国产精品无码AV久久| 青青草自拍视频在线播放| 欧美色图91| 欧美黄页在线| 一级AV性爱| 成人老鸭窝人人在线视频| 天天夜躁日日躁狠狠2002| 亚洲欧美日韩国产丝袜自拍中文| 亚洲αv一区二区三区| 男人天堂久久精品不卡| 蜜臀久久99精品久久综合| 日日爱99| 操久久久久| 青青国产精品在线| 国产亚洲女v在线观看| 91欧美性| 丝袜AV一二三区| 99久久久无码国产精品性啊聊| 97在线无精品| 五月丁香婷婷综合网| 日韩15p| 国产13区| 91狠婷| 巨爆乳一区二区爆乳区| 91性网| 国产AV人人 夜夜人人澡| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | jiujiujiujingpin| 殴美,日韩国产伦精品| 日韩黄片视频试看| 日韩精品一区二区三区色欲| 精品视频在线观看精品| 免费国产| 成人五月天色网| 日日狠狠久久偷偷色综合免费| 99无码狠狠久久| 色爽——AV| 男人的天堂2019AV| 五月丁香拍拍激情综合三级| 国产精品白丝在线播放| 亚洲九九视频| 97超碰欧美手机| 久久久久久久久久久久欧美日| 欧美人妻二区三区| 中文一区二区三区影院| 久久五十路熟女人妻| 东京热AV男人的天堂| 国产精品网站免费| 久久天天躁日日躁狠狠躁| 久久欧美性爱视频| 午夜福利av电影在线| 国产97在线 | 亚洲| www.成人无码| 肉丝无码中文高清| 97视频www| 亚州色图第三区| 大香蕉五月天婷婷| 亚洲偷拍自拍在线视频| 7777奇米影视久久| 欧美一级久久久久久久大片动画| 亚洲欧美日韩偷拍色图| 国产欧美另类久久久精品课程| 蘋果手機免費看成人Av| 青青草日本中文字幕| 国产熟女少妇一区| av天天在线观看| 五月天激情网站| 国产18精品亚洲精品| 国产精品美女在线一区| 久久久婷婷| 99re6久热只有精品6在线直播| 看一级黄色视频| 婷婷丁香五月天亚洲天堂网| 国产a级午夜毛片| 久久一级无码精品毛片6| 精品美女久久久久| 超碰在线香蕉| 超碰成人国产| 熟女突然公开看18禁影片| 精品一区二区成人动漫| 狠狠干狠狠色| 看看小穴| 夜夜福利| 欧美亚洲系列| JIZZJIZZ亚洲女人被躁| 国产成人无码啪| 亚洲成a人在线观看久| 大黄片做爱的大的| 一牛影视成人片免费| 91午夜无码| 亚州操逼图| 秋霞久久亚洲精品成人| www…国产操逼| 五月激情影院| 精爱久久| 国产麻豆91欧美一区二区久久婷婷国产精品| 欧美色日| 伊人久久AV诱惑悠悠| 蜜臀久久99精品久久久久久酒店| 校园春色 欧美| 欧美日韩午夜精品一区二区三区| 成人乱人伦一区二区| 国产精品欧美日韩久久| 综合色久| 九一精品牛牛一区二区| 人人人人插| 熟女视频久久| 久操 高清| 久久亚码| 操屄日韩| 激情AV| 欧美色66| 91老妇女| 国产成人 综合亚洲 天堂| 国产黄色av大片网站| 天天插天天插| 91天射| 96精品久久| 琪琪精品免费一区二区三区| 江都AV在线| 涩涩久久精品| 欧美人体性爱互联网第一页婷婷日本| av天堂精品久久| 十八禁啪啦拍视频无遮挡| 国产天天骚| 国产精品禁久久久精品| 金莲网址| 观看免费区二区三区二| 久久风骚城市| 99九九久久| 好舒服视频| 97超碰欧美手机| 18禁的网站在线| 91视频观看网站| 九九九九九九九九九九九蜜桃| 蜜臀久久99精品久久久久| 中国国产精品一区视频| 久久免费中文字幕在线观看| 少妇色欲综合网2| 亚洲欧美日韩免费电影| 免费的av网| 欧美性天天| 9+1视频网址| 超碰天天操| 无码不卡八戒| 超碰 另类 欧美 | 97精品视频在线播放| 青娱乐二区免费| 久久性爱视频| 91蜜臀人妻中文字幕在线| 艹精品| 国产精品亚洲四五区在线观看| 成人国产二区三区在线,男女精品。| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产91精品在线免费| 成人性爱电影一区二区| 97精选久久| 国产精品视频一区二区三区八戒| 久久九精品| 逼操网站| 风月影院男女十八禁| 国产成人拍国产亚洲精品| 自拍丝袜美腿人妻| 国产肏逼网站| 91网站18+| 91爆操视频| 久久99深爱久久99精品| 国产超碰| 青草成人免费视频一COm| 色婷婷香蕉| 天天爱天天操| 日韩一999精品| 熟妇综合一区二区三区| 国产视频一区二区三区久久亚洲天堂| 超碰日韩人妻| 中文字幕女同在线| 一区二区三区精品视频| 97精品免费| 超碰久久中文| 女人被男人桶爽视频网站| 男人把坤坤插入女人的下体| 国产成人精品日本亚洲语言| 91丨人妻丨国产丨丝袜| 精品小视频在线| 芊芊操逼视频无码| 久久有码视频| 欧洲Au麻豆| 亚洲第一黄色av网站| 亚洲精品黑丝| 九九精品美女高溯喷水| 亚洲精品xxx| 色欧美在线| 熟妇熟女亚洲天堂网| 永久免费观看的毛片的网站| 人妻超碰青青草98| 清纯唯美激情四射| 欧美性爱系列| 久久久久亚洲Av无码专区老牛影视 | 亚爽爽爽爽爽爽爽爽| 日韩av一级黄片| 香蕉精品二区二区| a人欧美综合天堂麻豆| 91在线视频免费播放| 在线 欧美 亚洲| 人人澡人人爽人人精品| 少妇xx精品| 600国产精品视频| 麻豆婷婷成人一二三| 永久免费发布性爱网| 九九热三级片| av日韩中文字幕| 狠狠躁AV| 五月丁香色情| 亚洲精品官网在线观看| 在线视频97| 精品妇操一区二区三区| 日本九九久久99播| 九九无码| 亚洲激情在线一区二区| 国产精品成人无码a v毛片| 亚洲97网站| 欧美一区二区日韩传媒搭讪精品| 五月天黄色av| 狠狠色婷婷| 18禁网站在线播放| 九九精品无码专区免费| 国产精品麻豆成人av| 99re6在线视频播放免费精品| 天天综合欧美综合| 老熟女91av| 久热大香蕉| 日本高清_区二区三区| 乱伦熟女专区| 人人做天天爱| 天天色,天天干,天天干| 狠狠色噜噜狠狠狠狠2018| 超碰97中文| rivers-china.com| 亚洲天堂另类| 欧美色97| 97在线公开视频| 校园春色欧美| 后入合集| 亚洲性高潮| 97伊人超碰| 久久久免费高清中文视频| 日韩欧美天天爽爽爽天天爽爽| 欧美激情视频一区二区三区不卡| 花野真衣| 熟女中出视频| 精品九九九九九九九九九| 国产青视频| 91久久九九精品国产综合| 97精品视频| 国产精品久久久| 国产9区| 人人摸人人入| 亚洲第一黄色av网站| 自怕偷自怕亚洲精品| 欧美日韩国产另类综合| 色嗨嗨在线| 3p国产色噜噜一区| 婷婷五月天伊人| 午夜情侣自拍网站| 成人天天看站长推荐| 国产精品午夜成人福利| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 日本乱人伦片中文三区| 不卡一区二区日本视频| 日本黄 R色 成 人网站| 麻豆2区1区天美| 亭亭丁香激情| 久久久久921| 人妖欧美一区二区| 青春草莓视频在线观看网址| 亚洲成人无码影院| 婷婷中文字幕| 日欧美色| 久久东京热久久| 国产丝袜欧美在线视频| 色综合久久88色综合久久天天| 欧美啪啪女女| 欧美永久激情一区二区| 欧美黑人91| 亚洲日韩美女丝袜美腿人妻视频| 久久黄片国产一区二区| 色五月激情网| 精产国品一区二三产品| 97国产综合欧美| 久久久久9999| 在线视频日韩欧美国产| 超碰色中文| 亚洲一二三四区在线免费看视频| 丰满熟女一区二区三区在线播放| 蜜桃视频成a人v在线| 99无码视频| 国产精品密臀网在线观看| 91日韩网站| 色欲Av人妻精品一区二| 色婷婷影院| 蜜桃色院一区久久| 国产精品熟女一区二区三区| 精品国产www久久| 亚洲国产精品久久久久婷婷青年| 综合大香蕉美。| 欧美一区二区三区互相| 综合久久99| 囯产精品强| 久久久新亚洲AV| 欧美在线视频99| 女人的天堂大香蕉网| 久久午夜色播影院免费高清| 五月丁香啪啪网| x97av| 日本潮催一卡操| 日韩精品区二区三区不卡| 精品无码久久久久| 欧美性爱18观看| 亚洲 欧美 中文 日韩超碰 | 中字乱伦AV| av久日| 日本黄色精品专区网站| 日韩99神马视频播放片在线播放| 久久蜜桃一区二区| 天天日B夜夜干B时时操B| 亚洲www91| 岛国片在线播放| 亚洲综合影视| 日本高清视频xxxx| 躁躁日曰躁2020| 在线播放成人高清免费视频| 中文字幕片| 99色网| 中文字幕视频在线观看一区二区| 色姑娘综合网| 99热超碰| av在线观看不卡网站| 中文字幕在线观看网页| 婷婷干黄色| 老汉网| 免费伦费视频在线观看| 中文字幕人乱码中文字的预防方法| 最新av网站在线观看| yiren97| 亚洲精品国产熟女| 亚洲高清少妇| 蜜乳AV色欲AVAV无码| 久草色在线观看| 一起草av| 蜜臀无码视频在线观看| 亚洲91网站| 国产1769在线| 91中文字幕制服丝袜免费视频| 九九Av| 久久永久无码人妻视频| 伊人网在线观看| 人妻人人做人人澡人人爽欧美一区| 十八禁电影伊人网| 蜜桃色色网站视频三区| 日韩免费高清大片在线| 91精品人妻五十路| 婷婷五月丁香五月| 少妇啪啪自拍| 亚洲一区中文字幕| 久久欧洲| 四色永久成人网站| 秋霞一级A片黄色视频| 成人精品视频| 欧美少妇熟女| 国产成人亚洲精品无码古代早漏男| 蜜桃臀久久| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久免费精品视频免一| 超碰色综合| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 精品色色| 天天综合网日韩7799| 日日干日日摸| 午夜毛片高清免费不卡| 五月婷婷六月丁香| 成人日韩3| 亚洲无码一区成人免费午夜| 精品然女一区二区| 婷婷五月天激情网| 日本操嫩b网| 久久中出| 鸥美中出| 欧美日韩精品久久久久东北老熟妇| 欧美日韩性感| 欧亚免费视频| 99re公开精品免费视频| 中国一级αV| 人妻色情天天操| 97干天天| oumeisetupian| 91蜜桃婷婷狠狠久久综合9色| 欧美精品久久久久久久丰满| 天天影视亚洲| 伊人网在线点播| 亚洲爱爱视频一区二区| 欧美一区二区三区大综合| 婷婷色五月激情| 午夜福利在线合集| 免费一级a毛片久久久久久鸭绿欲| 国产视频第二页| 91精品少妇搡搡搡| 精国久久一区二区三区98| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 蜜臀亚洲中文| www.狠狠干.coom | 97K超碰在线| 黄久久| 五月天亚洲网| 欧美性视频二区三区| 久久中日麻豆| 青青草日本中文字幕| 北条麻妃99精品青青久久| Julia在线播放亚洲久久| 三级片网站在线播放| 粉嫩粉嫩一区性色AV片| 国产一级操B视频| 三级特黄60分钟播放| 国产精品久久久久无码Av网曝门| 亚欧无码线免费观看视频| 成年无码动漫av片无尽在线 | 免費黃色視頻觀看一| 黄片无码在线制服| 综合欧美日本三级| 91超级碰碰碰| 91N欧美| 欧美久久婷| 美女淫穴| 伊人亚洲综合| 91 亚欧| 欧美伊人电影| 啊啊啊免费视频| 国产在线综合福利网站| 久久成人国产精品| 激情综合网五月婷婷五月天| 国产一区二区啪啪视频| 26uuu欧美| 精品人人| 国产偷人妻精品一区二区在线| 97丝袜亚洲在线播放| 大香蕉日亚洲日本亚大| 久久久久久久久久久久色网| 人人操欧美风骚| 一区二区精品日韩欧美在线观看| 男人高清无码一区二区| 色色五月天婷婷| 无码欧美有限公司| 加勒比海成人视频网| 亚洲成人AB| 亚洲中文字幕熟女| 国产操偷| www鬼畜国产男人的天堂| 免费精品国偷自产在线在线 | 亚洲drav色图| 五十路三区在线| 18禁中文字幕| 欧美极品少妇交| 日韩丝袜高跟制服在线观看| 三及片网站| 美女熟妇色| 久热无码| 国产视频小说| 韩国三级色呦呦| 亚洲欧综合另类无码一区| 一级AV性爱| 亚洲视频中文一区| 欧美日韩大香蕉| 欧美色青| 久久久新亚洲AV| 嫩草影院性色| 国产怡红院| 熟女高潮精品一区二区| 乱操乱伦AV| 色婷婷五月综合| 97精品97久久| 你懂的在线观看区国产| 九九热在线视频| 欧美色自拍| 操啊国产| 啊啊啊com| 欧美亚州综合网图片| 俄罗斯一区二区视频在线观看| 色99视频| 日本久久久久久久久久| 亚洲制服aⅴ中文字幕| 久久9亚洲| 欧美熟妇精品黑人巨大91| 91三级理论片播放器| 亚洲色图 欧美热图 清纯唯美 另类自拍| 天天干1区2区在线| 国产一区在线观看无码AV| 天堂资源欧美| 黑人综合网| 另类在线| 欧美天天干| 天天舔天天| 国产熟女一区二区| 激情丁香婷婷| 国产熟码AV| 日本在线视频导航| 天天影视之亚洲综合网| 在线国产福利网址导航| 亚洲网污污污污| 精品成人动漫一区二区| 大香网伊人久久综合网eew| 欧美真人抽搐一进一出gif| 日本亚洲vr欧美不卡高清专区| 97伊人网| 久久草草欧美精品| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 韩国三级三级BD在线| 欧美成人免费在线观看| 蜜臀AV一区二区三区激情综合| 一区二区中文| 九九热免费在线国产视频伊人五月| 国产女人视频三四五区| 91 丝袜在线| 爱妃国产亚洲视频中文字幕| 欧美日本天堂| 亚洲国产精品无码AV在线| 五月天加勒比啪| av凤凰久久久| 国产精品一区二区密臀| 欧美熟爽综合| 国产精品视频自拍在线| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 久久精品国产Aⅴ| 夜夜狼人妻| 国产精品毛片?v一区二区三区 | 免费无码婬片AAAA片直播色戒| 青青草视频久久久久| 无码丰满熟妇一区二区浪潮AV| 午夜精品久久999热蜜桃介男人用| 家庭乱伦网站国产| 91情色在线| 亚洲中文字幕有码视频一区二区三区| 亚洲色系另类精品国产| 少妇人妻在线| 亚洲。日韩。欧美| 在线综合色| 大香蕉淫人| 天天综合欧美综合| 亚洲一区二区性爱电影| 欧美色亚洲| 国产一区二区久久| 中文字幕啊啊啊在线观看视频| 乱伦强奸区日韩| 欧美最大综合网| 欧美毛片在线网| 日本东京热加勒比久久| 97伊人超碰| 四虎免费看黄| 久久99久久99久久99人受| 无码高清少妇久久| 97操碰| 色婷婷久久综合超碰| www久久99| 高清国产精品无码| 91亚洲影视| 一区二区三区成人| 欧美中文字幕男人天堂久久精品 | 亚洲砖码砖专无区2023| 日韩兔费看黄片| 干b网| 日韩精品操少妇| 大香蕉亚洲中文| 丁香五月综合| 丰满美女一级毛片在线播放| 国内一级精品| 97在线资源| 爱爱动态试试看6 0秒| 色色色网站| 日本熟妇人妻中出视频| 日韩偷拍一区二区三区| 蜜臀久久99精品久久久久久| 亚洲少妇激情一区二区三区| 97欧美精品综合| 亚洲色吧网| 久热91| 久久夜黄色无码A级大片| 1769成人国产精品视频| 人妻熟女一区二区在线视频| 超碰69| 欧美日本天堂| 免费9 1久久| 暖暖精品二区三区观看| 91狠婷| 日本高清电影欧美色图| 色色综合网站| 久久99视频| 99热只有这里有精品| 久久一区二区高清免费| 亚洲激情综合另类男同| 成人精品久久久午夜福利| 精品国产一区探花在线观看| 欧美激情专区| 超碰95| 一区二区三区视频| 免费一二区| 青青草国产欧美非洲黑人| 99在线精品视频| 精品久9| 亚洲色天| 人妻少妇久久中文字幕一区二区 麻豆 | 麻豆一区二区三区在线看 | av最新免费中文字幕| 国产在线激情视频| ..日韩av毛片精品久久久| 欧美另类精品xxxx| 极品美女福利在线观看| 亚洲精品国产精品乱码不99| 日本理论在线| 激情小说五月天| 天美精品av| 射丝袜高跟鞋99| 欧州激情视频在线一区二区| 日韩中文字幕2020| 亚洲女人毛茸茸91| 蜜桃天美传媒AV一区二区三区| 日韩欧美中文字幕搭讪巨乳美人妻视频| 青娱乐 青青青操 日逼| 伊人麻豆传媒| 人人操 欧美| 波多野42部无码喷潮在线观看 | 九九九九免费视频| 大茄子熟女AV导航| dy888午夜老子影视达达兔| 成人自拍三级在线观看| 国语国产操逼伊人AV网| 五月婷在线| 久久理论字幕视频| 色男人色天堂东京热| 后入式福利| 国产在线视频午夜精华在| 国产精品一区二区校花| 亚洲av无码成人精品国产| 国产最新AV| 性爱AV天堂| 日夜精品| 欧美老妇曰批的视频| 亚洲av无码成人精品国产| 国产精品视频电影| 人人摸人人舔一区二区| 久久久久久精| 五月天婷精品激情| 国产原创精品| 少妇高潮喷水无套久久久久久| 97国产精品一区| 成人av影院在线观看| 丁香五月激情啪啪| 久9久9精品| 国产综合久久久麻桃个| 中国一级特黄大片护士| 天天干少妇| 四虎在线免费视频| 国产日韩精品suv| www.色综合| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 再深点灬舒服灬太大了添视频 | 日本中文熟女视频| 免费观看啪视频| 亚洲 另类 丝袜 自拍 动漫| 欧美乱欲| 日韩中文字幕二区| 欧美日韩另类字幕中文| 午夜成人爽爽爽爽A片李冰冰| 婷婷深爱五月| 日本人妻天堂网站在线播放| 97视频在线播放| 欧美日韩第一页| 天天超级碰碰碰| 中文字幕日韩电影人妻| 国产后入精品| 91热| 啊视频在线| 很狠操| 国产h片在线观看视频| 人人摸人人干| 亚洲无线观看久久| 亚洲av夫妻操穴网| 理论久久婷婷网8| 日韩人妻 中文字幕| 午夜精品久久久久久久99热影院| 一起草高清无码| 免费观看欧美日韩操逼视频 | 天天影视网综合少妇| 久久午夜神马| 婷婷五月天av| 九九九999久久久网站| 久久一区二区三区入口| 丰满人妻一区| 国产精品香蕉热久久新品| 欧美日韩国产人人| 日韩A优精品在线观看| 亚洲欧洲无码97久久精品| 国产极品粉嫩馒头一线天av| 人妻精品4K4K4K4K4| 国产自制av蜜乳| 精品v1区| 少妇一级婬片免费放一级a性色.| 欧美老妇女内射网址| 日韩人妻一区二区| 国产专区路线| 亚洲无码国产精品久久| 欲射影视| 岛国黄色大片网站| 又黄又硬又粗又长国产视频| 精品国产肉丝袜在线拍国语| 亚洲狠狠入| 亚洲日产专区| 人人操人人舒服| 亚洲老司机123专区| 插日本熟女视频| 人妻熟妇一区二区三区| 91oumei| 韩国免费播放一级毛片| 99热精品国产| 日韩激情中文字幕有码| 97 国产精品| 天天舔天天| 欧美日韩*字幕一区| 激情小说亚洲视频| 天天综合精品| www.99色| 欧美性Fer办公室秘书| 色情五月丁香| 日本成人在线不卡一区二区三区 | 中文字幕五月婷婷免费| 东北操逼| 久久久久成人蜜桃精品| 久久精品 六十路 熟女 欧美| 欲香欲色天天天综合和网| 国产原创剧情在线丝袜| 69精品| 久草精品一区| 天天影视色香色欲| 日本免费一级AAA大片器| 久9久9久9久9久9久9| 97香焦色区| caoni国产亚洲av| 蜜臀久久99精品久久久久久| 天天影视射综合网| 九九热精品| 九月丁香婷婷色| 久久久精精精| 国产精品天干天干综合网麻豆| 九九RE视频在线精品| 日韩av电影成人在线| 天堂av最新电影网| 在线视频一区二区传媒| 亚卅熟女乱色| 这里只有精品视频在线观看麻豆 | 国产精品一二三区福利| AV不卡在线| 久久久久久九九九九| 龙兴卡官方查询| 歐美一級亂黃99在綫精品| 国产女人91精品嗷嗷嗷嗷| 在线播放成人高清免费视频 | 天天爽天天| 国产精品探花视频| 亚洲人成网站7777| 超碰97COm中文| 东北女人操比视频| 玖玖爱综合| 六月婷婷综合| 久久香蕉综合一本到3atv| 福利视频香蕉免费一区二区在线| 九九热只有精品| 天天影视射综合网| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美激情精品久久久| 亚洲国产一级中文综合久久天堂在线免费观看 | 国产传媒美日韩av| 午夜激情床戏激情| 伊人久久88国产女| 精品国产精品一区二区| www.大香| 麻花豆传媒剧国产MV出差| av激情亚洲五月天| 精…码一二三区| 国产精品97视频| 一区二区三区四区五区久久久久久| 97 视频在线| 久久综合中文国产| 暖暖精品二区三区观看| 人人天天欧洲| 欧美色图天堂在线| 97色色网| 亚洲人成网www| 五月婷婷六月天| 9999久久久久| 色情成人五月天| 久久久婷| 丰满人妻一区二区三区| www.久久| 日本高清电影欧美色图| julia高潮后不停追击中出| 99操视频| 国产亚洲99久久精品| 国产67194| 激情综合五月| 亚洲欧美一区二区三区在钱蜜桃| 玖色AV| 91女网站| 亚欧美天堂在线| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 大但人体久久久久| 欧美肥臀在线| 91性网| 91精品国产91久久青草| a片自拍直播视频| 日韩免费三级黄片电影| 国产精品黄色三级av| 奇米狠999| 婷婷91| 人人喜人人妻| 男人 天堂 日 亚洲| 欧美综合 站| 玖色av| 欧美综合天天| 1人人看人人摸人人操| 亚欧无码在线| 亚洲精品色| 久热久一区二区三区| 国产精品视频| 夫妻AV网站| 另类图片综合| 亚洲va有码在线天堂| 国模精品一区二区三区苹果色戒| 伊人成人中文字幕久久网| 欧美色图中文字幕| 97视频在线视频| 黄页av| 精品高清一区二区三区三州| 久久久久久AⅤ无码免费肉站| 国产原创自拍| 亚州日韩97| 91天堂| 欧美性爱91| 久久人妻办公室视频| 97久久精品国产| 亚洲色婷婷综合久久久久中文| 新亚洲无码| 亚洲综合精品国产一区| 超碰97欧美在线| 亚洲AV在线资源| 91欧美亚洲| 午夜寂寞欧美| 国产suv精品一区二区四区999 | 日美免费黄片| 亚洲日本韩国极品一区二区| 日本久久999| 日本孕妇一区二区视频操逼免费看| 国产精品久久99日日| 裸体美女国产免费久久久网站| 麻豆精品三区视频| WWW.操逼.COM| 色五月综合网| 国产和美国毛片| av网站国产主播在线| 丁香六月综合激情| 99re在线视频国产| 日本精品网站在线中文| 国产精品老熟女一区二区| 日本久久久精品电影| 岛国毛片在线观看免费| 亚洲另类久操网| 亚洲小说视频| 精品在线观看视频在线| 国产亚洲欧洲在线观看| 加勒比综合88| 丁香五月天激情网站| 国产十八禁视频| 欧美高清18A片| 日韩精品区二区三区不卡| 97jingpin| 国产精品亚洲一级av第二区| 人人手机欧洲亚洲国产人妻| 一区二区三区一亚洲中文字幕、综合区灬 | 一起草高清无码| 欧美成人都市人妻| 大香蕉2017| 五月丁香社区婷婷日韩欧美精品影院| 久草精品国产蜜臀| 国产在线综合网| 欧洲无码一区二区| 91久久婷婷| av一区二区三区 中文| 少妇99| 日韩欧美俄罗斯A片| 欧美激情久| 中国一级操逼视频| 国产肏屁眼视频| 日本操逼aaaaa| 精品人妻一区二区免费蜜桃| 综合网天天| 91在线|亚| 俄罗斯及免费在线看| 中文字幕第页| 97免费在线观看| 精彩视频日韩| 操b在线观看| 美女的肌被草喷水视频| 免费αV在线视频| 嫩草伊人久久精品| 伊人丁香五月婷婷| 使劲用力艹少妇视频一区二区| 巨爆乳一区二区爆乳区| 日韩美女高潮喷水视频| 国产99精品一区二区三区免费| 好舒服视频| 乱伦系列一区二区| 亚洲无码一区成人免费午夜| 五月天激情网站| 亚州欧美色图| 中文字幕加勒比海高清无码免费视频 | 国产成人www免费人成看片| 午夜福利 成人 91| 99精品无码| 天天澡天天爽日日AV| 亚洲五区熟女| 色yeye成人免费视频| 国产欧美日产一区二区三区 - 国产欧美日 | 嗯啊不要在线观看嗯啊| 放黄片放3级黄片没穿衣服| 宗合情欲网| 色色福利| 中文字幕黄色一起草| 偷窥自拍亚洲色图| 中国少妇XXXX做受| 97操B| 国产精品久久9| 欧美精品xxxwww| 欧美成人精品一区| 怡红院怡春院| 日韩国产成人自拍视频| 青娱乐91| 色在线69堂| 午夜精品久久久久久久男人的天堂| 在线观看亚洲成人精品| 日本 情色 1区2区3区| 91久青| 粉嫩在线一区二区懂色| 久久久久亚洲| 性天堂| 日韩欧美福利视频看看| 亚洲欧美精品久| 久久久久免费少妇| 岛国网址国产 | 无码人妻精品一区二区中文| 青青草综合在线| av亚洲天堂资源网站| 97久久超碰| 超97在线精品视频| 国产免费黄色一级大片| 亚洲做性| 欧美亚洲se91| 色婷婷aV一区二区三区麻豆综合| 国产精品久久久久久 百度| 激情黄色片在线观看| 欧美综合天堂| 9999久久久久| 91骚妇| 美女露胸露尿口| 啊v视频在线观看| 国产亚洲中文不卡二区| 精品九九九| 99热婷婷一区二区三| 任我爽在线视频免费观看| 91久久午夜无码鲁丝片久久人妻| 亚洲色啪| 国产精选三级在线观看| 欧美黑人精品在线播放| 思思久热在线精品66| 极品色综合| 67914在线兔费成人视频| 9长久久精品| 国产中文福利| 欧美综合色站| 99r九九| 超碰公开久久网| 九九这里只有精品| 久操精品网| wwwcaobibi| 天堂中文日本在线观看| 黑人白女精品一区| 国产精品嫩草影院午夜两性| 国产品精品自在在线午夜免费| 中文字幕AV中出| 狠狠色五月亚洲91| 超碰 欧美| 老鸭窝在线视频播放| 日本国产二线女色| 台湾佬中文娱乐网久久久久久久久久com| 欧美 日韩 另类 亚洲| 欧美久久婷婷| 97天天弄| 91在线/欧洲| 色偷偷人人玩人人舔人人操人人摸人人爽 | 91精品人妻啪啪间| 中国熟女91| 欧美性五月| 欧美综合综合| 天天天干977| 亚洲色图欧美| 国产在线视频午夜精华在| 尤物网站91| 人人做,人人操,人人摸| 日本1区2区不卡视频| 日韩精品碰碰| 天天干夜夜一操| 青娱乐日韩无码| 国产免费一区二区在线A片视频| 开心五月婷婷激情| 97人妻色| 中文字幕88av在线| 欧美色综合图片| 亚洲激情久久久伊人综合|