精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Kafka兩種集群詳解和搭建教程

開發 前端
Zookeeper是強一致性的組件(符合CP理論),如果集群中數據發生變化,那么必須要等到其它節點都同步,至少超過一半同步完成,這樣節點數多性能差。

Kafka是一個能夠支持高并發以及流式消息處理的消息中間件,并且Kafka天生就是支持集群的,今天就主要來介紹一下如何搭建Kafka集群。

Kafka目前支持使用Zookeeper模式搭建集群以及KRaft模式(即無Zookeeper)模式這兩種模式搭建集群,這兩種模式各有各的好處,今天就來分別介紹一下這兩種方式。

1,Kafka集群中的節點類型

我們首先需要了解一下,一個Kafka集群是由下列幾種類型的節點構成的,它們充當著不同的作用:

Broker節點:即代理節點,是Kafka中的工作節點,充當消息隊列的角色,負責儲存和處理消息,每個Broker都是一個獨立的Kafka服務器,可以在不同的機器上運行,除此之外Broker還負責分區(partition)的管理,將主題(topic)劃分為多個分區,并分布在集群的不同Broker上

Controller節點:即控制器節點,是集群中的特殊節點,負責儲存和管理整個集群元數據和狀態,它能夠監控整個集群中的Broker,在需要時還能夠進行平衡操作

混合節點:即同時擔任Broker和Controller節點角色的節點

2,兩種模式集群的搭建方式

接下來,我就來介紹一下兩種模式的集群架構和搭建方式,即Zookeeper模式集群和KRaft模式集群。

(1) Zookeeper模式集群

這是一種比較簡單,相對“傳統”的搭建方式了!在這種模式下,每個Kafka節點都是依賴于Zookeeper的,使用Zookeeper存儲集群中所有節點的元數據。

只要所有的Kafka節點連接到同一個Zookeeper上面(或者同一個Zookeeper集群),這些Kafka節點就構成了一個集群。所以說就算是只有一個Kafka節點在運行,這一個節點也可以稱作一個集群。

在Zookeeper模式集群中,Zookeeper節點(或者集群)就充當了Controller的角色,而所有的Kafka節點就充當著Broker的角色。


下面就來介紹一下搭建過程,這里我在4臺Linux虛擬機上分別運行Zookeeper和Kafka來模擬一個集群,一共一個Zookeeper節點和三個Kafka節點構成,如下:


上述地址例如kafka1等等,是通過修改虛擬機的主機名(hostname)實現的,這樣虛擬機之間可以直接通過這些主機名相互訪問,這個主機名我們就可以視作實際在服務器上面搭建時,服務器的外網地址或者域名,這里就不再贅述如何修改虛擬機的主機名了,需要保證上述所有虛擬機在一個虛擬機網段中并且能夠互相ping通,即上述所有虛擬機需要兩兩之間可以通過網絡互相訪問。

運行Kafka和Zookeeper都需要Java 8及其以上運行環境,大家要首先在虛擬機中安裝并配置好。

① 搭建Zookeeper

首先我們要運行起一個Zookeeper節點,這里就不再贅述Zookeeper節點如何搭建了!搭建可以查看 官方文檔,或者使用 Docker的方式搭建。

搭建完成并運行Zookeeper之后,我們會把所有的Kafka節點都配置到這一個Zookeeper節點上。

② 配置并運行所有Kafka節點

首先去 Kafka官網下載最新版并解壓,然后將解壓出來的Kafka分別復制到三臺虛擬機中。

然后修改每臺虛擬機的Kafka目錄中的配置文件,配置文件位于解壓的Kafka文件夾中的config/server.properties,使用文本編輯器打開,并找到下列配置項進行配置:

  • broker.id 表示每個節點的id,每個節點需要設置為不一樣的整數,我這里分別設置為1,2和3
  • zookeeper.connect 表示要使用的Zookeeper的地址和端口,我這里都配置為zookeeper:2181
  • advertised.listeners 表示這個Kafka節點的外網地址,這里分別配置為PLAINTEXT://kafka1:9092,PLAINTEXT://kafka2:9092和PLAINTEXT://kafka3:9092,需要注意的是這個配置項必須要配置為其所在服務器的外網地址,如果說你是在一臺服務器上面配置Kafka并要通過外網訪問,這個配置就需要配置為服務器外網地址(域名),并且都以PLAINTEXT://開頭

