国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

kafka消費(fèi)者分組消費(fèi)的再平衡策略

共 8651字,需瀏覽 18分鐘

 ·

2021-06-27 13:56

一,Kafka消費(fèi)模式

kafka消費(fèi)消息,kafka客戶端提供兩種模式: 分區(qū)消費(fèi),分組消費(fèi)。

分區(qū)消費(fèi)對(duì)應(yīng)的就是我們的DirectKafkaInputDStream

分組消費(fèi)對(duì)應(yīng)的就是我們的KafkaInputDStream

消費(fèi)者數(shù)目跟分區(qū)數(shù)目的關(guān)系:

1),一個(gè)消費(fèi)者可以消費(fèi)一個(gè)到全部分區(qū)數(shù)據(jù)

2),分組消費(fèi),同一個(gè)分組內(nèi)所有消費(fèi)者消費(fèi)一份完整的數(shù)據(jù),此時(shí)一個(gè)分區(qū)數(shù)據(jù)只能被一個(gè)消費(fèi)者消費(fèi),而一個(gè)消費(fèi)者可以消費(fèi)多個(gè)分區(qū)數(shù)據(jù)

3),同一個(gè)消費(fèi)組內(nèi),消費(fèi)者數(shù)目大于分區(qū)數(shù)目后,消費(fèi)者會(huì)有空余=分區(qū)數(shù)-消費(fèi)者數(shù)

二,分組消費(fèi)的再平衡策略

當(dāng)一個(gè)group,consumer加入或者離開時(shí),會(huì)觸發(fā)partitions均衡partition.assignment.strategy,決定了partition分配給消費(fèi)者的分配策略,有兩種分配策略:

1,org.apache.kafka.clients.consumer.RangeAssignor

默認(rèn)采用的是這種再平衡方式,這種方式分配只是針對(duì)消費(fèi)者訂閱的topic的單個(gè)topic所有分區(qū)再分配,Consumer Rebalance的算法如下:

1),將目標(biāo)Topic下的所有Partirtion排序,存于TP

2),對(duì)某Consumer Group下所有Consumer按照名字根據(jù)字典排序,存于CG,第i個(gè)Consumer記為Ci

3),N=size(TP)/size(CG)

4),R=size(TP)%size(CG)

5),Ci獲取的分區(qū)起始位置=N*i+min(i,R)

6),Ci獲取的分區(qū)總數(shù)=N+(if (i+ 1 > R) 0 else 1)

2,org.apache.kafka.clients.consumer.RoundRobinAssignor

這種分配策略是針對(duì)消費(fèi)者消費(fèi)的所有topic的所有分區(qū)進(jìn)行分配。當(dāng)有新的消費(fèi)者加入或者有消費(fèi)者退出,就會(huì)觸發(fā)rebalance。這種方式有兩點(diǎn)要求

A),在實(shí)例化每個(gè)消費(fèi)者時(shí)給每個(gè)topic指定相同的流數(shù)

B),每個(gè)消費(fèi)者實(shí)例訂閱的topic必須相同

Map<String, Integer> topicCountMap = new HashMap<String, Integer>();topicCountMap.put(topic, new Integer(1));Map<String, List<KafkaStream<byte[], byte[]>>> consumerMap = consumer.createMessageStreams(topicCountMap);

其中,topic對(duì)應(yīng)的value就是流數(shù)目。對(duì)應(yīng)的kafka源碼是在

kafka.consumer.ZookeeperConsumerConnector的consume方法里,根據(jù)這個(gè)參數(shù)構(gòu)建了相同數(shù)目的KafkaStream。

這種策略的具體分配步驟:

1),對(duì)所有topic的所有分區(qū)按照topic+partition轉(zhuǎn)string之后的hash進(jìn)行排序

2),對(duì)消費(fèi)者按字典進(jìn)行排序

3),然后輪訓(xùn)的方式將分區(qū)分配給消費(fèi)者

3,舉例對(duì)比

舉個(gè)例子,比如有兩個(gè)消費(fèi)者(c0,c1),兩個(gè)topic(t0,t1),每個(gè)topic有三個(gè)分區(qū)p(0-2),

那么采用RangeAssignor,結(jié)果為:

* C0: [t0p0, t0p1, t1p0, t1p1]

* C1: [t0p2, t1p2]

采用RoundRobinAssignor,結(jié)果為:

* C0: [t0p0, t0p2, t1p1]

* C1: [t0p1, t1p0, t1p2]

三,本節(jié)源碼設(shè)計(jì)的重要概念及zookeeper相關(guān)目錄

1,本節(jié)涉及的zookeeper目錄

A),消費(fèi)者目錄,獲取子節(jié)點(diǎn)就可以獲取所有的消費(fèi)者

/consumers/group.id/ids/

B),topic的目錄,可以獲取topic,分區(qū)及副本信息

/brokers/topics/topicName

值:

{"version":1,"partitions":{"0":[5,6],"2":[1,4],"27":[0,4],"1":[7,0]}}

