亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

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

Kafka環(huán)境搭建全攻略:從單機到集群的避坑指南 有人問我Kafka到底難不難學(xué)。我的回答一直是環(huán)境搭建這一關(guān)過了后面就順了過不了后面一天到晚都在跟各種報錯打架。Kafka不是那種解壓就能跑的軟件它對操作系統(tǒng)、JDK版本、網(wǎng)絡(luò)配置、磁盤規(guī)劃都有要求任何一個環(huán)節(jié)不合適啟動時可能不報錯但生產(chǎn)環(huán)境一跑就出問題。這篇是Kafka學(xué)習(xí)系列的第二篇我默認(rèn)你已經(jīng)了解了Kafka的基本概念主題、分區(qū)、消費者組、副本這些如果你還不太清楚建議先看系列第一篇把核心概念過一遍。這篇的主要內(nèi)容很聚焦怎么把Kafka環(huán)境從零搭起來每一步該怎么做、為什么這么做、踩過哪些坑全部用實際操作的思路來講。我主要從三個場景來講單機開發(fā)環(huán)境搭建、三節(jié)點集群搭建、以及環(huán)境搭建過程中必踩的坑和排查思路。中間會穿插我在實際項目中總結(jié)的一些經(jīng)驗和教訓(xùn)比如版本怎么選、參數(shù)怎么調(diào)、磁盤怎么規(guī)劃這些常規(guī)文檔里不會細(xì)說的東西。1. 為什么先別急著裝Kafka組件架構(gòu)和版本選擇比下載更重要1.1 從單機玩具到分布式事實Kafka到底需要哪些組件很多人第一次搭Kafka環(huán)境下載完壓縮包就想著趕緊解壓、啟動、跑起來。但如果你對Kafka的運行機制沒有一個整體認(rèn)知后面配置參數(shù)時會非常迷茫出了問題也不知道從哪兒排查。Kafka本身是一個分布式消息系統(tǒng)它最少需要兩類角色才能完整跑起來一類是管理分布式協(xié)調(diào)狀態(tài)的組件另一類是真正存儲和轉(zhuǎn)發(fā)消息的Broker節(jié)點。在過去很長一段時間里這個協(xié)調(diào)組件就是ZooKeeper它負(fù)責(zé)保存Kafka的元數(shù)據(jù)信息包括主題列表、分區(qū)分配情況、消費者組進(jìn)度等。雖然從Kafka 2.8版本開始官方引入了KRaft模式把元數(shù)據(jù)管理從ZooKeeper剝離了但到目前為止ZooKeeper模式依然是大量線上環(huán)境的主流選擇尤其是很多公司內(nèi)部的存量集群一時半會兒遷不過去的。所以環(huán)境搭建這件事本質(zhì)上就是在你選擇的操作系統(tǒng)上把JDK、ZooKeeper如果用的話、Kafka Broker按正確的順序和配置部署好讓它們能互相通信、協(xié)同工作。這里還要特別提一個概念Client和Server要分清楚。Kafka的Server端是Broker集群Client端是生產(chǎn)者和消費者。你搭建的環(huán)境是Server端但驗證環(huán)境是否成功必須用Client端工具或?qū)懸欢未a來測試。很多人搭建完環(huán)境說不知道成功沒有那是因為只啟動了進(jìn)程并沒有實際發(fā)消息、收消息來做驗證。1.2 版本選擇陷阱2.x和3.x的差異不只是版本號Kafka的版本選擇是我見過的最容易讓人踩坑的地方?jīng)]有之一。你去看Kafka的Apache官網(wǎng)或者GitHub Releases頁面會發(fā)現(xiàn)同一時期有多個版本并存而且2.x版本和3.x版本不僅僅是數(shù)字上的差別架構(gòu)上都有了很大的變化。首先說一下版本號的規(guī)則。從Kafka 2.0開始Apache Kafka采用了新的版本命名方式比如2.13-3.6.0這樣的格式前面的2.13是Scala編譯版本后面的3.6.0才是Kafka的版本號。很多初學(xué)者看到2.13-3.6.0就以為這是Kafka 2.13是個舊版本實際上3.6.0才是真正的Kafka版本前面的2.13指的是用Scala 2.13編譯的。如果你下載的時候只看前半段數(shù)字很容易下載到不合適的構(gòu)建版本。然后是Kafka版本和生態(tài)組件版本之間的兼容性。比如你用Kafka 3.x配一個很老的ZooKeeper 3.4.x啟動的時候可能正常但運行一段時間會出現(xiàn)一些奇怪的連接超時或會話過期錯誤。反過來Kafka 2.x配太新的ZooKeeper也會遇到配置項不兼容的問題。我的建議是如果是學(xué)習(xí)或者做技術(shù)預(yù)研首選Kafka 3.x的最新穩(wěn)定版用KRaft模式或者ZooKeeper模式都可以但推薦先用ZooKeeper模式因為網(wǎng)上資料多遇到問題好搜索。如果是公司生產(chǎn)環(huán)境一定要先確認(rèn)公司已有的監(jiān)控體系、運維工具、客戶端版本是否兼容不要盲目上最新版。如果是給老項目升級優(yōu)先考慮跨版本升級路徑比如從2.x升到3.x時建議先看官方的升級文檔里有沒有標(biāo)記為不兼容的變更。表格是版本選擇時最直觀的參考我列一個我常用的簡化對照用途推薦Kafka版本推薦ZooKeeper版本建議模式學(xué)習(xí)/測試3.4.x及以上3.7.x及以上KRaft或ZooKeeper生產(chǎn)小規(guī)模3.2.x或3.3.x3.6.x及以上ZooKeeper優(yōu)先老項目維護(hù)跟隨現(xiàn)網(wǎng)版本跟隨現(xiàn)網(wǎng)版本ZooKeeper模式關(guān)于Scala版本的選擇我個人的習(xí)慣是直接選擇官方推薦的那個不要隨便換。因為Kafka的啟動腳本和部分工具在編譯時是跟Scala版本綁定的你換一個編譯版本可能出現(xiàn)微妙的兼容性問題。2. 前置環(huán)境準(zhǔn)備JDK配置與ZooKeeper安裝2.1 JDK版本怎么選不是越新越好Kafka是基于JVM運行的系統(tǒng)JDK版本直接影響它的運行穩(wěn)定性和性能表現(xiàn)。很多新手上來就裝最新的JDK 17甚至JDK 21結(jié)果發(fā)現(xiàn)Kafka啟動報一堆錯或者明明可以啟動但G1垃圾回收器一直報警告日志。Kafka官方對不同版本的JDK支持情況是有明確聲明的。以Kafka 3.x為例官方博客明確表示支持Java 8、11和17但不同的小版本支持力度不一樣。我自己的實際經(jīng)驗是Kafka 3.0到3.3之間用JDK 8最省心3.4之后的版本用JDK 11或者17更好。但如果你用的是JDK 8u系列的老版本比如8u111之前要注意修一下JCE無限制強度權(quán)限的問題否則加解密相關(guān)的功能會受限。這里有個很重要的認(rèn)識Kafka對JDK版本的要求不只看Kafka本身還要看你使用的客戶端庫。如果你的生產(chǎn)者、消費者代碼是用JDK 8編譯的而Broker跑在JDK 17上雖然大多數(shù)情況能兼容但如果你用的高版本JDK對某些舊庫做了一些安全策略調(diào)整還是可能出現(xiàn)一些奇怪的異常。所以我的建議是環(huán)境統(tǒng)一、版本統(tǒng)一。開發(fā)環(huán)境、測試環(huán)境、生產(chǎn)環(huán)境盡量保持一致。我常用的JDK配置步驟如下下載JDK建議使用tar.gz包而不是rpm或deb包方便自由切換版本并解壓到指定目錄。配置JAVA_HOME和PATH環(huán)境變量。驗證版本java -version。這里有個細(xì)節(jié)值得注意Kafka的啟動腳本kafka-server-start.sh默認(rèn)會找到JAVA_HOME對應(yīng)的java來執(zhí)行如果你配置了多個JDK版本一定要確認(rèn)JAVA_HOME指向了正確的那一個。2.2 ZooKeeper到底能不能省KRaft模式與ZooKeeper模式的取舍關(guān)于ZooKeeper的爭論在Kafka社區(qū)已經(jīng)持續(xù)了好幾年。Kafka 2.8引入KRaft模式時官方說的是逐步去除ZooKeeper依賴到了3.3版本才把KRaft標(biāo)注為生產(chǎn)可用。但即便到今天很多生產(chǎn)環(huán)境依然用的是ZooKeeper模式。先說結(jié)論如果你是新學(xué)Kafka我建議兩種模式都試一遍。先搭ZooKeeper模式理解清楚Kafka的元數(shù)據(jù)管理曾經(jīng)是怎么運作的再搭KRaft模式感受一下新架構(gòu)的簡潔。如果只是出于學(xué)習(xí)目的KRaft模式確實更簡單你只需要下載Kafka一個包不用額外維護(hù)ZooKeeper集群配置也少了一半。但是說到生產(chǎn)環(huán)境我目前的態(tài)度還是偏保守。ZooKeeper模式的積累足夠深很多運維工具、監(jiān)控腳本、故障處理方案都是圍繞這套架構(gòu)寫的KRaft模式雖然簡化了部署但它在一些極端場景下的表現(xiàn)比如控制器切換、元數(shù)據(jù)同步延遲還沒有經(jīng)過足夠長的時間驗證。而且KRaft的配置參數(shù)和ZooKeeper模式差異很大網(wǎng)上能查到的參考資料相對少一些。如果你選擇了ZooKeeper模式那ZooKeeper的安裝和Kafka是兩個獨立的步驟。ZooKeeper本身是一個輕量級的分布式協(xié)調(diào)服務(wù)它也需要JDK配置相對簡單核心就是dataDir、clientPort、tickTime這幾個參數(shù)。我推薦的ZooKeeper部署方式有兩種單機模式學(xué)習(xí)用配置一個dataDir和clientPort就能啟動。集群模式至少三個節(jié)點通過myid文件和zoo.cfg里的server列表來做選舉。不少人在單機環(huán)境里圖省事會把ZooKeeper以單機模式跑Kafka的Broker也只跑一個節(jié)點兩者都在同一臺機器上。這在開發(fā)環(huán)境沒問題但要注意ZooKeeper的數(shù)據(jù)目錄和Kafka的日志目錄不要共用同一個磁盤分區(qū)否則日志量大的時候會把ZooKeeper的數(shù)據(jù)文件擠爆。3. 單節(jié)點Kafka環(huán)境搭建一步步從下載到收發(fā)消息3.1 下載、解壓和目錄結(jié)構(gòu)解析Kafka的二進(jìn)制包可以在Apache官網(wǎng)找到下載時認(rèn)準(zhǔn)帶bin后綴的tar.gz包不要下載source包。解壓之后你會看到一個很典型的目錄結(jié)構(gòu)我來逐個說一下這些目錄的作用bin目錄存放所有的啟動腳本和運維腳本比如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運行依賴的所有jar包包括Kafka本身的jar包、Scala標(biāo)準(zhǔn)庫、各種第三方依賴。logs目錄這個目錄默認(rèn)不一定存在Kafka啟動后會創(chuàng)建里面存放的是Kafka運行日志注意這個logs目錄跟Topic消息的數(shù)據(jù)目錄是兩個不同的概念。很多新手會把Kafka的運行日志和數(shù)據(jù)目錄搞混。Kafka默認(rèn)的數(shù)據(jù)目錄由配置文件里的log.dirs指定存儲的是Topic分區(qū)的實際消息文件而logs目錄或者運行時通過log4j配置指定的目錄存的是Kafka自身的運行日志。這兩個一定要分開如果一個磁盤滿了另一個也會被拖累。解壓后第一件事我建議先看一眼config/server.properties文件把所有帶注釋的配置都過一遍心里有個數(shù)。不要急著啟動先理解每個核心參數(shù)是干嘛的。3.2 server.properties核心參數(shù)詳解broker.id、log.dirs、listeners、zookeeper.connectKafka的環(huán)境配置絕大多數(shù)工作量都集中在server.properties這一個文件上。這個文件里的參數(shù)非常多但關(guān)鍵的、需要你來配置的其實就那么十幾個其他的基本可以用默認(rèn)值。下面這些是我在每次搭建環(huán)境時都會逐一確認(rèn)的參數(shù)broker.id這個參數(shù)是Kafka集群里每個Broker節(jié)點的唯一標(biāo)識必須是整數(shù)。單機環(huán)境下默認(rèn)是0集群環(huán)境里每個節(jié)點必須不同。有一點提醒broker.id不要求跟IP綁定但運維上建議做一個IP到broker.id的映射表否則節(jié)點多了以后根本分不清誰是誰。listeners這個參數(shù)決定了Kafka對外提供服務(wù)的地址和端口。默認(rèn)是PLAINTEXT://:9092也就是本機所有網(wǎng)卡的9092端口。如果你是單機測試用默認(rèn)就好但如果你要遠(yuǎn)端的客戶端來連接切記要配置成內(nèi)網(wǎng)IP或者0.0.0.0并且要同時關(guān)注advertised.listeners。我遇到過不止一次Kafka Broker看著啟動成功了客戶端卻連不上最后發(fā)現(xiàn)是advertised.listeners寫成了localhost客戶端拿到的地址自然是本機。log.dirs這個參數(shù)指定了消息數(shù)據(jù)的存儲目錄。默認(rèn)是/tmp/kafka-logs這個強烈建議改掉。原因很簡單很多操作系統(tǒng)會定期清理/tmp下的文件把你的Kafka數(shù)據(jù)當(dāng)垃圾文件清掉。而且/tmp分區(qū)的大小往往受限消息量一大就會爆盤。我一般在規(guī)劃環(huán)境時會單獨掛一塊數(shù)據(jù)盤或者至少用一個專門的目錄比如/data/kafka-logs確保磁盤空間和業(yè)務(wù)數(shù)據(jù)的隔離。zookeeper.connect這是ZooKeeper模式下最重要的參數(shù)指定了Kafka連接ZooKeeper的地址。單機模式就是一個IP加2181端口集群模式可以用逗號分隔多個ZooKeeper節(jié)點比如192.168.1.10:2181,192.168.1.11:2181,192.168.1.12:2181。如果你只有一個ZooKeeper節(jié)點那直接寫一個地址就行。還有一個可選配置chroot路徑比如192.168.1.10:2181/kafka這樣可以讓Kafka的元數(shù)據(jù)都保存在ZooKeeper的/kafka節(jié)點下避免跟其他使用共用ZooKeeper的服務(wù)沖突。num.partitions這個參數(shù)是Topic的默認(rèn)分區(qū)數(shù)默認(rèn)是1。如果你后續(xù)不打算手動為每個Topic指定分區(qū)數(shù)建議提前改成一個合理的值比如3。我見過很多測試環(huán)境因為默認(rèn)分區(qū)數(shù)是1導(dǎo)致消費者并行度上不去還以為是代碼寫錯了。log.retention.hours消息保留時間默認(rèn)是168小時也就是7天。開發(fā)測試環(huán)境下可以縮短比如24小時省磁盤。生產(chǎn)環(huán)境根據(jù)業(yè)務(wù)數(shù)據(jù)保留策略來定不是越長越好因為Kafka清理過期數(shù)據(jù)是定期執(zhí)行的數(shù)據(jù)量大的時候清理線程本身也會占用I/O資源。auto.create.topics.enable這個參數(shù)默認(rèn)是true意思是當(dāng)你往一個不存在的Topic發(fā)送消息時Kafka會自動創(chuàng)建這個Topic。開發(fā)環(huán)境方便但生產(chǎn)環(huán)境我建議改成false。原因是自動創(chuàng)建的Topic用的是默認(rèn)分區(qū)數(shù)和副本數(shù)容易打亂集群的資源規(guī)劃而且一旦有客戶端誤發(fā)了消息就會產(chǎn)生一堆意想不到的Topic增加運維負(fù)擔(dān)。3.3 啟動驗證用兩條命令把數(shù)據(jù)跑起來環(huán)境配置完成后啟動順序必須嚴(yán)格遵守先啟動ZooKeeper再啟動Kafka Broker。ZooKeeper的啟動命令是bin/zookeeper-server-start.sh config/zookeeper.properties注意這個腳本在Kafka的bin目錄下是Kafka自帶的那份ZooKeeper啟動腳本。如果你之前沒裝過ZooKeeper直接用這個就行如果你另外裝了獨立的ZooKeeper那最好用獨立安裝的那個來啟動避免版本不一致帶來問題。Kafka Broker的啟動命令是bin/kafka-server-start.sh config/server.properties如果你希望進(jìn)程在后臺運行可以加上-daemon參數(shù)bin/kafka-server-start.sh -daemon config/server.properties啟動完之后我強烈建議做一次完整的功能驗證而不僅僅是看進(jìn)程在不在。完整驗證分三步走第一步確認(rèn)進(jìn)程存在。用jps或者ps -ef | grep kafka檢查是否有Kafka進(jìn)程同時確認(rèn)ZooKeeper進(jìn)程存在。第二步創(chuàng)建一個測試Topic。在Kafka的bin目錄下執(zhí)行bin/kafka-topics.sh --bootstrap-server localhost:9092 --create --topic test-topic --partitions 3 --replication-factor 1如果沒有報錯再執(zhí)行bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test-topic這條命令應(yīng)該能看到Topic的分區(qū)分布信息比如Partition 0、Partition 1、Partition 2以及對應(yīng)的Leader和Replicas。第三步用控制臺生產(chǎn)者和消費者實測消息通路。打開一個終端啟動消費者bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning再開另一個終端啟動生產(chǎn)者bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic在生產(chǎn)者終端輸入一條消息回車切到消費者終端看能不能收到。能收到就說明整個環(huán)境已經(jīng)通了。這里有一個細(xì)節(jié)新版Kafka推薦用--bootstrap-server來連接Broker但很多老教程還在用--zookeeper來操作Topic。如果你用的是3.x版本某些場景下--zookeeper已經(jīng)被標(biāo)記為過度方案比如創(chuàng)建Topic這種操作直接走Broker的API就行不需要再經(jīng)過ZooKeeper。另外消費者用--from-beginning參數(shù)會把歷史消息全部拉下來如果你只想看新消息就不要加這個參數(shù)。4. 三節(jié)點集群環(huán)境搭建高可用不是加一臺機器那么簡單4.1 多節(jié)點配置要點broker.id不能重復(fù)listeners端口不能沖突單節(jié)點環(huán)境跑通之后很多人會想著直接上集群。這個想法很好但集群環(huán)境跟單機環(huán)境有個本質(zhì)區(qū)別單機環(huán)境你只需要關(guān)心參數(shù)能不能跑起來集群環(huán)境你還得關(guān)心節(jié)點之間的網(wǎng)絡(luò)、角色、選舉、數(shù)據(jù)冗余任何一個環(huán)節(jié)沒有配好集群就是假集群表面上三個進(jìn)程都在實際上副本數(shù)一直處于不健康狀態(tài)。我搭建三節(jié)點集群時的規(guī)劃是這樣的三臺虛擬機或三臺物理機上每臺都部署一個ZooKeeper實例和一個Kafka Broker實例。ZooKeeper三節(jié)點組成一個集群Kafka三節(jié)點組成一個Broker集群。如果你機器資源緊張可以把ZooKeeper和Kafka混部在同一批機器上但生產(chǎn)環(huán)境強烈建議分開部署因為ZooKeeper對磁盤延遲比較敏感混部會導(dǎo)致它的選舉和同步性能受影響。先配置ZooKeeper集群。每個ZooKeeper節(jié)點需要一個myid文件存放在dataDir指定的目錄下內(nèi)容就是當(dāng)前節(jié)點的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三個節(jié)點的zoo.cfg基本一樣唯一的區(qū)別就是myid文件不一樣。2888是ZooKeeper節(jié)點間同步數(shù)據(jù)的端口3888是選舉端口這兩個端口必須在防火墻里放行很多集群搭完發(fā)現(xiàn)ZooKeeper一直處于LOOKING狀態(tài)就是因為這兩個端口被防火墻攔了。Kafka集群的server.properties配置相比單機只多幾個關(guān)鍵點broker.id要分別設(shè)置為0、1、2。zookeeper.connect要配置成三個ZooKeeper地址的列表中間用逗號分隔。log.dirs建議每個節(jié)點用不同的目錄比如本機的/data/kafka-logs不要用共享存儲。listeners和advertised.listeners在每臺機器上要配置本機的內(nèi)網(wǎng)IP。這里最容易出錯的是復(fù)制配置時忘了改IP。4.2 集群啟動驗證Topic副本數(shù)的意義和副本狀態(tài)檢查集群搭建完成后的驗證跟單節(jié)點的驗證不一樣重點從能不能收消息變成了數(shù)據(jù)有沒有副本、副本有沒有同步。啟動完三臺Broker后先看集群狀態(tài)。在任意一臺機器上執(zhí)行bin/kafka-topics.sh --bootstrap-server 192.168.1.10:9092 --describe --topic test-topic如果這個Topic的ReplicationFactor大于1那么輸出結(jié)果里每個分區(qū)的Replicas應(yīng)該有三臺Broker的IDIsrIn-Sync Replicas里的節(jié)點數(shù)量應(yīng)該跟副本數(shù)一致。如果Isr里的節(jié)點數(shù)少了一個說明有一個Broker的同步落后了這通常意味著這個節(jié)點的磁盤I/O或者網(wǎng)絡(luò)有問題需要單獨排查不能簡單重啟了事。創(chuàng)建集群Topic時的副本數(shù)建議設(shè)置成2或者3。副本數(shù)不是越大越好因為每增加一個副本就意味著多一份磁盤空間占用和副本同步的流量開銷。一般三節(jié)點集群副本數(shù)設(shè)2就能容忍單點故障設(shè)3能容忍更極端的故障場景但代價是磁盤占用翻倍。我個人習(xí)慣在測試環(huán)境設(shè)2生產(chǎn)環(huán)境設(shè)3。驗證消息通路時生產(chǎn)者和消費者的--bootstrap-server參數(shù)要指向集群中任意一個Broker的地址即可不用寫三個。Kafka客戶端會自動通過這個Broker拉取整個集群的元數(shù)據(jù)知道哪個分區(qū)在哪個Broker上。關(guān)于集群還有一個常見誤解以為連上集群中任何一個節(jié)點就能保證消息不丟。實際上消息不丟依賴的是副本同步機制生產(chǎn)者要設(shè)置acks參數(shù)。acksall代表等待所有副本都確認(rèn)才返回成功這是保證消息不丟的前提。acks0或acks1雖然性能高但節(jié)點故障時會有丟消息風(fēng)險。這個參數(shù)雖然是在生產(chǎn)者端配置的但搭建環(huán)境時就應(yīng)該想清楚因為后續(xù)所有測試都基于這個前提。4.3 KRaft模式集群搭建去掉ZooKeeper后的配置差異既然前面提到了KRaft模式這里順便補充一下KRaft模式下集群怎么搭。KRaft模式最大的變化是不需要ZooKeeperKafka自身用一組Controller節(jié)點來管理元數(shù)據(jù)。部署KRaft模式的集群首先要做的事跟ZooKeeper模式完全不同你要先格式化存儲目錄生成一個Cluster ID然后每個節(jié)點都要用到這個IDController節(jié)點和Broker節(jié)點的配置分開放到不同文件。KRaft模式下核心的配置項是process.roles這個參數(shù)可以設(shè)置broker、controller或者broker,controller決定了節(jié)點的角色。如果是混部模式就寫broker,controller如果是分角色部署Controller節(jié)點寫controllerBroker節(jié)點寫broker。node.id相當(dāng)于broker.id和controller.id的統(tǒng)一體集群內(nèi)唯一。controller.quorum.voters指定Controller節(jié)點列表的地址和ID類似ZooKeeper的server列表但格式不同比如1192.168.1.10:9093,2192.168.1.11:9093,3192.168.1.12:9093。我第一次試KRaft模式時卡得最久的就是格式化這一步。Kafka提供了一個腳本用于生成Cluster ID和格式化存儲目錄bin/kafka-storage.sh random-uuid bin/kafka-storage.sh format -t uuid -c config/kraft/server.properties如果你漏掉了格式化這一步直接啟動Kafka會報一個Directory is not formatted的錯誤。這個錯倒是很直觀但如果你用的是舊版本的KRaft報錯信息可能不一樣有時候是No meta.properties found這種經(jīng)驗不夠的話很容易誤以為配置寫錯了。KRaft模式解決了ZooKeeper模式的兩個痛點一個是減少了需要維護(hù)的外部依賴另一個是元數(shù)據(jù)的讀寫路徑更短Controller可以直接通過內(nèi)部Raft協(xié)議管理元數(shù)據(jù)不用再跨ZooKeeper同步。但就像我前面說的學(xué)習(xí)理解ZooKeeper模式的核心概念仍然有價值因為很多生產(chǎn)環(huán)境還沒有遷到KRaft。5. 環(huán)境搭建中的高頻問題與排查思路5.1 網(wǎng)絡(luò)和端口問題連不上、超時的常見原因Kafka環(huán)境搭建遇到最多的就是網(wǎng)絡(luò)問題。由于Kafka涉及多端口、多角色任何一個端口沒放行、任何一個IP配置不匹配表現(xiàn)出來的癥狀都是連不上。我先列一個端口清單讓你心里有個數(shù)組件默認(rèn)端口用途ZooKeeper客戶端端口2181Kafka連接ZooKeeperZooKeeper節(jié)點間同步端口2888集群節(jié)點間數(shù)據(jù)同步ZooKeeper選舉端口3888Leader選舉通信Kafka Broker端口9092客戶端生產(chǎn)和消費消息Kafka Controller端口KRaft9093Controller節(jié)點間通信排查網(wǎng)絡(luò)問題的通用思路是先確認(rèn)進(jìn)程監(jiān)聽在哪個端口再確認(rèn)目標(biāo)機器的端口能不能通最后再去查應(yīng)用日志。第一步在Broker節(jié)點上執(zhí)行ss -tlnp | grep 9092確認(rèn)Kafka確實監(jiān)聽在9092。如果這里顯示監(jiān)聽的IP是127.0.0.1而不是0.0.0.0或你的內(nèi)網(wǎng)IP那說明listeners配置有問題。第二步在客戶端機器上執(zhí)行telnet或nc測試到Broker的9092端口是否可通。比如telnet 192.168.1.10 9092如果通了會顯示Connected to...。如果超時要么是防火墻擋了要么是安全組規(guī)則沒放行要么是網(wǎng)絡(luò)不通。第三步查看Kafka的server.log。這個日志文件在logs目錄下里面會記錄Broker的啟動過程、連接的客戶端地址、異常信息。很多網(wǎng)絡(luò)問題都能從日志里找到線索比如Connection refused代表目標(biāo)端口沒監(jiān)聽Connection timed out代表網(wǎng)絡(luò)層就不通。還有一種很隱蔽的情況Broker配置正常、端口也通但客戶端還是報TimeoutException。這種情況大概率是advertised.listeners配置成了127.0.0.1或localhost客戶端從集群元數(shù)據(jù)里拿到的是Broker自己的回環(huán)地址自然無法連接。我在本地用Docker跑Kafka時就經(jīng)常遇到因為容器內(nèi)的localhost跟宿主機的localhost不是同一個概念。5.2 磁盤和內(nèi)存問題爆盤、OOM、垃圾回收異常Kafka對磁盤和內(nèi)存的要求是出了名的高很多環(huán)境搭起來能用但一有流量就掛多半是這兩塊配置沒做好。先說磁盤。Kafka是順序?qū)懴⒌倪@個特性決定了它對磁盤的訴求是順序?qū)懶阅芤枚皇请S機讀性能要多強。所以服務(wù)器選型時機械硬盤不是不能用但一定要確認(rèn)RAID策略和磁盤轉(zhuǎn)速SSD當(dāng)然是更好的選擇尤其是NVMe盤。另外Kafka的數(shù)據(jù)目錄千萬不要放系統(tǒng)盤也不要跟ZooKeeper或數(shù)據(jù)庫的數(shù)據(jù)目錄混在一起。爆盤問題是最常見的。Kafka會在磁盤剩余空間低于一定閾值時報警默認(rèn)的閾值是低于500MB進(jìn)入只讀模式低于200MB甚至無法啟動。這個參數(shù)是log.flush.offset.checkpoint.interval.ms之后的保護(hù)機制實際上不同版本的閾值定義不太一樣。我的經(jīng)驗是給Kafka單獨規(guī)劃一塊盤容量按單日消息量乘以保留天數(shù)再乘以副本數(shù)來估算比如每天100GB流量、保留3天、2副本那至少要600GB空間再留30%的余量就是800GB左右。再說內(nèi)存。Kafka本身是Java應(yīng)用JVM堆內(nèi)存大小通過bin/kafka-server-start.sh里的KAFKA_HEAP_OPTS來控制默認(rèn)是1GB-Xmx1G -Xms1G。開發(fā)測試環(huán)境1GB綽綽有余但生產(chǎn)環(huán)境一般建議8GB到16GB起步。這里有個容易忽視的點Kafka的頁緩存Page Cache是操作系統(tǒng)層面的不占JVM堆內(nèi)存所以不要一味地調(diào)大JVM堆要給操作系統(tǒng)留足夠的內(nèi)存來緩存消息數(shù)據(jù)。我見過有人把JVM堆設(shè)成32GB結(jié)果系統(tǒng)內(nèi)存全被JVM吃掉了頁緩存幾乎為0Kafka的吞吐量反而下降因為大量讀操作要走磁盤而不是走內(nèi)存緩存。如果Kafka進(jìn)程在啟動后不久就報OutOfMemoryError優(yōu)先檢查KAFKA_HEAP_OPTS是不是太小。如果是GC時間過長導(dǎo)致的暫停可以先看GC日志判斷是堆太小還是有大對象的分配問題。實用的做法是先保持默認(rèn)的G1收集器不變把堆內(nèi)存調(diào)到合適范圍然后觀察一段時間不要急著換GC算法。5.3 高并發(fā)環(huán)境下的JVM參數(shù)優(yōu)化聊到環(huán)境搭建很多人以為配置完就完事了實際上Broker的JVM參數(shù)對高并發(fā)場景的影響非常大。我在壓測Kafka環(huán)境時習(xí)慣在啟動前就把JVM的GC日志打開這樣就算后面出問題也有據(jù)可查。默認(rèn)的bin/kafka-server-start.sh腳本里JVM參數(shù)是通過KAFKA_HEAP_OPTS和KAFKA_JVM_PERFORMANCE_OPTS兩個環(huán)境變量注入的。KAFKA_JVM_PERFORMANCE_OPTS默認(rèn)內(nèi)容大概是這樣-server -XX:UseG1GC -XX:MaxGCPauseMillis20 -XX:InitiatingHeapOccupancyPercent35 -XX:DisableExplicitGCG1GC是默認(rèn)的收集器MaxGCPauseMillis控制目標(biāo)停頓時間InitiatingHeapOccupancyPercent控制G1并發(fā)標(biāo)記的觸發(fā)閾值。這些參數(shù)不需要你去改但建議你理解它們的作用。如果遇到GC停頓時間飆升除了調(diào)參更要先找代碼層面有沒有問題比如消費者客戶端頻繁創(chuàng)建新的Consumer實例、生產(chǎn)者端批量參數(shù)沒設(shè)置好都會導(dǎo)致Broker端負(fù)載異常。一個非常多人忽略的參數(shù)是num.network.threads和num.io.threadsnum.network.threads默認(rèn)是3負(fù)責(zé)處理網(wǎng)絡(luò)請求。num.io.threads默認(rèn)是8負(fù)責(zé)處理實際的讀寫請求。當(dāng)你的生產(chǎn)者、消費者連接數(shù)很多或者請求量很大的時候這兩個線程數(shù)可能會出現(xiàn)瓶頸。我在壓測環(huán)境里一般會先調(diào)到num.network.threads8、num.io.threads16再根據(jù)監(jiān)控逐步調(diào)整。不過提醒一句調(diào)線程數(shù)不是越多越好線程多了會帶來線程切換的額外開銷反而降低性能。5.4 安全認(rèn)證配置的基礎(chǔ)注意事項如果搭建的Kafka環(huán)境要暴露到不受信任的網(wǎng)絡(luò)或者公司內(nèi)部有安全合規(guī)要求那SSL認(rèn)證和SASL認(rèn)證就是繞不開的話題。Kafka的安全配置涉及兩個鏈路客戶端到Broker、Broker到ZooKeeper如果是ZooKeeper模式。配置不當(dāng)會導(dǎo)致一個詭異的現(xiàn)象客戶端能用telnet連上9092端口但一執(zhí)行消費命令就報認(rèn)證失敗。配置SSL時核心步驟是生成服務(wù)端證書和客戶端證書然后分別配置到server.properties的ssl.keystore.location和ssl.truststore.location客戶端則在連接參數(shù)里配置ssl.truststore.location。這一步的坑在于證書的CNCommon Name必須和Broker的主機名匹配否則SSL握手時會因為主機名校驗失敗而拒絕連接。如果是IP直連方式的客戶端需要在證書里配置subjectAlternativeName的IP否則一樣會失敗。如果你只是想簡單驗證SASL配置可以用Kafka自帶的配置模板config目錄下有kafka_server_jaas.conf等文件可以直接參考。不過請記住一個原則安全認(rèn)證先在內(nèi)網(wǎng)測試環(huán)境驗證完整流程再上生產(chǎn)不要在生產(chǎn)環(huán)境直接開啟認(rèn)證后才發(fā)現(xiàn)客戶端全部連不上。6. 可視化工具與后續(xù)學(xué)習(xí)建議6.1 常用監(jiān)控工具從命令行到可視化的過渡環(huán)境搭好之后純命令行操作效率太低了尤其是多個主題、多個消費者組的情況下用眼睛看命令輸出根本盯不過來。我通常會搭一個可視化的監(jiān)控界面把集群狀態(tài)、Topic列表、消費者Lag這些關(guān)鍵指標(biāo)集中展示出來。常見的方案有三種Kafka UI舊稱UI for Apache Kafka界面清爽支持多集群管理能直接查看Topic、分區(qū)、消費者組、消息內(nèi)容對新手很友好是我首推的學(xué)習(xí)工具。Kafdrop輕量級Spring Boot項目一條命令就能啟動但功能相對簡單適合快速查看消息。Prometheus Grafana這是生產(chǎn)環(huán)境的主流監(jiān)控方案通過JMX Exporter暴露Kafka指標(biāo)然后在Grafana上配置看板。對新手前期不推薦因為學(xué)習(xí)曲線比較陡但你遲早要接觸它。如果你只是想快速看消息內(nèi)容Kafdrop的啟動非常簡單一條jar命令就行java -jar kafdrop.jar --kafka.brokerConnect192.168.1.10:9092如果你希望功能更全Kafka UI會是一個更完整的選擇。它支持通過配置文件來管理多個Kafka集群還能展示某個消費者組的消費進(jìn)度和Lag。但注意Kafka UI本身是Java應(yīng)用部署時同樣要注意JDK版本兼容。6.2 從環(huán)境搭建到生產(chǎn)級安裝要補的功課環(huán)境搭建只是第一步從能跑到生產(chǎn)可用中間差的功課還有很多。我總結(jié)幾個優(yōu)先級比較高的事項第一參數(shù)基線化。把搭建環(huán)境的參數(shù)記錄下來打包成標(biāo)準(zhǔn)配置模板不要再每次手動改。Kafka的參數(shù)實在太多今天改了一個明天忘了是誰改的后面排查問題全靠猜。用配置文件管理工具把server.properties作為代碼管理記錄變更歷史這會省下無數(shù)時間。第二日志和監(jiān)控的打通。Kafka本身的運行日志需要采集Broker的指標(biāo)需要暴露。生產(chǎn)環(huán)境至少要保證進(jìn)程級別的存活監(jiān)控、磁盤使用率監(jiān)控、Topic級別的消息積壓監(jiān)控。任何一個維度缺失線上問題都會難定位。第三消息發(fā)送的可靠性驗證。環(huán)境搭好之后不要只測一條消息能不能通。要測異常場景殺掉一個Broker看消息會不會丟、消費者能不能繼續(xù)消費把磁盤空間占滿看Kafka的表現(xiàn)是什么重啟一個節(jié)點看分區(qū)副本能不能自動恢復(fù)。這些測試沒有一個會白做它們才是環(huán)境真正可用的證明。7. 寫在最后的幾點經(jīng)驗Kafka環(huán)境搭建這件事看起來就是個安裝配置流程但在實際操作中真正花時間的往往不是安裝本身而是對Kafka運行機制的理解和對各種邊界情況的處理。我陸陸續(xù)續(xù)搭過開發(fā)環(huán)境、測試環(huán)境和生產(chǎn)環(huán)境每一次都會踩到不一樣的坑但有幾個經(jīng)驗是通用的第一啟動順序永遠(yuǎn)不要亂。ZooKeeper模式先啟ZooKeeper再啟KafkaKRaft模式雖然不需要ZooKeeper但每個節(jié)點要保證controller角色先就緒再啟動broker角色。順序錯了表面上不會有立刻的崩潰但后臺的錯誤日志會持續(xù)報。第二版本統(tǒng)一是一個硬性原則。Kafka、ZooKeeper、JDK、客戶端庫、可視化工具的版本盡量在同一個兼容矩陣?yán)镞x。不要小看版本差異我在測試環(huán)境遇到過因為客戶端庫版本太低連不上3.x版本的Broker報的是UnsupportedVersionException根本讓人摸不著頭腦。第三日志和監(jiān)控從第一天就做好。哪怕只是單機測試環(huán)境也把Kafka的日志級別調(diào)整好把關(guān)鍵目錄的空間監(jiān)控加好。等到出了大問題再來加監(jiān)控往往已經(jīng)晚了。如果你正在搭Kafka環(huán)境我的建議是先按這篇的步驟把單機環(huán)境跑通再把三節(jié)點集群跑通最后再考慮安全認(rèn)證和監(jiān)控完善。不要一上來就追求完美架構(gòu)先把基礎(chǔ)鏈路跑起來你才能真正理解Kafka的每一個組件在干什么。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久av一级av少妇av高潮| 国产日韩精品无码去免费专区国产| 欧美 色 亚洲| 欧美色图电影| 亚洲精品久久一区二区三区蜜桃臀| 九九九九热只有精品| 久久99综合| 自拍偷拍 日韩欧美| 熟妇高潮精品一区二区三区下载| se吧提供91精品国产91久久久久久| 亚洲熟女中文字幕在线| 欧美亚洲国产日本在线,久久精品国产| 亚洲成人福利电影免费| 熟女精品日韩一区二区三区| 在线亚洲丝袜视频网站| 欧美熟爽综合| 天天弄天天操| 波多野42部无码喷潮在线观看| 精品91摸| 久久久性| 天天综合网在线| 亚洲性爱电影| 欧美日韩国产成人高清| 中出20p| 久久色情| 伊人五月天激情| 久久久久久综合久久伊人蜜月| 欧美成人黄网色网站| 91色狼| 中文熟女五十乱码在线| 蜜桃久久久久久久久久久久 | 一区二区三区免费视频入口| 国产精品久久久午夜夜伦鲁鲁| 欧美一级做a爰片免费视频| 99e久久国产精品| 午夜在线播放| 特污精品女优骚货黄色视频在线免费观看| 999久久久久久久精| 国产亚洲国产超碰| 爱媛媛久久国产福利| 天堂69亚洲精品中文字| 精品国产一区二区三区在线播出| 国产60区。| 尹人大香蕉视频在线| 国产日韩精品人妻久久久久色欲网站| 夜夜嗨老熟女AV一区二区三区| 国产一区二区三区精品观看啪| 青青草在线视频美女| 一二三四视频在线社区中文字幕| 亚洲日韩国产欧美综合v| 9国产超碰| 97爱b| 青青草视频导航官网| 久久久久久夜夜夜夜夜| 天天综合日韩网| 青青草日韩无码| 久久xxxx| 欧美最婬乱婬爆婬性视频| 婷婷中文字幕| 成人日韩中文字幕| 日本中文字幕一区| 囯产精品强| 国产男女无套视频免费观看| 精品性爱一二三区| 色综合91| 欧美白嫩在线放| 色阁阁AV综合网| 大香蕉综合在线| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 亚洲天天自拍| 久操| 欧美人妻制服| 好属操| 秋霞Av理论一级在线| 日本五十路在线| 欧美97在线观看| 目产99999久久999| 婷婷九月丁香| 97精品97久久| 亚洲国产日韩精品久久久| 亚洲日韩资源| 白丝av| 成年人三级黄色片视频| 在线无码操| 强奸乱伦动态污图免费| 大香蕉伊人色偷偷在线| 做爱福利视频一区二区| 伊人一区二区三区| 97亚洲综合在线| 亚洲欧美不卡线| 国产不良强奸视频免费看| 四虎精品永久在线播放| 乱伦系列一区二区| 激情久久av一区av二区av| 熟妇xxxxx性春色| 91强热人妻| 麻豆60秒| 超碰欧美97资源| 97在线免费观看视频| 超碰成人国产| 日韩精品三级片长长久久| 久久禁| 久草午夜| 综合网色| 欧美色图天堂在线| 爱干爱射网啊啊啊| 夜夜爽夜夜爽| 2011国产精品| 97超碰影音| A片A5445444| 婷婷五月天影院| 亚洲凸凹超碰成人| 成人五月天丁香激情综合| 东京热男人天堂| 小视频玖玖| 69人妻人人揉人人躁人人精品| 丁香五月激情综合国产| 青春草A| 东京热天堂网| 大香蕉520| 一区二区三区四区久久视1| 亚洲福利影院一区久久| 国产久久久9999| 97精品一区二区视频在线观看| 97精品在线视频| 人妻在线视频| 性交一区二区在线播放| 色婷婷六月丁香七月婷婷| 中文字幕人成乱码熟女香港| 丰满搜索结果 -第18页- 久久高清无码| 欧美 熟女 日韩| 91综合色| 偷拍伦理视频| 人妻夜夜爽天天爽三区麻豆AV网站| 刺激精品视频| 黄色工厂这里只有精品| 嗯嗯啊在线视频| 男人天堂最新手机版在线青青草| 欧美色图综合网| 欧美色图片| 国产真实野战在线视频| 欧美色66| 亚洲欧美日韩免费电影| 怡红院亚洲怡春院av| 午夜福利精品| 久久久九| 激情综合五| 少妇淫妇久久久久久久| 天天淫人人妻日日色| 在线电影亚洲色图| 9色在线| 啊啊啊啊啊啊在线| 97色欧州| 91久久久久久久久18| 五月天激情影院| av橘色网站| 97超碰碰碰| 黄片视频观看| 亚洲色人妻综合| 午夜性生活av免费在线看| 亚州操逼网| 欧美日韩系列| 天天看综合网| 97精品一区| 免费看日本操逼视频| 欧美成人性活片| 黑丝少妇麻豆| 亚洲免费人妻在| 国产精品天干天干综合网麻豆 | 亚洲日韩欧美一区二区| 亚洲一区中文字幕一区| 黄日韩| 每日更新AV| 超碰吊日色| 亚洲中文字幕久久人妻| 蜜桃久久一区| 亚洲性少妇| 99色| 无码最新| 97精品97| 啊啊啊好湿久久| 变态综合色| 亚洲精品一区二区三区新线路| 性欧美| 熟妇熟女亚洲天堂网| 青春草莓视频在线观看网址| 少妇极品熟妇人妻无码| 人妻一区视频| AVE乱伦| 超碰在线成人电影| 99www.bibizy香蕉资源国产一区二区三区高清 | 国产精品午夜精品| 亚洲AV乱码专区国产噜噜亚洲| 人人妻人人玩人人澡人人爽| 欧美精品亚洲精品日韩传电影| 亚欧成人中文字幕一区| 国产精品不卡一区二区三区av| 亚洲成人一二三区| 清柠毛片| 九九这里只有精品| 亚洲第一狼人丝袜美女另类 | 亚洲爽图| 东京热,男人的天堂| 少妇天堂网络| 亚洲图片欧美91N| 亚洲AV无码国产精品久久久久| 亚洲国产精品久久久久婷婷老年| 日韩精品色呦呦| 国产亚洲福利第一页丝袜| 久久久精选| 国产成人主播| 亚洲色资源| 欧美熟女妇同| 美女尤物福利视频| 欧美黄页在线| www五月| 日本中文字幕在线视频 | 亚洲 欧美 天天| 九九探花视频在线观看| 亚洲欧美自拍偷拍| 6080YYY午夜理论片在线观看| 自拍二页| 99re只有精品| 欧美一级专区免费大片| 中文字幕视频在线观看一区二区| 日韩免费三级黄片电影| 91AV天美在线视频| 粉嫩久久久极品| 久久久久斤小| 深喉吞精| 国产丝袜啪啪| 欧美性爱一区二区| 熟女91网站| 香蕉综合网| 97神马久久| 四虎av在线| 欧美热图99| 99AV| 人人摸.人人色| 丰满人妻一区二区三区性色| AAAAAAAAA黄片| 美女一区二区国产精品| 99免费视频| 狠狠色综合网| 久久av色| 国产成人网| 亚洲人成网www| 嗯嗯嗯好爽| 暖暖精品二区三区观看| 激情99| 激情开心五月天| www.97在线| 天天影视网综合少妇| 天天日B夜夜干B时时操B| 国产 v乱码一区二| 在线观看亚洲成人精品| 风骚少妇视频中文字幕| 精品少妇人妻一区二区三区| 亚洲伊人成综合成人网| 97超碰大| 人人妻人射| 麻豆国产免费影片| 天天亚洲综合| 91美女精品| 色欲Av人妻精品一区二| 一级性爱aaaa| 韩国成人精品久久久免费看| 丁香五月天堂网| 97天天综合网| 国产精品一区二区密臀| 青娱乐亚洲自拍| 色波多| 人干人人人操人人摸| 精品人妻av在线播放| 五月丁香大香蕉| 久9久| 熟女熟妇伦久久影院毛片一区二区 | 91五月天| jiujiujiujingpin| 欧美不卡五十路| 日韩午夜啪啪视频| 丝袜视频网国产90| 玖色av| a片偷拍视频| 色九月| a人片中文字幕一区二区| 东京热毛片177b2viP| 亚洲AV噜噜狠狠网址蜜桃动漫| 亚欧无码在线| 精品国产一级久久| 九九九九一级| 亚洲狠狠入| 蜜臀在线看片| 国产精品人妻熟女aⅴ| 超碰99在线观看| 亚洲成人综合在线| 超碰一区二区| 色欲Av人妻精品一区二| 日韩在线AB| 久久日韩肥臀| 伊人久久大香大香线蕉中文 | 精品国产99| 成人精品在线| 性感美女啊啊啊在线| 国产一级内射无挡观看| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 2017超碰| 强奸乱伦av电影| 动漫区日韩区欧美区| 国产午夜精品在线观看| 无码人妻一区二区一牛影视| 少妇的嫩逼图片| 亚洲成人美女无吗| 中文字幕av片| 屌色在线97视频| 欧美日综合| 九九久久综合| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 盗摄女人妻在线| 丰满少妇高潮无码| 天天操人人操狠狠插| 四季AV综合网址| 郑州宾馆老熟女露脸啪啪| 偷拍三区| 97在线免费观看视频| 黄色视频高清无码网站| 60秒免费小视频| 午夜精品久久99蜜桃的功能章节 | 伊人嫩草| 日韩无码三级影院| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 亚洲自拍青操视频| 欧洲熟妇xxXx欧美老妇裸体| 大粗鳼巴久久久久| 91狠| 明星性猛交ⅹxxx乱大交| 九九av| 一区二区三区视频| 97这里只精品| 国产99久久99热这里只有精品15| 婷婷中文网| 91美女高潮| 激情五月综合网| 久久久久久久久久久久黄色| 亚欧美综合网| 超碰久久性爱| 亚洲在线网站| 青青青国产| 日本免费中文字幕在线| 亚洲AV高潮| 特级毛片特黄久久免费看| 色九九久九九| 神马福利久草| 亚洲一区中文字幕一区| 97久久精品| 中国熟女网站| 啊啊啊啊啊啊啊国| 欧美熟妇色| 亚洲中文字幕有码视频一区二区三区| 97国产精品久久久久| 青娱乐欧美激情一区二区| 不卡六六在线91| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 国产第11页| 九九热在线视频| 影视综合无码少妇| 99精品九九九九九九| 精品久久久久黄少妇| 熟妇人妻精品一区二区| 3d成人精品一区二区| 九九碰九九爱97超| 色综合一区二区三巨| 国产一区免费午夜视频| 亚洲色图欧美色图另类图片| 日韩成人人妻网站| 国产欧美日韩在线不卡第一页| 天堂射| 超碰日本97美女人妻人人玩人人爱 | 97爱亚洲综合色| 五月天色色网站| 欧美大波激情xxxx| 亚洲国产美女久久久久| 亚洲成人贴图| 午夜亚洲| 国产精品另类| 97超级久久强资源| 色综合色欲色综合色综合色综合| 综合五月天| 激情人妻另类| laoshunv91| 黄色大片一区二区密桃丝袜| 国产成人无码高清| 日日碰狠狠添天天爽超| 精品国产一区二区三区香蕉欧美| 你草精品在线视频| 九九久久一区二区三区| 992这里有精品| 日本岛国黄色网址| 狼人久草| 欧美99| 97久久超碰| 欧美日韩国产色图在线| 大学生口爆吞精| 国产精品久久天天干| 九九九精品| 久久97| 亚洲久久久久| 亚州熟妇精品| 嫩草黄页| 加勒比aⅴ| 大香蕉伊人75| 三级日本一区二区三区| 97频视在线| 欧美曰韩国产精品| 日韩电影天堂视频一区二区| 97干综合网| 在线视频五十市| 性爱AV天堂| 少妇色综合| 啊啊啊啊,啊啊好多水| 少妇人妻在线| 国产熟女无套内射| 欧美97| 亚洲av国产av综合av卡| 天啪| 一道α片欧美| 日本Xx性爱| 91GD.COM| 人妻在线视频| 96精品在线| 中文字幕av亚洲在线| 91操碰| 日韩素人无码一区二区三区三州| 十八禁啪啦拍视频无遮挡| 99这里有精品| 人妻 欧美 中文| 任你干在线视频| 欧美激情在线观看视频| 日韩精品在线放| 国人欧美精品一区二区| 国产超碰人人爽人人做| 天天干天天操天天拍| 哈哈操电影AV| 天天影视综合色| 国产精品电影推荐| 97视频播放| 9997se| 亚洲性少妇| 97亚洲在线| 天天躁日日躁AAAAXXXX国产| 性爱综合网| 五十路熟女工口 | 国产精品一区二区在钱播放| 激情四射五月天| 一区二区三区成人| 99精品国产户外露出| 欧美日韩岛国大片在线观看| 亚洲欧洲日韩国产自在线| 五月丁香六月激情| 老熟妇一区二区三区啪啪| 9久热这里只有精品| 免费黄色片。| 日韩国产欧美伦理在线| 伊人成人中文字幕久久网| 午夜理论片在线观看免费| 日韩操逼HD| 日韩精品1区2区中文字幕| 久久麻豆一区二区| 亚洲玖玖爱| 国产精品熟女一区二区三区| 99操碰| 九九国产| 中文字幕丰满人妻日本| 婷婷激情综合网| 日韩无码久久熟女一级片| 国产成年女黄特黄| 亚洲熟女av日韩熟女| 久偷拍欧美日韩三区| 草草电影院| 男人夜色天堂ss| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 天天综合欧美综合| 99999国产精品| 婷婷久久五月| 国产精品视频| 亚洲乱码精品一区二区| 久久9精品视频| 亚州综合色| 色五月av| 国产中午字一暮区| 2018色综合天天操| 中文字幕成人乱码熟女精品国50 | 熟女人妻一区二区三区免费看 | 综合色色网| 久久久久久裸体| 免费中文在线| 性色A∨91| 久久做97| 欧美色综合影院| 好涩综合| 试看福利| 五月婷婷综合在线| 在线人成亚洲视频免费观看| 天天影视综合网欧美精品| 日本性爱视频一级| 黑人精品欧美一区二区蜜桃| 国内91熟女人妻丝袜天天精品视频在线 | 欧美天天拍| 五十路六十路七十路熟婆| 人人天天欧洲| 天堂综合网| 午夜精品久久久久久久99热影院 | 97色冈| 天天综合网日韩7799| 女生看匆91网站| 欧美精品偷拍| 五月天婷婷色| 国产女人极品高潮毛片| 婷婷五月天激情四射| 青青草啪啪网| 欧美亚性天堂| 欧美劲爆视频一区二区| 啊啊啊啊,啊啊好多水| 国产馆极品诱惑| 亚洲色图欧美视频| 天天影视亚洲| 丁香7月婷婷| 久久超碰亚洲人| 亚洲图片欧美在线视频| 一区二区三区探花在线观看| 97超碰站| 少妇淫妇久久久久久久| 国产九九九九九九| 日韩欧美偷拍美女视频| 毛片17S| 欧美日韩国产黄色片| 久久少妇| 欧美92| 亚洲极品| 精品美女久久一二三| 亚洲美女精品| 日韩草久视频| 99色热| 国模吧 一区二区三区| 极品色综合| 人伦四五区| 中文字幕人乱码中文字的预防方法| 国产家庭乱伦网址| 大黄片做爱的大的| 十八禁av无码免费网站APP| 91少妇| 天天网综合| 日韩97在线| 超碰97人妻自拍| 舔人妻中文免费视频| 熟妇最新先锋一二三区| 天天操av懂色| 精品熟女一区=区三区| 人人色97| 久久久久久夜夜夜夜夜| 91 国产丝袜在线放观看| 9久综合网| 91蜜臀在线久久久久| 少妇高潮99p| 97久久精品亚洲| 天天日日舔舔| 影音综合网| AV天堂男人的天堂| 精品一二三区女同| 亚洲AV色图一区| 好一吊区二区| 天天色踪合| 91精品久久久久久77777| 欧亚成人在线视频| 女上位精品在线| 色九九久九九| 青草成人免费视频一com| 婷婷超| 日本性交操一区二区不卡系列| 久久久久久人体| 超碰九7免费| 免费人成毛片乱码| 久久一区二区高清免费| 先锋影音av先锋一区| 色翁荡息又大又硬又粗又爽| 欧美一区二区三区蜜桃| 日韩中文字幕二区| 欧洲综合视频| 成熟熟女国产精品一区二区| 新91视频.cmp| 国产精品农村妇女精品| 日韩视频中文字幕| 一区二区三区黄片免费观看| 激情综合婷婷| 91成人在线| 求求你操操我| 啊啊啊啊啊啊啊好爽不要| 亚洲天堂电影网| 91人人操| 欧美亚洲尤物久久| 欧美极品女人的天堂| 九九九九九九成人| 久久免费9| 久久久亚洲Av| 大香蕉亚洲中文| 亚洲天堂人人妻| 密臀在线一区尤物| 欧美黄片免费在线观看视频| 麻豆人妻精品一区二区| 激情小说亚洲图片| 明星性猛交ⅹxxx乱大交| 性爱乱伦网址| 啊啊啊不要啊啊受不了了视频在线| 97视频7| 亚洲成成熟女人综合一区二区| 加勒比综合在线| 久久精品国产亚洲AV高清演员表| 乱伦a片视频| 亚洲熟妇自偷自拍另欧美| x97av| A片大香蕉在线| 国产欧美一区激情交| 嗯嗯,好大,好爽,好骚| www.男人的天堂| 久久男女激情视频网站 | 日韩在线97| www.zbzhongsen.com| 欧美另类自拍| V A在线| av天堂影视中文在字幕在线中文| 亚洲少妇诱惑| 亚洲色狠| 大香蕉97久久| 老鸭窝成人免费毛片视频| 人人操人人操草草| 91天天日| 亚洲精品九九九| 女人双腿搬开让男人桶| 九色 人妻 大香蕉| 欧美加勒比| 色色色网站| 狠狠夜色午夜久久综合在线| 蜜臀无码视频在线观看| 毛片中心9视频99| 久久久久99999| 狠狠色婷婷| 国产农村妇女毛片精品久久| 97最新在线播放视频| 欧美大香蕉在线观看| 密臀在线一区尤物| 婷婷性爱| 欧美性91| 中文字幕日产av人| 国产精品又黄又猛又粗| 综合一区中亚洲国产成人综合精品 | 宅男91视频在线播放| 男人的天堂网页| 射 色综合| 日曰骚久久精品| 激情视频网址| 啊v在线观看视频| 91蜜臀熟女| 大香蕉日韩欧美| 91精品91久久久中77777| 欲香欲色综合天天伊人| 日本熟妇人妻中出视频| AV丝袜少妇| 免费精品人妻一区二区三| 九九玖玖精品| 日本1区2区不卡视频| 天天内射| 啪啪性爱免费视频| 亚洲自拍97| 亚洲色偷偷色噜噜狠狠99网| 网站A V在线| 91色伦综合| 欧美成人性爱视频大全| 欧美 亚洲| 97色在线| 国产精品成久久久久午夜午夜| 色情综合网| 欧美片第一页| 伊人视频| 久妇网| 久久78| 大香网伊人久久综合网eew| 国产乱人伦AVA麻豆软件.| 国产一区二区精品久久久不卡蜜臀| 国产三级中文有码在线视频| 97se亚洲综合自| 欧美大香蕉97| 国产久久成人| 少妇天堂| 情色AV电影| 亚洲最新av无码成人精品区| 国产成人五月天丁香花| 五月丁香色婷婷| 久综合国内精品自在自线| 91AV国产精品| 大吊色| 亚洲高清在线| 99国产精品视频尤物| 欧美+日产+中文| 粉嫩AV一区夜夜嗨| 国产精品一级特黄aaa大片在线观看| 老鸭窝黄色视频网站| 九九热精品在线| 黄片色区软件| 夜夜骑日日| 亚洲色性情三级| 婷婷中文字幕| 中文字幕成人理论在线| 黄色成年| 欧美性五月| 热久日综合| 伊人五月天青青草婷婷| 日韩九区| 日操粉逼逼| 免费成人在线观看91| 亚洲丝袜少妇在线| 人妖欧美一区二区| 中文日韩欧美熟| 欧美 日韩 国产传媒| 碰碰在线视频| 九九黄色网| 美女网站黄页| 日本精品性生活久久久| 日韩内射视频| 无码聚合| 色情乱伦AV| 国产亚洲日韩在线三区黑人| 熟女91网站| 加勒比无码毛片| 大屁股熟女一区二区三区| 激情六月天| 欧美操人| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 五月天激情网图片| 91日本在线观看| av片在线观看免费播放| 欧美特大黄一级片片免费| av日韩在线观看电影| 欧美日本国产日韩激情视频| h无码动漫在线观看| 手机在线A片| 亚洲日韩美国人妻| 久久久久久久国产视频| 欧美成人性爱视频免费观看| 免费观看的黄色的网站| 亚洲最新a在线观看| 日韩亚洲Av人人夜夜澡人人爽| 蜜臀在线视频| 日韩国产精品人妻无码久久久| 97精品视频在线播放| 91av天美性媒精品视频| 9久久美女首页| 91少妇香蕉久久精品| 国产精品久久久久久夜夜夜夜| 色九九九| 东京热熟女亚洲视频网站| 久久人妻少妇| 91国产丝袜白虎| 高清孕妇孕交 交| 成人毛片免费| 成人性爱视频在线看| 干婷婷综合网| 国产小黄片在线免费观看| 久久草在线综合视频| 艹我哪美一区无码| 亚洲综合99999| 久久久成人免费av电影| 欧美亚洲手机在线| 欧美区亚洲区偷拍区 | 日韩精品一区二区三区色欲| 亚洲系列第一页| ,成人免费啪啪视频| 日韩精品 视频一区二区| 日韩免费性爱视频在线观看| 久久婷婷色综合一区二区三区| 亚洲操人| yazhousetuoumei| 四虎免费视频| 丰满人妻区一区二区三| 免费的很黄很污的全部视频| 99激情视频| 在线视频五十市| 欧美色图校园春色| 国产又黄又粗的视频| 免费A V在线| 97欧美精品综合| 人妻另类| 国产无码高清操逼视频| 在线色导航| 亚洲人妻av| 热久久99999| 91性片| 亚洲系列第一页| 亚洲超碰AV| 精品久久久久黄少妇| 久久久久久人| 噜噜噜在线视频| 亚洲高清无码在线桃色| 久久久99免费| 女优视频第10页| 日韩97视频| 日本精品中文字幕视频| 91九九| 天海翼久久| 国产精品国产亚洲区艳妇糸列| 亚洲另类欧美精品| 五月婷婷激情| 91精品操美女| 人干人人人操人人摸| 67194无码不卡| 久日综合网| 国产 亚洲 一二三四| 久久久免费视频18| 九九99精品| 国产日本久久免费精品| henhen91| 国产操伦| 亚洲日本激情| 天天色播亚洲综合网站| 91综合在线| 97超碰中文字幕| 国产精品嫩草久久久久| 九月丁香| 婷婷人妻激情| 国产高清成人传媒影视| 呦女网站| 思思热一热婷婷热一热| 91九色在线| 亚洲涩图欧美| 亚洲欧洲综合成人av一区| 秋霞男人网| AV中文字幕三四五| 久久美女福利是上海美女| 中文一区二区| 国产精品一二三在线看| 色综合超碰超| 国产精品久久成人免费| 免费国产| 麻豆这里只有精品| 亚洲资源吧| 日本东京热加勒比久久| 日本男人插女人的逼黄色| 999久久久国产精品| 色色国产| 欧美精品三区| 97超碰天天爱天天爱| 最新AV在线| 91狠| 色综合av综合久久| 人人摸人人干| 麻豆精品一区二区三区四区免费观看| av无码精品久久久久| 久久成人午夜狠狠| 中文久久爆乳| 国产一区二区三区,在线观看观看| 啊啊啊啊啊啊啊啊视频| 国产欧美伊人| 免费av高清无码| 狠狠躁天天躁日日躁| 家庭乱伦网站国产| 花花AV导航| 色哟哟-国产专区| 欧美黄片免费在线观看视频| 欧美后入式| 欧美天天插| 无遮挡一级毛片视频免费的| 职场同事知名国产国产精品久久欧美日韩| 国产真乱mangent| 超碰无码五月97| 水野优香在线观看| 黄色大片免费在线| 亚洲天堂一区二区| 国产天天骚| 少妇被c 黄 免费观看| 亚洲中文字幕噜噜噜久久久| 100啪啪视频大全| 日韩中文字幕熟妇人妻| 久久直播国产| 亚洲91大片| 精品久久視頻在线| 乳欲人妻办公室奶水| 国产精品久久泡妞网站| 台湾大香蕉99热| 制服乱伦| 啪啪视频亚洲第一| 91 丝袜在线播放| 香蕉免费一区二区三区不读| 久久毛卡| 蜜臀99久久精品久久久懂爱| 超碰在97| 99国产在线绯色一区| 精品久久人妻成人网| 13小男生GAY自慰脱裤子| 2020中文字幕在线| 欧美婷婷久久| 蜜臀久久99精品久久久老,,| AV污污污污| 91天天综合在线| 神马午夜久久久| 亚洲制服aⅴ中文字幕| 91综合熟女| 超碰偷拍| 久久人爽| 亚洲综合另类欧美久久久| 97在线精品| 蜜乳性色无码专日粉嫩骚逼AV| 老鸭窝在线视频播放| 加勒比日本在线| 黄网色一区二区三区四区精品| 精品熟妇视频一区二区| 六月天婷婷| 国产 日韩 另类 视频一区爱| 国产suv一区二区三区6| 搡老女人老91妇女熟女| 99re9这里只有精品| 亚洲男人天堂2019| 午夜亚洲国产理论秋霞| 欧美人黑A片无码免视费| 中国熟妇| 日韩日韩日韩-国产乱码精品一区二区| 精品久久久久久亚洲| 日韩激情啪啪| 亚州操逼图| 国产精品国产自产高清AV| 激情婷婷黑人91| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 成人综合视频久久| 曰韩欧美国产传媒麻豆第一区| 大香蕉www.超碰| 大二网站亚洲| 日B操| 人人人摸人人| 国产一区二区精品久久久不卡蜜臀| 成 人 影视 一区 二区 三区 四区 | 婷婷丁香五月天综合东京热| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚洲男人的天堂亚洲| 性爱1区| 99久久精品无码一区二区毛片免费| 91成人亚洲色图| 热久久无毒不卡| 久久111| 色超碰综合| 2017天天透天天通天天擦| 亚洲drav色图| 欧美黑人与女人91~| 久久夜色一区二区| 欧洲一区二区三区免费| 情侣操 逼视频99| 东京热99999| 欧美少妇高潮视频| 大香蕉99999| 欧美成人一级麻豆| 伊人黄色片| 人人摸人人添人人操| 老司机深夜18禁污污网站| 97伊人| 亚洲美女AV无码| 日韩欧洲操屄视频| 色色色欧美| 国产精品久久久久av| 人妻少妇精品一区二区三区| 欧美老熟另类| 欧美97视频| 欧美情色男人的天堂| 青青欧洲黑| 激情综合av| 欧美黑人168页欧美黑人167| 精品免费囯产一区二区三区 | 囯产精品久久久久久久久久梁医生| julia国产在线| 神马久久久久久久| 成人无码电影在线观看网| 亚洲欧美日韩精品久| 久久久一区二区三区四曲免费听| 成视频在线观看免费看| 日韩偷拍色图| 97就爱干| 97色97干| 国产美女mm131爽爽爽爽| 亚洲夜色在线| 九九九热精品| 一区二区三| 操操逼操操逼操操逼逼| 蜜桃成人1区2区3区| 亚洲凸凹超碰成人| 射久久| 2019天天干天天操| 后入美女国产| 大香交| 国产精品日韩在线一区| 玖玖色综合| 丝袜亚洲91| 少妇久久久久久久| 国产女性无套 免费观看| 日韩中字av一区| 亚洲天天天| 美国一区二区三区视频| 国产精品色片一区二区| 在线啊啊啊啊| 夜夜嗨绯色| 精品九九| A 在线网址| 国产69精品久久久久99尤物| 国产精品无码久久久久2025| 96精品在线| 2019男人的天堂| 午夜啪啪片| 青青草视频在线观看一区二区| 伊人伊人LD| 看日韩黄片| 日产狠狠干| 97久久超碰亚洲| 亚洲一区二区中文字幕| 久久久久久久久久久久黄色| 男人的午夜天堂| 丁香五月婷婷啪啪| 久久久草草精品| 人人插人人摸人人| 77国产精品| 人人操人人摸人人看人人插| 久妇网| 伊人亚洲综合| 尤物网址| 国产精品久久久久久久久久久久久久久| 久久久性少妇| 强奸乱伦中文字幕AV| 综合天天网| 翔田千里AⅤHD无码| 一区二区久久天天干狠狠| 天天干嫩逼网| 人妻啊啊人妻啊啊| 婷婷色香伊人| 色蜜AV| 色综合加勒比| 91亚洲不卡一区| 七月丁香婷婷| 天堂日本亚洲欧美| 香港澳门日本三级网站| 久久伊人网视频一区二区三区| 亚州精品人妻一二三区| 深夜激情无码| 91天天爽| 97操碰| 91亚洲网| 蜜桃精品一区二区三区ww| 欧美综合网站999| 黄片www.| 夜夜爽夜夜高潮夜夜爽| 国产欧美伊人| 2024年最新色情网站在线观看| 亚洲夜夜欢无码一区二区| 超碰综合色| 亚洲无码?第一页| 夜夜国自区| 国产日韩欧美亚洲精品95| 91人妻久久久久久久久久久久久| 99久久精品国产系列| 96爱综合| 最近2019中文字幕国语免费版| 啊啊啊在线观看免费视频| 国产毛片久久久久久久| 男人成人黄色视频在线观看免费下载| 亚洲最新Av| 91路www| AAA久久| 一区在线精品中文字幕| 人妻9117c| 91黑丝美女| www.色99| 人人看黄色视频| 国产精品九九| 性爱动态120秒| 久久无码精品| 绑缚麻绳人妻寝取完整版| 久久99午夜精品一区人妻| 小骚逼被操的爽不爽| 免费久久精品麻豆一区二区av| 日本免费一区二区不卡| 久草婷婷| 一类无码操逼视频| 国产免费内射视频| 久久一二三四不卡 | 婷婷久久综合| 色屁屁影院www国产| 欧美综合狠| 久久这里精品国产99丫e6| 亚洲 日韩 丝袜 熟女 变态| 久久久精品网| 劲爆欧美人妖三区91| 六月激情网| 岛国毛片手机在线观看| 久久97精品久久久久久久不卡| 亚洲 日本 一 二 三| 中文色综合| 大奶的诱惑| 制服丝袜第二页| 成年男人的天堂| 91香蕉视频在线观看免费| 伊人性在线视频| 97超碰久| 亚洲情色五月天 | 久久久久亚洲av综合波多野制衣| 欧美亚洲高清不卡| www成人啪啪18秘 免费| 四虎国产精品永久在线囯在线| 啊啊啊在线观看免费视频| 中文激情网| 日逼国产| 懂色Av一区二区三区| 热的中文 热的有码 热的国产| 一级啊性爱在线视频| 亚洲一区中文精品| 97碰碰色| 欧美人妻熟女在线| 天天干人妻| 欧美白嫩在线放| 欧美久久草熟女| 黄片免费看的| 色吧5亚洲| 亚洲欧美色图片| 亚洲 日本 不卡| 欧美黑人日韩少妇色情| 亚州色图欧美| 97色爱| 欧美色偷拍| 人妻熟女一区在| www.色婷婷| 99热欧美| 99ri视频| 一级免费啪啪片| 在线观看精品国产免费| 欧美操逼熟女| 国产精品久久99日日| 天天爱天天操| 97欧美日韩综合| 97中文字幕一区| 啊啊啊在线观看免费视频| 欧美极度丰满熟妇hd| 久久国产在线一区二区| 国产操逼网站亚洲一级黄色| 97欧美精品| 91精品人| 日本成人免费一区二区三区| 国产精品不卡av免费在线观看| 无码人妻丰满熟妇区毛片| 久久久久久裸体| 欧美另类自拍| 国产地址二三| 91女优在线观看 | yellow网站免费观看日韩高清无码| 亚洲色阁| 东京热一区二区中文字幕| 日本孕妇一区二区视频操逼免费看 | 亚洲动态色图| 精品视频一区二区|