注意上述advertised.listeners這個配置項默認情況下是被注釋掉了的,大家需要去仔細找一下并去掉注釋(開頭的#)然后再進行配置。

三臺虛擬機配置完成后,分別使用終端進入到Kafka目錄下并啟動,執行下列命令:

bash

bin/kafka-server-start.sh config/server.properties

在上述三臺虛擬機上面都通過這個命令啟動Kafka,如圖則啟動成功:

到此,整個集群就搭建完成了!大家需要保證上述三臺虛擬機中的終端不被關閉。

③ 創建話題測試

我們先在kafka1的虛擬機上面再開一個終端并進入Kafka目錄,執行下列命令創建Topic:

bash

bin/kafka-server-start.sh config/server.properties

然后去kafka2的虛擬機上面再開一個終端并進入Kafka目錄,執行下列命令列出Topic:

bash

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

可見我們在第一個節點上創建了話題,但是在第二個節點上仍然可以獲取這個話題,說明集群創建成功,數據在集群之間可以共享。

(2) KRaft模式集群

在上述傳統方案中,Kafka需要依賴Zookeeper完成元數據存放和共享,這樣也就暴露出了一些問題:

搭建Kafka集群時還需要額外搭建Zookeeper,增加了運維成本

Zookeeper是強一致性的組件(符合CP理論),如果集群中數據發生變化,那么必須要等到其它節點都同步,至少超過一半同步完成,這樣節點數多性能差

那么KRaft模式是新版本Kafka中推出的集群模式,這種模式下就完全不需要Zookeeper了!只需要數個Kafka節點就可以直接構成集群,在這時集群中的Kafka節點既有可能是Controller節點也可能是Broker節點,在這個模式中,我們不僅可以手動配置某個節點的角色(是Controller還是Broker),還可以使其同時擔任Broker和Controller角色(混合節點)。

在KRaft模式中,集群的節點會通過投票選舉的方式,選擇出一個主要的Controller節點,這個節點也稱作領導者,它將負責維護整個集群的元數據和狀態信息,那么其它的Controller節點或者混合節點就稱之為追隨者,它們會從領導者同步集群元數據和狀態信息。如果領導者宕機了,所有的節點會重新投票選舉一個新的領導者。

在選舉過程中,所有的節點都會參與投票過程,而候選節點只會是Controller節點或者混合節點(即Broker節點不會被選舉為領導者)。

需要注意的是,在默認情況下Kafka集群中的Broker節點和Controller節點通常會監聽不同的端口:

  • Broker節點是Kafka集群中的數據節點(消息隊列),它們負責接收客戶端的消息和傳遞消息給客戶端,默認情況下,每個Broker節點會監聽9092端口,該端口用于與客戶端進行通信,客戶端可以將消息發送到這個端口,或者從這個端口接收消息,這個端口可以稱作客戶端通信端口
  • Controller節點是Kafka集群中的控制器節點,負責管理集群的狀態和元數據,Controller節點監聽的端口通常是9093,該端口用于集群中其他節點獲取元數據或在混合節點選舉新的Controller時進行通信,通過該端口,其他節點可以與Controller節點交互,獲取集群的元數據信息或參與控制器的選舉過程,這個端口可以稱作控制器端口
  • 混合節點(即同時擔任Broker和Controller角色的節點)中,這兩個端口都會被使用,默認情況下混合節點將監聽9092端口接收和傳遞消息給客戶端,并監聽9093端口用于與其他節點進行元數據交換和控制器選舉通信,可見混合節點會同時使用兩個端口分別作為客戶端通信端口與控制器端口

所以需要根據實際情況配置網絡設置和防火墻規則,以確保Kafka集群中的節點能夠在正確的端口上進行通信。上述提到的兩種端口也是可以修改的,當然不建議修改。

同樣地,就算是你只是搭建了一個Kafka節點,這一個節點也仍然被視為一個Kafka集群,并且KRaft模式下如果只需要建立一個節點,那么這個節點必須是混合節點。


下面同樣是開啟三臺虛擬機,搭建三個Kafka節點構成的KRaft模式集群如下:

這里就不再贅述下載Kafka的過程了!

① 修改配置文件

在KRaft模式下,配置文件位于Kafka目錄中的config/kraft/server.properties,使用文本編輯器打開并找到下列配置以修改:

node.id 表示這個節點的id,一個集群中每個節點id不能重復,需要是不小于1的整數,這里三臺虛擬機的配置分別為1,2和3(類似上述Zookeeper的broker.id配置)

controller.quorum.voters 設定投票者列表,即需要配置所有的Controller節點id及其地址端口,配置格式為節點1的id@節點1地址:節點1端口,節點2的id@節點2地址:節點2端口,節點3的id@節點3地址:節點3端口...,這里的端口需要是控制器端口,默認都是9093,上面也提到過了,默認不需要修改,我這里三臺虛擬機的都配置為1@kafka1:9093,2@kafka2:9093,3@kafka3:9093(實際在服務器上搭建時替換為服務器的外網地址或者域名)

advertised.listeners 表示這個Kafka節點的外網地址,這里分別配置為PLAINTEXT://kafka1:9092,PLAINTEXT://kafka2:9092和PLAINTEXT://kafka3:9092(和上述Zookeeper模式中的一樣,實際在服務器上搭建時替換為服務器的外網地址或者域名)

上述是必須要進行配置的,還有下面配置是可以選擇性配置的:

process.roles 表示設定這個節點的類型,設定為broker表示設定這個節點為Broker節點,同樣地設定controller表示設定為Controller節點,默認是broker,controller表示這個節點會自動切換節點類型,這里先保持默認不變,下面再來詳細討論

② 生成集群ID并使用集群ID格式化數據目錄

在KRaft模式下,一個集群需要設定一個id,我們可以使用自帶的命令生成,先進入上述任意一臺虛擬機并使用終端進入Kafka目錄中,執行下列命令生成一個UUID:

arduino

bin/kafka-storage.sh random-uuid

我們這里記錄下這個ID以備用。

這個集群ID事實上是一個長度16位的字符串通過Base64編碼后得來的,因此你也可以不使用上述命令,直接自定義一個16位長度的純英文和數字組成的字符串,然后將這個字符串編碼為Base64格式作為這個集群ID也可以。可以使用 菜鳥工具中的在線Base64編碼工具。

然后在上述三臺虛擬機中,都使用終端進入Kafka目錄后,執行下列命令:

bash

bin/kafka-storage.sh format -t 生成的集群ID -c config/kraft/server.properties

這樣,三個Kafka節點都使用了這一個ID完成了集群元數據配置,表示這三個Kafka節點構成一個集群。

③ 啟動Kafka

同樣地,在三臺虛擬機中,都使用終端進入Kafka目錄后,執行下列命令:

bash

bin/kafka-server-start.sh config/kraft/server.properties

三臺虛擬機全部啟動后,這個集群才啟動完畢。

④ 創建話題測試

同樣地,現在第一個虛擬機的Kafka目錄下執行下列命令:

bash

bin/kafka-topics.sh --create --topic my-topic-kraft --bootstrap-server localhost:9092

然后在第二個虛擬機的Kafka目錄下查看話題:

bash

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

可見集群節點之間可以互相通信。

無論是在虛擬機還是服務器上,都要保證9092和9093端口開放,且所有虛擬機/服務器之間都能夠兩兩互相訪問(網絡連通)!

3,重要配置介紹

無論是那種模式的集群,我們都涉及到了許多配置項,大家通過上述的搭建示例也能夠了解到每個配置項的意義,這里就專門來著重介紹一下,Kafka中一些重要的配置項。

(1) listeners

這個配置項用于指定Kafka服務器監聽客戶端連接的地址和端口,當 Kafka 服務器啟動時,它將監聽listeners配置項中指定的地址和端口,等待客戶端的連接請求。

一般情況下這個配置以PLAINTEXT://或者CONTROLLER://開頭,意義如下:

  • 若這個節點是Broker節點,則以PLAINTEXT://開頭
  • 若這個節點是Controller節點,則以CONTROLLER://開頭
  • 若這個節點是混合節點,則需要同時配置兩者開頭的地址

這個配置項通常不需要修改,下面給出幾個配置示例:

  • PLAINTEXT://:9092 本節點作為Broker節點,監聽本機所有可用網卡的9092端口(使用9092端口作為客戶端通信端口),也是默認配置
  • PLAINTEXT://127.0.0.1:9092 本節點作為Broker節點,監聽本地的9092端口,這樣僅接受來自本地的請求
  • CONTROLLER://:10000 本節點作為Controller節點,監聽本機所有可用網卡的10000端口(使用10000端口作為控制器端口)
  • PLAINTEXT://:9092,CONTROLLER://:9093 本節點作為混合節點,監聽本機所有可用網卡的9092和9093端口,其中9092作為客戶端通信端口,9093作為控制器端口

(2) advertise.listeners

這個配置容易和listeners混淆,事實上它們是有較大的區別的。

該配置項指定Kafka服務器廣播給客戶端的地址和端口,通常配置為Kafka所在服務器的外網地址。

當客戶端(生產者或消費者)嘗試連接到Kafka服務器時,它首先會獲取Kafka服務器廣播的地址和端口,也就是advertise.listeners配置所指定的地址和端口,然后才會使用advertise.listeners配置所指定的地址和端口來建立與Kafka服務器的連接。

相信這時大家會有個疑問:既然客戶端要連接Kafka(例如Spring Boot集成Kafka客戶端),那一定是已經知道了Kafka對外的地址端口了,那為什么連接的時候還需要獲取一下廣播的地址端口再進行連接呢?這樣是不是有一些多此一舉?

事實上,Kafka設計這個配置是為了解決下面較為復雜的網絡場景:

  • 多網絡接口的主機部署:在一個多網絡接口的主機部署Kafka時,Kafka服務器可能會監聽多個地址和端口,這些地址和端口可能與客戶端實際訪問的地址和端口不同,advertise.listeners允許服務器指定一個公開的、可訪問的地址和端口,以便客戶端能夠正確連接
  • NAT/代理環境:在某些網絡環境下,Kafka服務器位于一個私有網絡中,客戶端位于一個公共網絡中,兩者之間可能存在網絡地址轉換(NAT)或代理,在這種情況下,Kafka服務器的內部地址和端口對客戶端來說是不可訪問的。通過使用advertise.listeners,Kafka服務器可以將一個公共地址和端口廣播給客戶端,使得客戶端能夠通過公共網絡連接到服務器
  • 容器環境:例如你把Kafka放在Docker容器中運行,按照默認配置,Kafka服務端只會監聽容器網絡的9092端口,我們知道外部不能直接訪問容器的網絡,而是需要使用網絡映射,假設你把Kafka容器的9092端口映射至了宿主機9095端口,也就是說外部需要通過9095端口訪問到Kafka容器的9092端口,那么你就配置advertise.listeners為PLAINTEXT://服務器外網地址:9095,客戶端就可以正確訪問容器中的Kafka了

總之,這個配置設置為Kafka服務器所在的外網地址即可!例如PLAINTEXT://69.54.112.239:9092。

(3) process.roles

這是KRaft模式下專門的配置,用于配置這個節點的類型,可以配置為下列值:

  • broker 表示這個節點是Broker節點,充當消息隊列的角色
  • controller 表示這個節點是Controller節點,充當元數據存放和管理的角色
  • broker,controller 表示這個節點同時擔任Broker和Controller的角色,也稱作混合節點

如果沒有配置這個選項,則Kafka會以Zookeeper模式運行。

這里有下列注意事項:

  • 如果設定節點為controller:

則不能配置advertised.listeners,可以將其注釋掉或者刪掉

listeners需要配置為CONTROLLER://開頭,建議配置為CONTROLLER://:9093

  • 如果設定節點為broker:

則需要配置advertised.listeners為服務器外網地址和端口,這和Zookeeper模式中相同

listeners需要配置為PLAINTEXT://開頭,建議配置為PLAINTEXT://:9092

  • 如果設定節點為混合節點:

同樣需要配置advertised.listeners為服務器外網地址和端口

listeners需要同時配置CONTROLLER://和PLAINTEXT://,建議配置為PLAINTEXT://:9092,CONTROLLER://:9093

在開發環境或者小規模集群,可以全部使用混合節點,如果是生產環境就建議設定好每個節點的類型了!并且通常需要先啟動Controller節點再啟動Broker節點。

事實上,我們發現Kafka的KRaft配置目錄config/kraft下有三個配置文件,其中server.properties是混合節點的配置模板,而broker.properties和controller.properties分別是Broker節點和Controller節點的配置模板,大家如果要設定節點類型,可以直接使用對應的配置文件,將對應配置文件需要修改的部分修改一下,然后將上述格式化數據目錄命令和啟動命令中的配置文件路徑改變一下即可,這樣可以省略我們設定process.roles和listeners或者控制器節點刪除advertise.listeners配置的操作。

(4) controller.quorum.voters

該配置項用于配置集群中Controller節點選舉過程中的投票者,集群中所有的Controller節點都需要被羅列在這個配置項中,其配置格式為id1@host1:port1,id2@host2:port2,id3@host3:port3...。

有的同學可能認為這里需要把集群中所有節點都寫進去,事實上這是錯誤的,這里只需要寫所有的Controller節點和混合節點的id、地址和端口即可,這個配置中配置的端口當然是控制器端口。

上述集群搭建的例子中,由于所有的節點都是混合節點,因此就全部寫在其中了!如果我們手動設定每個節點的類型,例如:

那么所有節點的controller.quorum.voters都需要配置為1@kafka1:9093。

事實上,所有的節點都是通過這個配置中的節點列表,來得知所有的控制器節點信息(以獲取集群元數據)并得到投票候選者的,因此集群中所有節點,不論是Broker還是Controller,還是混合節點,都需要配置這一項。

(5) 其它配置

除了上述我們涉及到的一些配置之外,還有下列配置大家可以進行修改:

  • socket.send.buffer.bytes 每次發送的數據包的最大大小(單位:字節)
  • socket.receive.buffer.bytes 每次接收的數據包的最大大小(單位:字節)
  • socket.request.max.bytes 接收的最大請求大小(單位:字節)
  • num.partitions 每個Topic的默認分區數

上述無論是哪個模式的集群,都可以在配置文件中找到這些配置,如果找不到可手動加入。除了修改配置文件之外,我們還可以在啟動Kafka的命令中指定配置和值,例如:

bash

bin/kafka-server-start.sh config/server.properties --override zookeeper.connect=127.0.0.1:2181 --override broker.id=1

上述命令在啟動時通過命令指定了zookeeper.connect配置值為127.0.0.1:2181,以及broker.id為1,可見在后面追加--override 配置名=值即可,注意命令行中指定的配置值會覆蓋掉配置文件中的配置值!

責任編輯:武曉燕 來源: 51CTO博客
相關推薦

2020-02-21 17:33:17

SparkKafka數據

2020-01-06 14:54:31

RDBAOFRedis

2024-06-06 08:32:52

.NET框架代碼

2021-08-11 06:57:16

ShuffleSpark核心

2022-03-15 08:25:32

SparkShuffle框架

2010-06-02 15:29:06

SVN版本控制

2010-03-11 10:38:34

Python運算符

2020-12-14 12:48:51

Kafka集群節點

2018-12-20 13:53:59

OLEDLCD屏幕

2021-02-24 13:51:45

BIMAI建筑技術

2021-07-26 14:14:40

VRAI人工智能

2010-03-18 10:18:52

python模塊

2009-06-08 20:07:44

Eclipse中使用p

2011-03-03 10:26:04

Pureftpd

2010-03-11 14:34:47

Python環境

2020-04-16 13:48:27

DFS BFS優先遍歷

2015-05-06 13:34:14

MySQL集群搭建

2014-03-07 14:07:26

Windows 8.1

2012-12-21 10:56:25

HP unix系統Oracle

2012-12-20 17:43:32

HPUNIXOracle
點贊
收藏

51CTO技術棧公眾號

国产精品美女xx| 51久久夜色精品国产麻豆| av一区二区三区在线观看| 天堂av网手机版| 精品无人乱码一区二区三区| 国产成人久久精品77777最新版本| 色诱女教师一区二区三区| 玩弄japan白嫩少妇hd| 精品美女视频在线观看免费软件| 午夜宅男久久久| 精品一区二区电影| 国产黄色特级片| 国产69精品久久app免费版| 石原莉奈在线亚洲三区| 亚洲第一网站免费视频| 欧美二区在线视频| 日本免费不卡视频| 午夜一级在线看亚洲| 亚洲人成电影网站色…| 色哟哟精品视频| 乱人伦中文视频在线| 波多野结衣在线aⅴ中文字幕不卡| 奇米四色中文综合久久| 亚洲不卡在线播放| 欧美黄色影院| 69堂国产成人免费视频| 激情伊人五月天| 免费大片在线观看www| 99精品欧美一区二区三区小说| 国产精品自在线| 日本熟女一区二区| 9999国产精品| 日韩电影中文字幕在线| 男女污污视频网站| 九九热线视频只有这里最精品| 亚洲视频一二三| 免费观看国产成人| 亚洲精品国产精品国| 七七婷婷婷婷精品国产| 91国语精品自产拍在线观看性色 | 在线观看国产精品入口男同| 亚洲经典自拍| 久久国产天堂福利天堂| 91社区视频在线观看| 欧美成人专区| 日韩欧美不卡在线观看视频| 中文字幕第17页| 日韩电影免费观| 亚洲成人av一区二区| 路边理发店露脸熟妇泻火| 国产专区在线播放| 91在线视频观看| 超碰97在线资源| 国产美女三级无套内谢| 蜜桃久久av一区| 国产成人在线视频| 午夜精品久久久久久久久久久久久蜜桃 | 91大神在线观看线路一区| 亚洲超碰精品一区二区| 久久久天堂国产精品| 免费黄网在线观看| 中文字幕一区二区三区不卡在线 | 成人在线免费在线观看| caoprom在线| 一区二区三区日韩在线观看| 精品少妇人妻av一区二区| 18视频免费网址在线观看| 久久久高清一区二区三区| 久久久久久a亚洲欧洲aⅴ| 欧美一区二区三区成人片在线| 国产精品99久久久久久有的能看 | 亚洲一区尤物| 91在线网址| 国产欧美一区二区精品仙草咪| 免费一区二区三区| 你懂的在线看| 久久综合九色综合97婷婷| 欧美久久综合性欧美| 免费黄色片在线观看| 久久精品日产第一区二区三区高清版| 国产在线一区二| 天堂中文在线看| 91免费视频大全| 欧美极品日韩| 懂色一区二区三区| 亚洲特黄一级片| 日本道在线视频| 男插女视频久久久| 欧美日韩性视频| 不卡影院一区二区| 国产成人精选| 欧美一级高清片| 91精产国品一二三| 欧美电影免费网站| 亚洲视频在线播放| 神马久久精品综合| 欧美日韩蜜桃| 91高清免费在线观看| 无码一区二区三区| 麻豆极品一区二区三区| 97se亚洲综合| 手机福利在线| 国产精品美女久久久久av爽李琼 | 奇米影视888狠狠狠777不卡| 国产午夜久久久久| 免费观看国产视频在线| 国产福利电影在线播放| 欧美三区在线观看| 国产精品扒开腿做爽爽爽a片唱戏| 亚洲图区在线| 久久伊人精品视频| 欧美三级韩国三级日本三斤在线观看 | 色999国产精品| 欧美成人第一页| 91av在线免费视频| 老司机精品视频导航| 99视频免费观看蜜桃视频| 欧美伦理影视网| 最新国产成人在线观看| 日韩av三级在线| 自拍偷拍欧美日韩| 日韩电影第一页| 亚洲天堂一级片| 亚洲一区二区毛片| 91精品网站| 九色网友自拍视频手机在线| 一区二区三区美女| 午夜免费一区二区| 女同另类激情重口| 另类专区欧美制服同性| 成人a v视频| 波多野结衣精品在线| 亚洲美女搞黄| 手机在线理论片| 日韩欧美一区二区免费| 国产一级淫片久久久片a级| 亚洲黄网站黄| 91久色国产| 1024国产在线| 日本久久一区二区| 日本免费福利视频| 亚洲夜间福利| 91网站在线免费观看| 国产精品二线| 日韩欧美亚洲国产一区| 制服丝袜第一页在线观看| 亚洲欧美伊人| 亚洲一区精品电影| 在线观看免费版| 日本高清不卡在线观看| 无码人妻aⅴ一区二区三区| 亚洲福利久久| 超碰97在线人人| 99热国产在线| 日韩一区二区精品葵司在线| 91狠狠综合久久久| 捆绑变态av一区二区三区| 性欧美.com| 国模套图日韩精品一区二区| 日韩毛片在线观看| 欧美国产成人精品一区二区三区| 91在线国产福利| 欧美视频在线播放一区| 日韩影视在线观看| 91精品国产高清自在线| 天堂在线中文资源| 欧美性xxxxx极品娇小| ass精品国模裸体欣赏pics| 99精品国产一区二区青青牛奶 | 天堂网视频在线| 91免费看视频| 欧美视频免费播放| 国产探花在线精品一区二区| 国产精品都在这里| 成人在线观看一区| 欧美日韩三级在线| 免费在线观看一级片| 懂色av一区二区三区蜜臀 | 黄色av电影网站| 国产在线日韩| 精品一区二区三区自拍图片区| 国产精品13p| 亚洲精选一区二区| 亚洲无码久久久久久久| 1024亚洲合集| 性感美女一区二区三区| 亚洲午夜一区| 欧美极品一区| 视频91a欧美| 欧美成人自拍视频| 亚洲av毛片成人精品| 在线视频国内一区二区| 老熟妇高潮一区二区三区| 粉嫩av一区二区三区| 人妻内射一区二区在线视频| 日韩欧美1区| 91蜜桃网站免费观看| 男人av在线播放| 在线日韩日本国产亚洲| 国产成人av免费看| 欧美香蕉大胸在线视频观看| 三级黄色在线观看| av电影在线观看一区| 久久久久久久久久久久91| 中文字幕一区二区三区在线视频| 国产私拍一区| 欧美aaa级| 韩国欧美亚洲国产| 午夜在线视频| 亚洲国产精品99| 国产精品传媒在线观看| 亚洲最新视频在线观看| 国产精品美女高潮无套| 国产成人精品亚洲午夜麻豆| av免费网站观看| 欧美福利影院| 日韩欧美一区二区三区四区 | 欧美永久精品| 欧美日韩在线精品| 欧美成人精品午夜一区二区| 日韩免费在线播放| 久草在线资源站资源站| 揄拍成人国产精品视频| 天堂av一区二区三区| 欧美军同video69gay| 久久久久久不卡| 亚洲国产综合人成综合网站| 战狼4完整免费观看在线播放版| 成人短视频下载| 国内av一区二区| 日精品一区二区三区| 国产精品网站免费| 欧美激情视频一区二区三区在线播放 | 丁香六月久久综合狠狠色| 亚洲国产精品三区| 亚洲永久免费精品| 99国产精品白浆在线观看免费| 日韩精品影视| 欧美极品一区二区| 久久草在线视频| 亚洲japanese制服美女| 成人在线视频免费看| 日韩av免费一区| 色综合亚洲图丝熟| 韩国日本不卡在线| av女在线播放| 欧美风情在线观看| 天堂8中文在线| 久久精品国产亚洲精品2020| 色综合久久久久综合一本到桃花网| 亚洲品质视频自拍网| 欧美精品久久久久久久久久丰满| 亚洲爱爱爱爱爱| 亚洲精品一级片| 91精品国产入口| 国产又粗又猛又爽又黄的| 精品污污网站免费看| 欧美在线视频精品| 精品视频一区 二区 三区| 中国老头性行为xxxx| 欧美无乱码久久久免费午夜一区 | 日本高清免费不卡视频| 亚洲不卡在线视频| 91国在线观看| 亚洲永久精品一区| 欧美手机在线视频| 国产精品久久久久久免费播放 | 国产精品熟女久久久久久| 宅男在线国产精品| 国产三级伦理片| 日韩一区二区不卡| 亚洲国产综合一区| 亚洲精品美女久久久| 日本护士...精品国| 亚洲欧美中文日韩在线| 国产一二三区在线| 中文字幕在线日韩| 国产在线69| 欧美大片第1页| japanese色国产在线看视频| 91国产在线精品| 欧美色网在线| 91麻豆桃色免费看| 国产成人精品福利| 另类欧美小说| 精品大片一区二区| 波多野结衣三级在线| 国产在线不卡| 97视频在线免费播放| 日本不卡视频在线观看| www.51色.com| 波波电影院一区二区三区| 在哪里可以看毛片| 国产免费观看av| 91浏览器在线视频| 亚洲欧美va天堂人熟伦| |精品福利一区二区三区| 久久久久久久久久久97| 欧美日韩中文字幕在线视频| 国语对白做受69按摩| 日韩一区二区三区在线| 青青草手机在线| 精品国产欧美一区二区三区成人| 欧洲精品二区| 日本精品视频在线| 亚洲精品tv| 国产视频一区二区三区四区| 日本道不卡免费一区| 日韩欧美视频免费在线观看| 老鸭窝毛片一区二区三区| 五月天婷婷在线观看视频| 久久婷婷国产综合国色天香| 国产精品视频一区二区三| 精品国产1区2区| 亚洲天堂狠狠干| 日韩大片免费观看视频播放| 欧美性videos| 欧美亚洲午夜视频在线观看| 国产精一区二区| 欧美系列一区| 国产综合激情| www午夜视频| jlzzjlzz国产精品久久| 成人一级黄色大片| 日韩欧美有码在线| 亚洲成熟女性毛茸茸| 最近2019免费中文字幕视频三| 99爱在线视频| 亚洲mm色国产网站| 欧美肉体xxxx裸体137大胆| 成人免费观看cn| 国产一区二区三区美女| 日韩视频在线观看免费视频| 午夜精品影院在线观看| 国产99视频在线| 少妇高潮 亚洲精品| 性欧美又大又长又硬| 懂色中文一区二区三区在线视频| 久久性感美女视频| 成人精品小视频| 99久久99久久精品免费观看| 69av.com| 91精品欧美一区二区三区综合在| 国产一区二区三区福利| 8x拔播拔播x8国产精品| ady日本映画久久精品一区二区| 亚洲综合激情五月| 免费看欧美美女黄的网站| 级毛片内射视频| 日韩欧美高清在线视频| 天天综合天天综合| 久久久中文字幕| 亚洲视频精选| 亚洲色图都市激情| 国产一区啦啦啦在线观看| 婷婷国产成人精品视频| 欧美中文一区二区三区| 成人在线免费看| 国产精品白嫩初高中害羞小美女| 清纯唯美亚洲经典中文字幕| 国产精品裸体瑜伽视频| av不卡免费电影| 91午夜视频在线观看| 日韩精品免费在线视频| 三级中文字幕在线观看| 麻豆亚洲一区| 三级久久三级久久| 精品无码在线观看| 欧美日本精品一区二区三区| 欧美精品日韩少妇| 91在线免费视频| 欧美va天堂在线| 亚洲美女在线播放| 污片在线观看一区二区| 青青草免费在线| 国产精品久久久| 99久精品视频在线观看视频| www.com污| 一区二区三区在线免费观看| 精品毛片在线观看| 韩剧1988在线观看免费完整版| 日本在线中文字幕一区| 人妻丰满熟妇av无码区app| 国产精品亲子伦对白| 精品国产乱码久久久久久蜜臀网站| 欧美激情视频一区二区| 露出调教综合另类| 成人午夜激情av| 自拍偷拍国产精品| 人妻夜夜爽天天爽| 国产精国产精品| 外国成人免费视频| 中文字幕在线国产| 色婷婷久久综合| 麻豆传媒视频在线观看免费| 国产精品手机在线| 久久免费国产| 欧美亚洲日本在线| 亚洲免费人成在线视频观看| 日韩精品第二页|