partitions對(duì)應(yīng)值的key是分區(qū)id,value是Broker id列表。

C),分區(qū)所屬的消費(fèi)者線程關(guān)系

/consumers/groupId/owners/topic/partitionid

值就是消費(fèi)者線程id,也就是在A向獲取的消費(fèi)者后加了一個(gè)id值。

2,涉及的概念

A),消費(fèi)者ID

val consumerIdString = {  var consumerUuid : String = null  config.consumerId match {    case Some(consumerId) // for testing only    => consumerUuid = consumerId    case None // generate unique consumerId automatically    => val uuid = UUID.randomUUID()    consumerUuid = "%s-%d-%s".format(      InetAddress.getLocalHost.getHostName, System.currentTimeMillis,      uuid.getMostSignificantBits().toHexString.substring(0,8))  }  config.groupId + "_" + consumerUuid}

B),消費(fèi)者線程ID

主要是在消費(fèi)者id的基礎(chǔ)上,根據(jù)消費(fèi)者構(gòu)建指定的topicStream數(shù)目,遞增加了個(gè)數(shù)字的值

for ((topic, nConsumers) <- topicCountMap) {  val consumerSet = new mutable.HashSet[ConsumerThreadId]  assert(nConsumers >= 1)  for (i <- 0 until nConsumers)    consumerSet += ConsumerThreadId(consumerIdString, i) //ConusmerId的結(jié)尾加上一個(gè)常量區(qū)別 owners 目錄下可以看到  consumerThreadIdsPerTopicMap.put(topic, consumerSet)}

ConsumerThreadId

"%s-%d".format(consumer, threadId)

C),TopicAndPartition

topic名字的表示每個(gè)分區(qū),重點(diǎn)關(guān)注其toString方法,在比較的時(shí)候用到了。

TopicAndPartition(topic: String, partition: Int)
override def toString = "[%s,%d]".format(topic, partition)

四,源碼解析

1,AssignmentContext

主要作用是根據(jù)指定的消費(fèi)組,消費(fèi)者,topic信息,從zookeeper上獲取相關(guān)數(shù)據(jù)并解析得到,兩種分配策略要用的四個(gè)數(shù)據(jù)結(jié)構(gòu)。解析過(guò)程請(qǐng)結(jié)合zookeeper的相關(guān)目錄及節(jié)點(diǎn)的數(shù)據(jù)類型和kafka源碼自行閱讀。

class AssignmentContext(group: String, val consumerId: String, excludeInternalTopics: Boolean, zkClient: ZkClient) {  //(topic,ConsumerThreadIdSet) //指定一個(gè)消費(fèi)者,根據(jù)每個(gè)topic指定的streams數(shù)目,構(gòu)建相同數(shù)目的流  val myTopicThreadIds: collection.Map[String, collection.Set[ConsumerThreadId]] = {    val myTopicCount = TopicCount.constructTopicCount(group, consumerId, zkClient, excludeInternalTopics)    myTopicCount.getConsumerThreadIdsPerTopic  }
//(topic 分區(qū)) /brokers/topics/topicname 值 val partitionsForTopic: collection.Map[String, Seq[Int]] = ZkUtils.getPartitionsForTopics(zkClient, myTopicThreadIds.keySet.toSeq)
//(topic,ConsumerThreadId(當(dāng)前消費(fèi)者id)) ///consumers/Groupid/ids 子節(jié)點(diǎn) val consumersForTopic: collection.Map[String, List[ConsumerThreadId]] = ZkUtils.getConsumersPerTopic(zkClient, group, excludeInternalTopics)
///consumers/Groupid/ids的所有的子節(jié)點(diǎn) val consumers: Seq[String] = ZkUtils.getConsumersInGroup(zkClient, group).sorted} 2,RangeAssignorclass RangeAssignor() extends PartitionAssignor with Logging {
def assign(ctx: AssignmentContext) = { val partitionOwnershipDecision = collection.mutable.Map[TopicAndPartition, ConsumerThreadId]()
for ((topic, consumerThreadIdSet) <- ctx.myTopicThreadIds) { val curConsumers = ctx.consumersForTopic(topic) //當(dāng)前topic的所有消費(fèi)者 val curPartitions: Seq[Int] = ctx.partitionsForTopic(topic) //當(dāng)前topic的所有分區(qū)
// val nPartsPerConsumer = curPartitions.size / curConsumers.size val nConsumersWithExtraPart = curPartitions.size % curConsumers.size
info("Consumer " + ctx.consumerId + " rebalancing the following partitions: " + curPartitions + " for topic " + topic + " with consumers: " + curConsumers)
for (consumerThreadId <- consumerThreadIdSet) { val myConsumerPosition = curConsumers.indexOf(consumerThreadId) //獲取當(dāng)前消費(fèi)者線程的在集合中的位置 assert(myConsumerPosition >= 0) //獲取分區(qū)的起始位置 val startPart = nPartsPerConsumer * myConsumerPosition + myConsumerPosition.min(nConsumersWithExtraPart) //獲取當(dāng)前消費(fèi)者消費(fèi)的分區(qū)數(shù)目 val nParts = nPartsPerConsumer + (if (myConsumerPosition + 1 > nConsumersWithExtraPart) 0 else 1)
/** * Range-partition the sorted partitions to consumers for better locality. * The first few consumers pick up an extra partition, if any. */ if (nParts <= 0) warn("No broker partitions consumed by consumer thread " + consumerThreadId + " for topic " + topic) else { //將分區(qū)關(guān)系描述寫入partitionOwnershipDecision for (i <- startPart until startPart + nParts) { val partition = curPartitions(i) info(consumerThreadId + " attempting to claim partition " + partition) // record the partition ownership decision partitionOwnershipDecision += (TopicAndPartition(topic, partition) -> consumerThreadId) } } } }
partitionOwnershipDecision }

3,RoundRobinAssignor

class RoundRobinAssignor() extends PartitionAssignor with Logging {
def assign(ctx: AssignmentContext) = { val partitionOwnershipDecision = collection.mutable.Map[TopicAndPartition, ConsumerThreadId]()
// check conditions (a) and (b) topic, List[ConsumerThreadId] val (headTopic, headThreadIdSet) = (ctx.consumersForTopic.head._1, ctx.consumersForTopic.head._2.toSet)
//測(cè)試輸出 ctx.consumersForTopic.foreach { case (topic, threadIds) => val threadIdSet = threadIds.toSet require(threadIdSet == headThreadIdSet, "Round-robin assignment is allowed only if all consumers in the group subscribe to the same topics, " + "AND if the stream counts across topics are identical for a given consumer instance.\n" + "Topic %s has the following available consumer streams: %s\n".format(topic, threadIdSet) + "Topic %s has the following available consumer streams: %s\n".format(headTopic, headThreadIdSet)) } //為傳入的集合創(chuàng)建一個(gè)循環(huán)迭代器,傳入之前排序是按照字典排序 val threadAssignor = Utils.circularIterator(headThreadIdSet.toSeq.sorted)
info("Starting round-robin assignment with consumers " + ctx.consumers)
//TopicAndPartition 按照字符串的hash排序 val allTopicPartitions = ctx.partitionsForTopic.flatMap { case(topic, partitions) => info("Consumer %s rebalancing the following partitions for topic %s: %s" .format(ctx.consumerId, topic, partitions))
partitions.map(partition => { TopicAndPartition(topic, partition) //toString = "[%s,%d]".format(topic, partition) })
}.toSeq.sortWith((topicPartition1, topicPartition2) => { /* * Randomize the order by taking the hashcode to reduce the likelihood of all partitions of a given topic ending * up on one consumer (if it has a high enough stream count). */ //按照hash值進(jìn)行排序 topicPartition1.toString.hashCode < topicPartition2.toString.hashCode })
//過(guò)濾得到當(dāng)前消費(fèi)者的線程id allTopicPartitions.foreach(topicPartition => { val threadId = threadAssignor.next() if (threadId.consumer == ctx.consumerId) partitionOwnershipDecision += (topicPartition -> threadId) })
//返回得到結(jié)果 partitionOwnershipDecision }}

 

五,總結(jié)

本文主要是講解分組消費(fèi)的兩種將分區(qū)分配給消費(fèi)者線程的分配策略。結(jié)合前面兩篇

<Kafka源碼系列之Consumer高級(jí)API性能分析>和<Kafka源碼系列之源碼解析SimpleConsumer的消費(fèi)過(guò)程>,大家應(yīng)該會(huì)對(duì)kafka的java 消費(fèi)者客戶端的實(shí)現(xiàn)及性能優(yōu)缺點(diǎn)有徹底的了解了。

分組,分區(qū)兩種種模型其實(shí)跟kafka集群并沒(méi)有關(guān)系,是我們java客戶端實(shí)現(xiàn)的區(qū)別。生產(chǎn)中可以根據(jù)自己的需要選擇兩種消費(fèi)模型。建議流量不是很大,也沒(méi)過(guò)分的性能需求,選擇分組消費(fèi),這樣同分組多消費(fèi)者的話相當(dāng)于實(shí)現(xiàn)了同分組的消費(fèi)者故障轉(zhuǎn)移。

瀏覽 40
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 我和岳m愉情XXXⅩ视频| 国产激情在线视频| 成人无码动漫A片| 911国产精品| 天堂在线9| 超碰av电影| 91人妻无码视频| 青娱乐AV| 成人午夜精品| 天天色天天干天天日| 精品视频免费| 自拍偷拍精品视频| 天天舔天天干| 中文亚洲视频| 亚洲成人视频一区二区| 日日干天天日| 懂色在线精品分类视频| 精品成人| 999无码| 免费一级做a爱片毛片A片小说| 自拍偷拍AV| 亚洲AV秘成人久久无码海归| 国产精品理论片| 一区二区av在线| 欧美九九九九| 日韩中文字| 黄网站在线观看| 九色91| 最新中文字幕在线视频| 久久91欧美特黄A片| 婷婷亚洲天堂| 国产精品不卡一区二区三区| 青青久热| 婷婷丁香色| 欧美亚洲日韩一区| 久久中文字幕无码| 欧美在线观看视频一区| 操操小骚逼| 日韩高清无码不卡| 在线观看黄A片免费网站| 免费在线观看视频a| 亚洲无遮挡| 天天爽夜夜爽精品成人免费| 五月天啪啪| 国产三级小视频| 曰曰摸日日碰| 日韩亚洲在线观看| 少妇A片| 日韩一区二区高清无码| 无套内射在线| 国产高清AV在线| 学生妹一级大片| 玖玖热在线视频| 91国产精品视频在线| 亚洲图片激情乱伦小说| 久久精品美臀| 超碰在线免费| 国产激情在线| 99热这里| 国产色片| 大香蕉啪啪| 日韩天堂| 91热视频| 一区二区不卡视频| 欧美三级片视频| 操逼视频在线免费观看| 亚洲视频在线看| 91亚洲精品视频| 99色热| 粉粉嫩嫩的18虎白女| 欧美成人三级| 天天舔天天日| 亚洲欧美日韩综合| 91香蕉麻豆| 五月丁香婷婷色| 影音先锋资源站| 国产成人无码一区二区| 啪啪视频免费观看| 亚洲AV电影网| 婷婷激情久久| 亚洲第一页在线| 五十路av| 国产精品国产精品国产专区不片| 怡红院男人天堂| 国产乱子伦一区二区三精品| 午夜无码福利| 久久精品免费观看| 99re在线观看| 大香蕉尹人| 先锋影音资源站| 亚洲AV电影在线观看| 啪啪啪免费网站| 尻屄视频| 国产精品国内自产拍| brazzers疯狂作爱| 午夜av在线播放| 色久悠悠综合网| 精品国产精品国产精品国产网站 | 天天干天天肏| 九九九九综合| 高清中文字幕在线A片| 精品亚洲一区二区三区四区五区| 亚洲无码性爱视频| 国产视频在线播放| 精品久久一区| 一本大道DVD中文字幕| 91成人小电影| www.久久99| 中文字幕二区| 久久亚洲视频| 大香蕉一级红色片青青河边草 | 超碰人妻人人操| 亚洲成免费| 岛国AV免费在线| 动漫一区二区| 日本免费在线视频| 免费在线观看黄色片| 99xxxxx| 免费操逼网| 青草国产| 国产精成人品| 黑人一级片| 伊人狼人香蕉| 亚洲无码激情在线| 国产a毛一级,a毛一级| 波多野结衣在线无码视频| 国产91免费| 性爱小说视频| 久久男人| www.色悠悠| 足浴店少妇69XXX| 特级西西西西4444级酉西88wwww特 | 亚州无码精品| 久久国产精品免费视频| 特级婬片A片AAA毛片AA做头| 免费内射视频| 国产精品v| 中文字幕av在线播放| H版视频| 黄色在线网| 日本亚洲视频| 五月天婷婷网站| 亚洲欧美视频一区| 国产AV久久| 麻豆国产精品一区| 狠狠撸视频| 国产视频一区二区三区四区| 久艹久| 精品国产999久久久免费| 香蕉视频啪啪啪| 12——13女人毛片毛片| 十八禁无码网站在线观看| 国产精品a片| 日韩成人视频在线观看| 天堂在线社区| 日韩成人无码特集| 日本无码精品| 99久久久国产| 五月在线| 欧美久久久| 无码一区二区三区四季| 山东乱子伦视频国产| 国产成人精品无码片子的价格| yjizz视频| 国产av一级片| 97超碰在线免费观看| 91乱子伦国产乱子伦无码| 国产精品久久久91| 少妇一级婬片内射视频| 免费成人三级片| 国产三级午夜理伦三级| 日韩在线毛片| 久久精品美臀| 性欧美xxxx| 天天日天天干美女| 欧美色图综合| 农村乱子伦毛片国产乱| 一级日韩| 天天干天天日蜜臀色欲av| 人人天天久久| 欧美人妻日韩精品| a在线免费| 一级黄片免费看| 日本在线www| 久久婷婷五月丁香| 久激情内射婷内射蜜桃欧美一级 | 乱伦天堂| 精品人妻系列| 久久尹人| 精品亚洲无码视频| 黄片网站免费看| 免费看欧美日黄片| 一级乱伦网站| 国产精品不卡在线| 日本欧美在线观看| 亚洲av影院| 日本在线www| 日韩逼逼| 91人人视频| 人成视频在线观看| 色婷婷91| 亚洲无| 黄色操屄视频| 日韩视频免费在线观看| 欧美3P视频| 一级a免费| 国产一区二区三区在线观看免费视频免费视频免费视频 | 99爱在线观看| 天天色天天日| 996热re视频精品视频这里| 日本在线一区二区| 欧美三级黄色| 久久黄色免费视频| 国产无码电影在线观看| 日韩成人免费在线观看| 国产真实露脸乱子伦对白高清视频 | 日逼导航| 俺来也听听婷婷| 大地99中文在线观看| 欧美日韩A| 国产一级婬女AAAA片季秀英| 国产AⅤ爽aV久久久久成人| 欧洲操逼视频| 亚洲综合小说| 国产A级黄色片| 2021天天夜日| 天堂一区二区三区18| 韩国精品无码一区二区三区18| 三级片国产| 国产成人免费观看视频| 国产迷奸在线| 亚洲成人无码视频在线观看| 天天综合网久久综合网| 欧美成人视频18| 色婷婷欧美在线播放内射| 日韩精品视频一区二区三区| 国产一级a毛一级做a爱| 成人午夜A片| 蜜桃人妻无码| 欧美夜夜| 亚洲无码在线观看视频| 中文字幕在线无码视频| 色婷婷一区二区三区久久午夜| 黄片视频免费在线观看| 国产高清AV无码| 久久播视频| 韩国无码免费| 国产乱伦精品视频| 粉嫩小泬BBBBBB免费看| 男女啪啪免费网站| 国产精品毛片一区视频播| 91网站在线播放| 成人日韩欧美| 韩国午夜福利视频| 国产噜噜噜噜久久久久久久久 | 在线色综合| 成人动漫一区二区| 亚洲香蕉视频| 亚洲国产欧美在线| 久久aa| 懂色午夜福利一区二区三区| 五月激情天| 熟女18p| 狼友视频在在观看| 国产A∨| 日韩三级在线观看| 欧美美女视频网站| 亚洲成人av无码| 欧美综合在线观看| 福利黄色片:片| 91中文字幕在线播放| 手机看片久久| 婷婷黄色网| 日韩大屌| 女生自慰在线观看| 成人无码网站在线观看| 日韩欧美午夜成人无码| 中文字字幕中文字幕乱码| 狠狠色噜噜狠狠狠7777| 国产AV一区二区三区四区| 久久伊人在线| 91丝袜一区二区三区| 日本人妻视频| 二区视频在线| 水蜜桃91| 久久精品v| 亚洲精品女人久久久| 少妇大战黑人46厘米| 亚洲婷婷精品国产成人| 五月丁香成人| 国产亚洲视频在线观看视频| 91麻豆福利| 成人A片在线观看| 韩国无码成人电影啊荒| 日韩中文在线视频| 国产色黄视频| 亚洲精选中文字幕| 国产一级内射| 国产秘精品区二区三区日本| 国产精品无码AV| 操操操操一本到| 亚洲免费观看高清完整版在va线观看 | 亚洲操b| 亚洲欧美激情小说另类| 日韩A√| 亚洲男人综合| 摸BBB搡BBB搡BBBB| 国产成人在线免费观看| 在线观看免费视频a| 看看AV| 天天摸天天添| Japanese在线观看| 青草伊人网| 99re6热在线精品视频| 婷婷久久综合久色| 黄色片久久| 国产av中文字幕| 午夜视频免费在线观看| 国产A片免费| 婷婷五月电影| 国产精品无码专区AV免费播放 | 无码视频免费| 97成人在线视频| 水果派av解说| 亚洲综合二区| 中文字幕日韩在线观看| 国产免费AV片在线无码| 欧美成人精品欧美一级私黄| 日本在线www| 91老熟女视频| 日韩无码18| 自拍成人视频| 龙泽美曦土豪| 欧美狠狠撸| 长泽梓黑人初解禁BDD07| 三级片亚洲| 影音先锋成人| 六月激情网| 99热这里| 人人妻人人澡人人爽人人爽| 亚洲小电影| 影音先锋国产在线| 蜜臀AV在线| 久久精品秘一区二区三免费| 91日韩在线| 亚洲精品成人一二三区| 五月婷婷丁香| 中文字幕亚洲无码视频| 天堂在线视频| 我和岳m愉情XXXⅩ视频| 亚洲第一网无码性色| 亚洲无码在线播放视频| 日本AI高清无码在线观看网址| 黑人精品欧美一区二区蜜桃| 日本操逼在线播放| 激情六月丁香| 亚洲第一狼人综合网| 五月丁香六月婷婷综合| 欧美激情性爱网站| 被黑人猛躁10次高潮视频| 亚洲自拍天堂| 日韩成人无码人妻| 激情二区| 日韩在线综合| 97婷婷五月天| 狠狠操av| 国产毛片精品一区二区色欲黄A片| 伊人乱伦| 香蕉伊人视频| 青青操国产乱伦| 北条麻妃在线中文字幕| 免费的一级A片| 中文字幕2018第一页| 黄色高清视频在线观看| 黄色高清无码| 亚洲第一成年人网站| 高潮视频在线观看| 精品国产天线2024| 专业操美女视频网站| 97乱伦| 久久久久久一| 免费v片在线观看| 99免费视频在线| 黄色小电影网站| 影音先锋男人你懂的| 深爱激情五月天| 欧美自拍视频在线| 91麻豆精品91久久久久同性| 免费看黄片的网站| 亚洲日本中文字幕在线观看| 日本不卡一区二区三区| 91蝌蚪91九色| 黑人av| 青娱乐老视频| 日本AA视频| 波多野结衣成人在线| 亚洲免费观看高清完| 国产乱子伦-区二区三区| 亚洲在线第一页| 伊人春色AV| 九色国产视频| 黄色大片视频| 色婷婷久久| 激情人妻av| 色婷婷官网| 一级a一级a免费观看视频Al明星| 麻豆91蜜桃传媒在线观看| 日韩激情无码| 久草手机视频在线观看| 日本一级黄色电影网| 日韩av一区二区三区| 青青草狠狠干| 久久婷五月| 狼友免费视频| 大鸡巴午夜爽视频电影| 四川婬妇BBw搡BBBB搡| 丝袜制服中文字幕无码专区 | 三级乱伦视频| 欧美成人一级| 国产l精品久久久久久久久久| 亚洲AV免费在线| 69国产成人综合久久精品欧美| 黄色大片久草| 亚洲成人免费在线观看| 丁香婷婷综合网| 亚洲高清无码电影| 日韩黄频| gogogo日本免费观看高清电视剧的注意 | 91免费网站在线观看| 一区性爱| 特级毛片www| 欧美老女人操逼视频| 日本国产高清| 欧美日韩免费在线观看| 日韩久久网站| 国产精品欧美性爱| 日本人妻中文字幕| 亚洲国产日本| 国产无码一二三区| 福利一区二区视频网| 婷久久| 久久久激情| 国产精品久久久久久久久久二区三区| 99伊人| 在线国产福利| 免费AV资源在线观看| 一本大道东京热av无码| 亚洲无码123| 一区免费在线观看| 丝袜诱惑AV| 国产porn| 无码水蜜桃一区二区| 超碰91免费在线观看| 久久ww| 成人做爰A片免费看网站| 懂色av蜜臀av粉嫩av分| 欧美黄色激情视频网站| 日日爱爱| 91精品在线观看视频| 伊人免费视频在线观看| 日韩一级免费| 亚洲国产色情| 久久黄色精品视频| 成人视频黄片| 樱桃AV| 天天综合天天做天天综合| 97精品人妻一区二区| 人人操人人干人人| 丁香五月在线视频| 国内成人AV| 激情综合在线| 丰满人妻一区二区三区Av猛交| 亚洲视频一区二区| 亚洲人妻系列| 日本欧美一区二区三区| 日韩在线视频不卡| 黄色小电影在线观看| 婷婷色色网| 91精品久久久久久久久久久久 | 91免费国产视频| 男人天堂新地址| 成人黄网站在线观看| 美女av日逼| 俺也去av| 99无码人妻| 色哟哟视频| 一本久道综合| 伊人网大香蕉| 久久视频免费| 人人看人人搂人人摸| 激情婷婷丁香| 中文字幕1| 日韩午夜成人| 罗莉AV| 色悠悠国产| 中文字幕AV免费观看| 操逼国产| 国模精品无码一区二区免费蜜桃| 亚洲成人Av| 亚洲欧洲无码视频| 中文无码高清在线| 成人福利视频| 蜜桃Av噜噜一区二区| 欧美夜夜骑| 日韩欧美群交| 一级A片黃色A片| 天天搞天天曰在线观看| 日本爱爱网站| 亚洲成人AV在线播放| 欧美日韩一级毛| jizz免费观看| 国产在线在线| 亚洲天堂偷拍| 黄色亚洲视频| 无码中文字幕在线视频| 成人无码激情| 不卡无码av| 亚洲天堂一级片| 少妇搡BBBB搡BBBB毛多多| 久久99久久99精品免视看婷婷| 亚洲精品国产成人AV在线| 另类aV| 天天操天| 久一视频| 欧美熟妇搡BBBB搡BBBBB | 亚洲色鬼| 99r6热只有精品免费观看| 国产探花视频在线免费观看| 操操影视| 日本精品中文字幕| 二区三区免费| 欧美一级高清片免费一级a| 亚洲欧美熟妇久久久久久久久| 亚洲三级免费| 成人片在线| 天天夜夜操操| 一级a一级a免费观看免免黄‘/| 337P大胆粉嫩噜噜噜| 欧美无人区码suv| 国模精品无码一区二区免费蜜桃| 国产在线无码观看| 91porn在线观看| 热久久久久久| 国产人妻人伦精品一区| 69av视频| 中文字幕在线观看日韩| 国产精品欧美一区二区三区苍井空| 久久AV网站| 天天操天天干天天| 91精品酒店视频| 亚洲看片| 欧美A视频| 中文无码日韩欧美久久| 欧美人妻日韩精品| 人人操超碰在线观看| 91精品国产亚洲| 在线观看三级网址| 中文字幕第一页在线| 无码一区二区三区在线| 春宵福利导航| 老司机一区二区三区| 免费无码婬片AAAA片在线蜜芽| WWW亚洲视频| xxx久久| 欧美成人午夜无码A片秀色直播| 日韩无码播放| 免费黄片网站在线观看| 日本无码在线视频| 黄色a片视频| 国产精品视频色| 嫩BBB搡BBBB搡BBBB| 亚洲AⅤ欧美AⅤ| 亚洲高清无码免费| 国产黄色精品| 人妻无码电影推荐| 久久精品夜色噜噜亚洲A∨| 一级特黄妇女高潮AA片免费播放 | 日本黄色视频免费看| 伊人网视频在线| 日本精品在线视频| 国产免费高清视频| 日韩无码视频免费| 天天激情站| 欧美影院亚洲| 国产成人免费观看视频| а√在线中文网新版地址在线| 就去se超碰| 97综合| 五月婷婷在线视频| av在线一区二区| 精品探花| 手机在线看A片| 97AV视频| 国产精品一色哟哟哟| 骚色综合| 婷婷视频网| 亚洲成人无码片| 日日骚中文字幕| 香蕉操逼小视频| 伊人午夜| 亚洲精品黄色| 操操影视| 91超碰在线免费观看| 四虎黄色片| 超碰2025| 日韩成人视频在线| 精品乱子伦一区二区三区在线播放 | 无码一区精品久久久成人| 五月丁香六月| 超碰免费97| 蜜桃久久99精品久久久酒店| 99成人国产精品视频| 日韩色吧| 中文字幕国产av| 国精产品久拍自产在线网站| 蜜臀99久久精品久久久懂爱 | 国产在线成人视频| 就去色色五月丁香婷婷久久久 | 豆花视频在线| 成人三区| 性爱视频网址| 日韩人妻精品无码久久| 蜜臀一区二区三区| 边摸边操| 波多野结衣视频在线| 丰滿人妻一区二区三区| 日韩一区二区免费视频| 先锋影音资源网站| 午夜精东影业传媒在线观看| 三上悠亚无码破解69XXX| 成人AV三级片| 日本成人高清视频| 一二三久久| 无码欧美成人AAAA三区在线| 好吊妞视频在线| 国产av播放| 艹逼91| 四虎综合网| 精品91在线视频| 中文资源在线观看| 天天干天天日天天干天天日| 色老板综合| 三级无码高清| 999这里只有精品| av一区二区在线观看| 波多野吉衣av| 欧美不卡在线观看| 亚洲婷婷在线视频| 黄片网站免费在线观看| 成人小说亚洲一区二区三区| 伊人成人片| 欧美插菊花综合网| 日韩在线观看av| 亚洲精品国产精品国自产网站 | 91九色丨国产丨爆乳| 国产成人电影| 超碰199| 丝袜制服中文字幕无码专区 | 日韩无码第一页| 亚洲天堂在线观看视频| 91av视频| youjizzcom日本| 天天日很很操| 一级二级无码| 欧美亚洲三级片| 亚洲视频欧洲视频| 成人五月天黄色电影| 色色网站视频| 女人18片毛片60分钟翻译 | 久久久久亚洲AV成人片乱码| 男女抽插视频| 色九九视频| 99精品999| 国产无码AV| 老熟女伦一区二区三区| 成人在线三级片| 日韩不卡视频在线| 婷婷国产在线| 青青青国产| 亚洲欧洲成人在线| 亭亭五月丁香| 国产av中文字幕| 国产精品久久久久久久久久王安宇 | 亚洲精品成a人在线观看| 天天操天天干天天射| 日韩免费毛片| 亚洲中文字幕AV| 日韩欧美一级| 久草黄色电影在线观看| 久草黄色电影| 亚洲AAA电影| 日本大香蕉在线视频| 亚洲国产精品尤物yw在线观看| 国产无码自拍偷拍| 99精品视频网站| 亚洲欧洲日韩综合| 欧洲第一无人区观看| 人人艹人人| 肉乳无码A片av| 人人妻人人爽人人操| 99re视频在线| 亚洲成人自拍| 国产vA| 六月婷婷五月天| 噼里啪啦免费观看视频大全| 大香蕉色视频| 九一成人电影| 嫩BX区二区三区的区别| 日本一区二区三区免费观看| 蜜桃av秘无码一区二区三欧| 久久精品视频免费观看| 香蕉伊人网| 91人人操| 成人国产精品在线观看| 一级日韩一级欧美| 国产精品国产三级国产AⅤ| 色婷婷国产精品视频| 大香蕉色伊人| 成人久久网| 草草在线视频| 黑人无码视频| 国产一级黄片| 日本高清中文字幕| 制服.丝袜.亚洲.中文.豆花 | 牛牛免费视频| 欧美a在线观看| 99久久视频| 北条麻妃无码在线| 黄色片久久久| 开心五月色婷婷综合开心网| 波多野结衣视频免费在线观看 | 久草视频免费| 爽好紧别夹喷水无码| 色吧综合网| 国产特黄级AAAAA片免| 人人弄| 国产Av影视| 日韩欧美国产视频| 中文字幕在线观看免费高清电影| 蜜臀色欲AV无码人妻| 中文字幕免费视频在线播放| 亚洲av无码精品| 国产精品美女久久久久久久久| 成人日韩在线| 91久久综合| 怡红院男人的天堂| 五月天婷婷影院| 欧美成人网站视频| 一级a毛片| 国产视频999| 日韩性爱区| 黄色成人视频在线免费观看| 在线无码免费| 欧美综合网在线观看| 特级西西444www| 国产精品久久久久久久9999| 亚洲中文字幕不卡| aaa在线| 亚洲高清无码视频在线观看| 国精品无码人妻一区二区三区免费| 亚洲国产精品18久久久久久| 亚洲第一成人久久网站| 欧美在线无码| 亚洲网站视频| 国产77777| 思思热思思操免费视频| 91天天在线| 欧美日韩一区视频| 亚洲AV无码成人精品区大猫| 日韩一级网站| 久久国产黄色一级片| 成人一区二区电影| 亚洲成人电影无码| 成人短视频在线观看| 插综合网| 欧美日韩视频一区二区三区| 青青草视频免费在线观看| 久热国产在线| 亚洲国产黄色视频| 成人福利| 欧美成人看片| 免费看国产黄色| 91视频在| 亚洲无码视频网站| 亚洲AV无码乱码| 国产一级a毛一级a做免费的视频 | 久久精品电影| 色婷婷AV在线观看| 黄色内射视频| 91热在线| 超碰9| 亚洲av小电影| 在线男人天堂| 欧美性夜黄A片爽爽免费视频| 日韩第一页| 亚洲AV无码乱码AV| 日韩一级在线免费观看| 欧洲第一无人区观看| 亚洲夜夜撸| MAD033_后宫秘密陶子. | 四虎视频| 大鸡巴影院| 久久国色| 三级自拍| 东方成人AV| 特特级毛片| 91久久婷婷亚洲精品成人| 精品欧美视频| 黑人AV在线| AAA级片| 天天爆操| 日韩午夜福利| 99热综合| 成人中文字幕无码| 黄色片a片| 亚洲色情在线观看| 奇米成人片| 久操免费在线观看| 日本老熟妇| 免费一级a片| 手机在线成人视频| 激情国产AV| 成人h在线观看| 91熟女视频| 91大屁股| 精品孕妇一区二区三区| 大香蕉三级片| 色婷婷久久久久swag精品| 91原创国产内射| 国产三级午夜理伦三级| 亚洲视频区| 欧美怡红院视频| 日韩精品在线免费| 熟女人妻人妻の视频| 久艹久| 97国产精品久久| 久久综合中文| 欧美性交一区二区| 人人弄| 国产无码播放| 亚洲AV电影在线观看| 激情五月天亚洲| 超碰福利在线| 午夜天堂精品久久久久| 亚洲天堂在线观看视频网站| 一本无码中文字幕| 在线超碰| AA级黄色视频| 在线播放www| 亚洲无码自拍偷拍| 色吧视频| 久久艹伊人| 亚洲AV资源| 午夜操爽| 超碰牛牛| 五月天国产精品| 色丁香视频在线观看的| 新BBWBBWBBWBBW| 国产综合久久777777麻豆| 91中文字幕| 91大神网址| 亚洲精品国产成人综合久久久久久久久 | 中文字幕在线观看二区| 在线观看黄色电影| 在线亚洲日韩| 青青草在线免费视频| 国产在线成人| 爱爱视频无码| 亚洲丁香网| 自拍偷拍网站| 蜜乳av红桃嫩久久| 日韩欧美操逼视频| 天天干天天爽| 日韩高清无码免费观看| 你懂得在线观看| 青娱乐av| 青青草网址| 精品av| 草视频在线| 一级黄视频| 瑟瑟视频在线观看| 狠狠操夜夜操| 爱爱视频天天干| 无码一区二区三区四区五区| AV高清无码在线观看| 少妇高潮喷水| 亚洲福利视频电影精| 樱桃性爱视频| 91丨熟女丨首页| 日本无码视频在线观看毒| 久久久久久久久久成人永久免费视频| 国产高清不卡| 黄色视频在线观看大全| 群交无码| 国产特級黃色大片| 青青草黄色视频| 天堂亚洲| 中文字幕高清视频| 最新无码在线| 你懂的在线视频|