日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

阿里技术:基于Kafka+Flink+Redis的电商大屏实时计算案例

發布時間:2025/3/16 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里技术:基于Kafka+Flink+Redis的电商大屏实时计算案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:zhisheng

cloud.tencent.com/developer/article/1558372

阿里的雙11銷量大屏可以說是一道特殊的風景線。實時大屏(real-time dashboard)正在被越來越多的企業采用,用來及時呈現關鍵的數據指標。并且在實際操作中,肯定也不會僅僅計算一兩個維度。由于Flink的“真·流式計算”這一特點,它比Spark Streaming要更適合大屏應用。本文從筆者的實際工作經驗抽象出簡單的模型,并簡要敘述計算流程(當然大部分都是源碼)。

前言


數據格式與接入

簡化的子訂單消息體如下。

{"userId": 234567,"orderId": 2902306918400,"subOrderId": 2902306918401,"siteId": 10219,"siteName": "site_blabla","cityId": 101,"cityName": "北京市","warehouseId": 636,"merchandiseId": 187699,"price": 299,"quantity": 2,"orderStatus": 1,"isNewOrder": 0,"timestamp": 1572963672217 }

由于訂單可能會包含多種商品,故會被拆分成子訂單來表示,每條JSON消息表示一個子訂單。現在要按照自然日來統計以下指標,并以1秒的刷新頻率呈現在大屏上:

  • 每個站點(站點ID即siteId)的總訂單數、子訂單數、銷量與GMV;

  • 當前銷量排名前N的商品(商品ID即merchandiseId)與它們的銷量。

由于大屏的最大訴求是實時性,等待遲到數據顯然不太現實,因此我們采用處理時間作為時間特征,并以1分鐘的頻率做checkpointing。

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); env.setStreamTimeCharacteristic(TimeCharacteristic.ProcessingTime); env.enableCheckpointing(60 * 1000, CheckpointingMode.EXACTLY_ONCE); env.getCheckpointConfig().setCheckpointTimeout(30 * 1000);

然后訂閱Kafka的訂單消息作為數據源。

Properties consumerProps = ParameterUtil.getFromResourceFile("kafka.properties");DataStream<String> sourceStream = env.addSource(new FlinkKafkaConsumer011<>(ORDER_EXT_TOPIC_NAME, // topicnew SimpleStringSchema(), // deserializerconsumerProps // consumer properties)).setParallelism(PARTITION_COUNT).name("source_kafka_" + ORDER_EXT_TOPIC_NAME).uid("source_kafka_" + ORDER_EXT_TOPIC_NAME);

給帶狀態的算子設定算子ID(通過調用uid()方法)是個好習慣,能夠保證Flink應用從保存點重啟時能夠正確恢復狀態現場。為了盡量穩妥,Flink官方也建議為每個算子都顯式地設定ID,參考:https://ci.apache.org/projects/flink/flink-docs-stable/ops/state/savepoints.html#should-i-assign-ids-to-all-operators-in-my-job

接下來將JSON數據轉化為POJO,JSON框架采用FastJSON。

DataStream<SubOrderDetail> orderStream = sourceStream.map(message -> JSON.parseObject(message, SubOrderDetail.class)).name("map_sub_order_detail").uid("map_sub_order_detail");

JSON已經是預先處理好的標準化格式,所以POJO類SubOrderDetail的寫法可以通過Lombok極大地簡化。如果JSON的字段有不規范的,那么就需要手寫Getter和Setter,并用@JSONField注解來指明。

@Getter @Setter @NoArgsConstructor @AllArgsConstructor @ToString public class SubOrderDetail implements Serializable {private static final long serialVersionUID = 1L;private long userId;private long orderId;private long subOrderId;private long siteId;private String siteName;private long cityId;private String cityName;private long warehouseId;private long merchandiseId;private long price;private long quantity;private int orderStatus;private int isNewOrder;private long timestamp; }


統計站點指標

將子訂單流按站點ID分組,開1天的滾動窗口,并同時設定ContinuousProcessingTimeTrigger觸發器,以1秒周期觸發計算。注意處理時間的時區問題,這是老生常談了。

WindowedStream<SubOrderDetail, Tuple, TimeWindow> siteDayWindowStream = orderStream.keyBy("siteId").window(TumblingProcessingTimeWindows.of(Time.days(1), Time.hours(-8))).trigger(ContinuousProcessingTimeTrigger.of(Time.seconds(1)));

接下來寫個聚合函數。

DataStream<OrderAccumulator> siteAggStream = siteDayWindowStream.aggregate(new OrderAndGmvAggregateFunc()).name("aggregate_site_order_gmv").uid("aggregate_site_order_gmv"); public static final class OrderAndGmvAggregateFuncimplements AggregateFunction<SubOrderDetail, OrderAccumulator, OrderAccumulator> {private static final long serialVersionUID = 1L;@Overridepublic OrderAccumulator createAccumulator() {return new OrderAccumulator();}@Overridepublic OrderAccumulator add(SubOrderDetail record, OrderAccumulator acc) {if (acc.getSiteId() == 0) {acc.setSiteId(record.getSiteId());acc.setSiteName(record.getSiteName());}acc.addOrderId(record.getOrderId());acc.addSubOrderSum(1);acc.addQuantitySum(record.getQuantity());acc.addGmv(record.getPrice() * record.getQuantity());return acc;}@Overridepublic OrderAccumulator getResult(OrderAccumulator acc) {return acc;}@Overridepublic OrderAccumulator merge(OrderAccumulator acc1, OrderAccumulator acc2) {if (acc1.getSiteId() == 0) {acc1.setSiteId(acc2.getSiteId());acc1.setSiteName(acc2.getSiteName());}acc1.addOrderIds(acc2.getOrderIds());acc1.addSubOrderSum(acc2.getSubOrderSum());acc1.addQuantitySum(acc2.getQuantitySum());acc1.addGmv(acc2.getGmv());return acc1;}}

累加器類OrderAccumulator的實現很簡單,看源碼就大概知道它的結構了,因此不再多廢話。唯一需要注意的是訂單ID可能重復,所以需要用名為orderIds的HashSet來保存它。HashSet應付我們目前的數據規模還是沒太大問題的,如果是海量數據,就考慮換用HyperLogLog吧。

接下來就該輸出到Redis供呈現端查詢了。這里有個問題:一秒內有數據變化的站點并不多,而ContinuousProcessingTimeTrigger每次觸發都會輸出窗口里全部的聚合數據,這樣做了很多無用功,并且還會增大Redis的壓力。所以,我們在聚合結果后再接一個ProcessFunction,代碼如下。

DataStream<Tuple2<Long, String>> siteResultStream = siteAggStream.keyBy(0).process(new OutputOrderGmvProcessFunc(), TypeInformation.of(new TypeHint<Tuple2<Long, String>>() {})).name("process_site_gmv_changed").uid("process_site_gmv_changed"); public static final class OutputOrderGmvProcessFuncextends KeyedProcessFunction<Tuple, OrderAccumulator, Tuple2<Long, String>> {private static final long serialVersionUID = 1L;private MapState<Long, OrderAccumulator> state;@Overridepublic void open(Configuration parameters) throws Exception {super.open(parameters);state = this.getRuntimeContext().getMapState(new MapStateDescriptor<>("state_site_order_gmv",Long.class,OrderAccumulator.class));}@Overridepublic void processElement(OrderAccumulator value, Context ctx, Collector<Tuple2<Long, String>> out) throws Exception {long key = value.getSiteId();OrderAccumulator cachedValue = state.get(key);if (cachedValue == null || value.getSubOrderSum() != cachedValue.getSubOrderSum()) {JSONObject result = new JSONObject();result.put("site_id", value.getSiteId());result.put("site_name", value.getSiteName());result.put("quantity", value.getQuantitySum());result.put("orderCount", value.getOrderIds().size());result.put("subOrderCount", value.getSubOrderSum());result.put("gmv", value.getGmv());out.collect(new Tuple2<>(key, result.toJSONString());state.put(key, value);}}@Overridepublic void close() throws Exception {state.clear();super.close();}}

說來也簡單,就是用一個MapState狀態緩存當前所有站點的聚合數據。由于數據源是以子訂單為單位的,因此如果站點ID在MapState中沒有緩存,或者緩存的子訂單數與當前子訂單數不一致,表示結果有更新,這樣的數據才允許輸出。

最后就可以安心地接上Redis Sink了,結果會被存進一個Hash結構里。

// 看官請自己構造合適的FlinkJedisPoolConfigFlinkJedisPoolConfig jedisPoolConfig = ParameterUtil.getFlinkJedisPoolConfig(false, true);siteResultStream.addSink(new RedisSink<>(jedisPoolConfig, new GmvRedisMapper())).name("sink_redis_site_gmv").uid("sink_redis_site_gmv").setParallelism(1); public static final class GmvRedisMapper implements RedisMapper<Tuple2<Long, String>> {private static final long serialVersionUID = 1L;private static final String HASH_NAME_PREFIX = "RT:DASHBOARD:GMV:";@Overridepublic RedisCommandDescription getCommandDescription() {return new RedisCommandDescription(RedisCommand.HSET, HASH_NAME_PREFIX);}@Overridepublic String getKeyFromData(Tuple2<Long, String> data) {return String.valueOf(data.f0);}@Overridepublic String getValueFromData(Tuple2<Long, String> data) {return data.f1;}@Overridepublic Optional<String> getAdditionalKey(Tuple2<Long, String> data) {return Optional.of(HASH_NAME_PREFIX +new LocalDateTime(System.currentTimeMillis()).toString(Consts.TIME_DAY_FORMAT) +"SITES");}}


商品Top N

我們可以直接復用前面產生的orderStream,玩法與上面的GMV統計大同小異。這里用1秒滾動窗口就可以了。

WindowedStream<SubOrderDetail, Tuple, TimeWindow> merchandiseWindowStream = orderStream.keyBy("merchandiseId").window(TumblingProcessingTimeWindows.of(Time.seconds(1)));DataStream<Tuple2<Long, Long>> merchandiseRankStream = merchandiseWindowStream.aggregate(new MerchandiseSalesAggregateFunc(), new MerchandiseSalesWindowFunc()).name("aggregate_merch_sales").uid("aggregate_merch_sales").returns(TypeInformation.of(new TypeHint<Tuple2<Long, Long>>() { }));

聚合函數與窗口函數的實現更加簡單了,最終返回的是商品ID與商品銷量的二元組。

public static final class MerchandiseSalesAggregateFuncimplements AggregateFunction<SubOrderDetail, Long, Long> {private static final long serialVersionUID = 1L;@Overridepublic Long createAccumulator() {return 0L;}@Overridepublic Long add(SubOrderDetail value, Long acc) {return acc + value.getQuantity();}@Overridepublic Long getResult(Long acc) {return acc;}@Overridepublic Long merge(Long acc1, Long acc2) {return acc1 + acc2;}}public static final class MerchandiseSalesWindowFuncimplements WindowFunction<Long, Tuple2<Long, Long>, Tuple, TimeWindow> {private static final long serialVersionUID = 1L;@Overridepublic void apply(Tuple key,TimeWindow window,Iterable<Long> accs,Collector<Tuple2<Long, Long>> out) throws Exception {long merchId = ((Tuple1<Long>) key).f0;long acc = accs.iterator().next();out.collect(new Tuple2<>(merchId, acc));}}

既然數據最終都要落到Redis,那么我們完全沒必要在Flink端做Top N的統計,直接利用Redis的有序集合(zset)就行了,商品ID作為field,銷量作為分數值,簡單方便。不過flink-redis-connector項目中默認沒有提供ZINCRBY命令的實現(必須再吐槽一次),我們可以自己加,步驟參照之前寫過的那篇加SETEX的命令的文章,不再贅述。RedisMapper的寫法如下。

public static final class RankingRedisMapper implements RedisMapper<Tuple2<Long, Long>> {private static final long serialVersionUID = 1L;private static final String ZSET_NAME_PREFIX = "RT:DASHBOARD:RANKING:";@Overridepublic RedisCommandDescription getCommandDescription() {return new RedisCommandDescription(RedisCommand.ZINCRBY, ZSET_NAME_PREFIX);}@Overridepublic String getKeyFromData(Tuple2<Long, Long> data) {return String.valueOf(data.f0);}@Overridepublic String getValueFromData(Tuple2<Long, Long> data) {return String.valueOf(data.f1);}@Overridepublic Optional<String> getAdditionalKey(Tuple2<Long, Long> data) {return Optional.of(ZSET_NAME_PREFIX +new LocalDateTime(System.currentTimeMillis()).toString(Consts.TIME_DAY_FORMAT) + ":" +"MERCHANDISE");}}

后端取數時,用ZREVRANGE命令即可取出指定排名的數據了。只要數據規模不是大到難以接受,并且有現成的Redis,這個方案完全可以作為各類Top N需求的通用實現。


The End

大屏的實際呈現需要保密,截圖自然是沒有的。以下是提交執行時Flink Web UI給出的執行計劃(實際有更多的統計任務,不止3個Sink)。通過復用源數據,可以在同一個Flink job內實現更多統計需求。

END

? ? ? ?? #關注架構師的點點滴滴#精彩推薦1.?一文讓你搞懂分布式事務2.?“網紅” WebAssembly 與 K8s 如何實現雙劍合璧?3.?FBI WARNING:架構師不能碰的禁忌 4.Java后端架構之微服務雜談5.?一個全世界最大成人網站的爬蟲 6. 漫畫:互聯網公司黑話防騙指北7.?囚犯學會編程之后會發生什么?8.?山哥面試心經:想進入BAT WSJ其實很簡單

總結

以上是生活随笔為你收集整理的阿里技术:基于Kafka+Flink+Redis的电商大屏实时计算案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久手机免费观看 | 91视频大全 | 国产中文在线播放 | 国产成人免费高清 | 美女福利视频网 | 久久国产精品久久久 | 亚洲日本va午夜在线电影 | 久久电影色 | 黄a在线看 | 国产xxxxx在线观看 | 国产中文a | 精品久久久久久亚洲 | 国产视频久久久久 | 韩日精品中文字幕 | 国产精品一区免费看8c0m | 久久99国产综合精品免费 | 日日干天天爽 | 成人免费色 | 国产视频999| 日韩av在线网站 | 91久久黄色 | 97av视频在线观看 | 国产资源在线播放 | 手机色在线 | 国产成人精品综合久久久 | 日韩精品一区不卡 | 亚洲视频网站在线观看 | 午夜神马福利 | 麻豆一精品传二传媒短视频 | 日韩网站在线看片你懂的 | 在线黄色av | 亚洲成人家庭影院 | 91麻豆传媒 | 久久精品在线 | 美女很黄免费网站 | 国产毛片在线 | 网站在线观看日韩 | 狠狠狠综合 | 日韩资源在线观看 | 最近免费中文视频 | 日日噜噜噜噜夜夜爽亚洲精品 | 中文字幕视频观看 | 欧美最猛性xxxxx免费 | 中文字幕日韩国产 | 黄色网中文字幕 | 久久日本视频 | 超碰av在线 | 亚洲丝袜中文 | 久久精品国产v日韩v亚洲 | 日本不卡一区二区三区在线观看 | 香蕉久久国产 | 天天综合导航 | 国产精品成人一区二区三区 | 中文字幕乱码日本亚洲一区二区 | 99精品在线 | 免费亚洲黄色 | 精品少妇一区二区三区在线 | www.啪啪.com | 久久国内精品视频 | 6080yy午夜一二三区久久 | 日韩视频免费在线观看 | 1024手机基地在线观看 | 天天色天天射综合网 | 国产午夜三级一二三区 | 久草在线精品观看 | 国产手机视频精品 | 成人97人人超碰人人99 | 亚洲最新合集 | 免费观看全黄做爰大片国产 | 日本最新中文字幕 | 久久麻豆视频 | 日韩在线小视频 | 丁香婷婷综合激情五月色 | 99免费在线视频 | 国产乱码精品一区二区三区介绍 | 爱色av.com| 色视频网页 | 91成人精品一区在线播放69 | 亚洲香蕉在线观看 | 国内精品美女在线观看 | 亚洲精品日韩一区二区电影 | 国产精品一区在线 | 中文字幕韩在线第一页 | 日韩精品在线观看视频 | 97综合网| 免费a网站| 日韩久久久久久 | 国产午夜一级毛片 | 欧美一进一出抽搐大尺度视频 | 69av在线视频 | 成年人黄色av| a视频在线播放 | 色91在线 | 国产精品一区欧美 | 久久精品123 | 国产va在线 | 色综合久久中文字幕综合网 | 久久视频国产精品免费视频在线 | 久久韩国免费视频 | 欧美日韩视频 | 在线视频一区二区 | 超碰.com| 中文国产成人精品久久一 | 亚洲日韩中文字幕在线播放 | 日韩在线视频不卡 | 国产精品黄色影片导航在线观看 | 日韩啪视频 | 欧美久久久久久久久久久 | 日b视频在线观看网址 | 国产一及片 | av丝袜在线 | 日韩午夜高清 | 婷婷丁香花五月天 | 97精品欧美91久久久久久 | 五月婷婷综合久久 | 九九热在线精品视频 | 91热这里只有精品 | 98涩涩国产露脸精品国产网 | 欧美激情视频在线免费观看 | 免费瑟瑟网站 | 国产视频欧美视频 | 精品在线观看一区二区三区 | 波多野结衣一区 | 久久久久久久久毛片 | 国产中文字幕亚洲 | 激情久久网 | 日韩高清不卡一区二区三区 | 日韩在线免费高清视频 | 伊人夜夜| 亚洲国产影院 | www免费视频com| 在线免费视频你懂的 | 中文国产字幕在线观看 | 一级黄色片在线免费观看 | 欧美精品久久 | 欧美最爽乱淫视频播放 | 久久99久久99精品 | 日韩精品2区 | 2024国产精品视频 | 黄色一级网 | 欧美午夜视频在线 | 久久免费电影网 | 久久在线视频精品 | 精品视频在线播放 | www.日日操.com| 91福利视频在线 | 国产精品久久一卡二卡 | 色小说av | 国产精品久久免费看 | 免费v片 | 国产一级精品视频 | 超碰最新网址 | 一级国产视频 | 国产精品婷婷午夜在线观看 | 国产视频精选 | 婷婷综合五月天 | 久久久www成人免费精品 | 五月开心婷婷网 | 99国产精品视频免费观看一公开 | 欧美日韩视频 | 国内视频一区二区 | 最新av网址在线 | 色婷在线 | 在线亚洲欧美日韩 | 欧美九九视频 | 日av免费 | 久久精品123 | 久久国产经典 | 国产在线观看你懂得 | 久久亚洲免费 | 99视频在线免费播放 | 日批视频国产 | 永久中文字幕 | 久久精品最新 | 久久热亚洲 | 粉嫩av一区二区三区四区在线观看 | 久久午夜免费视频 | 色欧美88888久久久久久影院 | 91人人射 | 欧美精品一区二区在线观看 | 最新日韩视频在线观看 | 欧美日韩在线播放 | 色在线免费视频 | av丁香花 | 免费观看国产视频 | 国产精品久久久区三区天天噜 | 中文字幕成人 | 在线午夜av | 狠狠躁日日躁狂躁夜夜躁 | 在线激情网 | 天天爽人人爽夜夜爽 | 人人草天天草 | 一本一道久久a久久综合蜜桃 | av高清在线观看 | 天天操操操操操 | 深夜免费福利网站 | 日韩电影一区二区在线观看 | 不卡av电影在线观看 | 久久中文字幕在线视频 | 国产又粗又猛又黄 | 国产中文在线观看 | 日韩视频免费播放 | 91伊人久久大香线蕉蜜芽人口 | 人交video另类hd | 五月婷婷综合激情网 | 91日韩在线视频 | 日日干天天爽 | 婷婷六月天丁香 | 国产午夜亚洲精品 | 欧美精品久久久久久久久久久 | 日韩精品不卡在线观看 | 免费在线观看av不卡 | 久久电影国产免费久久电影 | 欧美性护士 | 国产精品一区二区在线观看免费 | 久久久久久蜜av免费网站 | 日韩欧美精选 | 成人少妇影院yyyy | 最近中文字幕完整视频高清1 | 91九色视频在线播放 | 2023亚洲精品国偷拍自产在线 | www.久久久.com | 亚洲免费不卡 | www.色婷婷 | 日韩一二三区不卡 | 欧美日韩中| 国产a精品 | 97视频在线观看视频免费视频 | 一级黄色大片在线观看 | 精品国内自产拍在线观看视频 | 色多多污污 | 国产视频一区精品 | 欧美国产日韩一区 | 婷婷丁香激情综合 | 91黄视频在线观看 | 久久免费精彩视频 | 91伊人影院 | 国产打女人屁股调教97 | 麻豆国产露脸在线观看 | 亚洲一级免费电影 | 日韩综合第一页 | 久久久久久福利 | 在线高清| av片在线观看 | 亚洲黄色三级 | 精品国产一区二区三区av性色 | 国产视频不卡 | 91麻豆精品国产91 | 丁香六月婷婷综合 | 99久久久久久国产精品 | 成年人黄色在线观看 | 五月av在线| 国产欧美久久久精品影院 | 国产一级视频在线观看 | 亚洲综合情| 精品久久久一区二区 | 亚洲伊人天堂 | 亚洲人成影院在线 | 天天插日日射 | 九热在线| 国产99久久久精品 | 狠狠躁夜夜躁人人爽视频 | 91麻豆国产福利在线观看 | 日韩免费三级 | 亚洲伦理电影在线 | 国产精品久久久久久久久久久久午夜 | 97人人澡人人爽人人模亚洲 | 中文字幕一区二区三区在线播放 | 亚洲欧美乱综合图片区小说区 | 亚洲国产成人在线 | 日日夜精品 | 黄色片视频免费 | 亚洲成人黄色在线 | 在线观看中文字幕网站 | 亚洲午夜精品久久久久久久久 | 日本性xxx| 嫩草av在线 | 四虎永久免费网站 | www.夜夜操.com | 97夜夜澡人人爽人人免费 | 在线亚州| av网在线观看 | 丁香网婷婷 | 91精品视频观看 | 特级西西444www大精品视频免费看 | 大胆欧美gogo免费视频一二区 | 香蕉视频日本 | 久久99久久99精品免观看软件 | 亚洲91在线 | 激情网在线观看 | 99视频这里只有 | 国产乱对白刺激视频在线观看女王 | 久久免费的精品国产v∧ | 久草在线中文888 | 国产精品亚洲片在线播放 | 日韩在线色| 亚洲在线视频免费 | 午夜狠狠操 | 亚洲精品99久久久久中文字幕 | 国产大片黄色 | 在线观看黄a | 国产精品久久久久三级 | 在线 影视 一区 | 欧美 激情 国产 91 在线 | 伊人久久国产 | 黄色一级网 | 国产精品二区三区 | 久久精品www人人爽人人 | 国产在线国偷精品产拍 | 91丨九色丨国产女 | 欧美日韩在线免费观看 | 亚洲视频免费在线观看 | 久久高清视频免费 | 免费a级黄色毛片 | 超碰人人av| 一区二区三区久久精品 | 亚洲成人家庭影院 | www看片网站| 免费成人黄色av | 日韩在线观看网址 | 92精品国产成人观看免费 | 天天射天天操天天色 | 欧美精品在线视频 | 日日夜夜精品视频 | 色人久久 | 亚洲区另类春色综合小说 | 精品国产免费久久 | 四虎成人精品永久免费av | 欧美福利在线播放 | 婷婷六月中文字幕 | 亚洲狠狠丁香婷婷综合久久久 | 久久综合99| 欧美日韩精品在线观看 | 综合色狠狠 | 91三级在线观看 | 日韩美女高潮 | 国产成人精品一区二 | 五月激情天 | 日韩久久久久久久久 | 亚洲精品视频在线免费播放 | 欧美福利视频一区 | 久久艹艹| 伊人黄 | 日韩激情小视频 | 欧美性黄网官网 | 国产精品麻豆91 | 奇米影视777影音先锋 | 麻花传媒mv免费观看 | 国产亚洲精品久久久久久电影 | 色综合色综合色综合 | 久久国产亚洲精品 | 黄污污网站 | 天天干天天上 | 亚洲精品在线播放视频 | 色综合亚洲精品激情狠狠 | 狠狠久久伊人 | 色婷婷视频在线观看 | 91麻豆免费版 | 欧美亚洲专区 | 国模一区二区三区四区 | 狠狠干五月天 | 国产精品久久久久久久久久久久 | 婷婷国产v亚洲v欧美久久 | 欧美视频一区二 | 五月网婷婷 | 91福利在线观看 | 性色视频在线 | 九九在线高清精品视频 | 五月婷婷激情六月 | 人人澡超碰碰97碰碰碰软件 | 丁香婷婷在线 | 91视频国产高清 | 国产精品久久久一区二区 | 美女激情影院 | 美女视频a美女大全免费下载蜜臀 | 日韩中出在线 | 久久试看| 国产成人精品一区二区三区 | 国产色婷婷精品综合在线手机播放 | 九九九九九九精品任你躁 | 成人精品国产免费网站 | 黄色动态图xx | 99tvdz@gmail.com| 91亚色免费视频 | 日韩欧美在线影院 | av软件在线观看 | 一级黄色片在线免费看 | 99视频在线免费观看 | 在线免费观看国产视频 | 欧美一级片免费 | 激情深爱.com| 99国产成+人+综合+亚洲 欧美 | 色偷偷人人澡久久超碰69 | 在线电影a| 午夜久久久久久久 | 91在线精品秘密一区二区 | 在线播放 日韩专区 | japanese黑人亚洲人4k | 日韩色在线观看 | 99精品在线免费在线观看 | 中文国产字幕 | 成人黄色av免费在线观看 | av播放在线| 麻豆久久精品 | 香蕉视频最新网址 | a在线观看免费视频 | 伊人婷婷激情 | 欧美日韩性视频在线 | 99中文在线| 深夜免费福利 | 欧美三级高清 | 国产成在线观看免费视频 | 亚洲网站在线看 | 精品一二区 | 狠狠色婷婷丁香六月 | 精品国产乱码一区二区三区在线 | 一性一交视频 | 婷婷久久五月天 | h视频在线看 | 婷婷av在线 | 免费国产亚洲视频 | 欧美日韩精品在线播放 | 久久艹在线观看 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 欧美日韩国产一区二区三区 | 免费av网址大全 | 97视频在线免费 | 国产小视频免费在线网址 | 丁香婷婷激情网 | av线上看| 69国产盗摄一区二区三区五区 | 亚洲2019精品 | av一级在线观看 | 国产精品久久久久久久午夜片 | 久99精品| 欧美一级日韩免费不卡 | 久久久久麻豆 | 国产中文欧美日韩在线 | 国产精品一区二区三区四区在线观看 | 亚洲黄色av网址 | 亚洲永久国产精品 | 国产精品一区二区白浆 | 亚洲免费精品一区二区 | 深爱婷婷久久综合 | 国产99久久九九精品免费 | av免费电影在线观看 | 国产麻豆剧传媒免费观看 | 精品久久久久久久久久久久 | 麻豆久久久久久久 | 久久久久免费看 | 首页国产精品 | 亚洲国产精品激情在线观看 | av免费线看| 天天操天天操天天操天天操天天操天天操 | 人人添人人澡人人澡人人人爽 | 中文字幕色网站 | 欧美日韩免费视频 | 少妇自拍av | 九九热.com | 国产一级在线免费观看 | 久久久免费视频播放 | 久久国产精品久久久 | 日韩高清二区 | 亚洲欧洲一区二区在线观看 | 久久精品1区 | 亚洲一区二区麻豆 | 欧美一级性生活视频 | 久久久久久久久久毛片 | 午夜在线观看 | 91黄色免费看 | 99精品久久久久久久久久综合 | 欧美aa一级 | 亚洲精品xx | 91综合视频在线观看 | 三上悠亚一区二区在线观看 | 毛片1000部免费看 | 久久这里只有精品久久 | 五月天中文字幕 | 欧美精品久久久久久久 | 精品久久久久久综合日本 | 久久免费视频在线观看30 | 国产日产精品一区二区三区四区的观看方式 | 国产生活一级片 | 成人av资源 | 色视频在线看 | 日韩精品电影在线播放 | 99视频偷窥在线精品国自产拍 | 精品自拍网 | 久久久久久久久久久电影 | 五月天色中色 | 欧美一级片在线播放 | 国产精品乱码高清在线看 | 欧美高清成人 | 欧美成人精品欧美一级乱 | 免费国产视频 | 六月丁香社区 | 欧美va天堂在线电影 | 日韩成人中文字幕 | 成人小视频在线观看免费 | 免费观看一级视频 | 91精品视频免费看 | 超碰在线97国产 | 91精品国产福利在线观看 | a v在线观看 | av成人在线看 | 日韩视频免费在线观看 | 四虎影视成人精品国库在线观看 | 久青草视频 | 色偷偷中文字幕 | 精品久久久久久久久久久久久久久久久久 | 在线观看香蕉视频 | 成人黄色电影在线播放 | 欧美激情视频三区 | 又黄又爽又刺激视频 | 91在线观看视频 | 国产999精品视频 | 欧美性超爽 | 久久理论影院 | 久久综合久久综合这里只有精品 | 欧美二区在线播放 | 91丨九色丨91啦蝌蚪老版 | 久久午夜剧场 | 亚洲专区欧美专区 | 国产精品久久久久影视 | 五月天久久综合网 | 黄色网免费 | 这里只有精彩视频 | 国产精品久久网 | 91麻豆精品| 国产视频综合在线 | 成人av亚洲| 久久综合九色综合97_ 久久久 | 国产成人av免费在线观看 | 国产高清日韩欧美 | 国产日韩亚洲 | 色视频国产直接看 | 日本精品午夜 | 免费观看性生活大片3 | 亚洲做受高潮欧美裸体 | 中文字幕 影院 | 国产精品免费观看国产网曝瓜 | 麻花豆传媒mv在线观看网站 | 久久久久国产精品午夜一区 | 国产一区二区精 | 一区二区激情视频 | 精品一区二区久久久久久久网站 | 国产免费片 | 免费视频区 | 日韩欧美一区二区三区在线 | 色wwwww| 91大片网站 | 欧美日韩免费在线观看视频 | 日韩视频一区二区 | 成人黄色短片 | 99热这里有精品 | 中文字幕成人在线观看 | 欧美最猛性xxxxx免费 | 欧美日韩免费在线观看视频 | 欧美99精品 | 国产一级视频 | 久草五月| 美女国产 | 激情av一区二区 | 国产精品精品国产婷婷这里av | 亚洲人视频在线 | 啪啪资源 | 成人手机在线视频 | 97福利视频 | 中文字幕乱偷在线 | 最新免费av在线 | 在线免费看片 | 天天综合网天天 | 17婷婷久久www | 国产一区二区三精品久久久无广告 | 色91在线| 国产高清免费观看 | 91探花国产综合在线精品 | 亚洲国产精品久久 | 亚洲精品国产精品99久久 | 中文字幕高清在线 | 一区中文字幕在线观看 | 精品久久久久久久久久久院品网 | 91禁在线看 | 五月天综合在线 | 91精品国产综合久久婷婷香蕉 | 夜色成人av | 中文在线 | 婷婷5月色 | 中文在线8新资源库 | 精品免费在线视频 | 91香蕉视频720p | 色99之美女主播在线视频 | 成人精品99| 狠狠操狠狠干天天操 | 日韩在线一区二区免费 | 免费看片在线观看 | 国产麻豆精品一区二区 | 免费福利在线 | 18久久久 | 天天躁日日躁狠狠躁 | 中文字幕av在线电影 | 中文av字幕在线观看 | 久久av网址 | 国产精品一区二区在线看 | 99久久99视频 | 国产欧美日韩精品一区二区免费 | 亚洲视频免费在线看 | 成人全视频免费观看在线看 | 丰满少妇在线 | 亚洲精品免费观看 | 麻花天美星空视频 | 天天天天天天操 | 久久国产精品99久久人人澡 | 国产成人一区在线 | 久久国产精品免费观看 | 天天射天天爱天天干 | 国产成人综合图片 | 亚洲五月激情 | 天天干天天爽 | 欧美久久久影院 | 国产91精品一区二区绿帽 | 五月婷婷国产 | 国产成人99av超碰超爽 | www.久久成人 | 91精品久 | 亚州av成人 | 黄色一级免费 | 久久国产精品免费 | 韩国在线视频一区 | 狠狠操狠狠干天天操 | 在线观看91av | 天天艹天天 | 免费网站在线观看成人 | 精品视频免费观看 | 91手机视频在线 | 久久激情五月婷婷 | 中文字幕一区二区三区在线视频 | 国产一区免费视频 | 久久黄色小说 | 午夜三级大片 | 天天干夜夜夜操天 | 国产免费久久 | 中文字幕 成人 | 亚洲精品美女久久久久 | 九九久久免费 | 免费黄色网址大全 | 久久国产精品免费看 | 亚洲自拍偷拍色图 | 国产亚洲综合性久久久影院 | 亚洲国产成人精品在线 | 久久久国产高清 | 色99在线 | 国产精品9999久久久久仙踪林 | 69国产成人综合久久精品欧美 | 精品国产精品久久 | 在线观看一区 | 欧美成人视 | 国产高清在线精品 | 成人蜜桃 | 91精品久久久久久久91蜜桃 | 日本黄网站 | 国产精品久久久久一区二区三区共 | 中文字幕在线不卡国产视频 | 成人黄色毛片视频 | 日韩一区二区免费在线观看 | 亚洲精选在线 | 国产不卡一 | 欧美激情精品久久久久久免费印度 | 欧美中文字幕第一页 | 亚洲精品97 | 成人免费在线电影 | 亚洲在线成人精品 | 综合久久精品 | 黄色软件大全网站 | 久久免费视频在线观看30 | 午夜视频在线观看一区二区三区 | 99中文字幕在线观看 | 国产精品久久久久久久久费观看 | 欧美一区二区三区在线看 | 国产在线观看国语版免费 | 97在线视 | 亚洲综合涩 | 久久久久久久影院 | 天天插天天操天天干 | 91中文在线视频 | 在线视频 影院 | 在线视频 精品 | 亚洲精品视频在线免费 | 欧美日韩亚洲一 | 久久免费99精品久久久久久 | 99中文字幕视频 | 久久人人97超碰com | 九九免费在线视频 | 久久婷婷一区二区三区 | 精品在线看| 国产区久久 | 国产精品国产三级国产aⅴ无密码 | 国产不卡一区二区视频 | 亚洲精品乱码久久久久久写真 | 丝袜美腿在线播放 | 在线观看成人一级片 | 成人午夜影院在线观看 | 久久久久97国产 | 黄色av成人在线观看 | 91麻豆精品国产91久久久无需广告 | www.五月婷婷 | 国偷自产中文字幕亚洲手机在线 | www五月天com| 在线国产福利 | 91麻豆精品国产自产 | 最新色视频 | 久久久久久97三级 | 7777精品伊人久久久大香线蕉 | 天天操综 | 天天天插| 国产视频2区 | 国产流白浆高潮在线观看 | 999视频在线播放 | av韩国在线 | 久久久久伊人 | 97超级碰碰 | 欧美日韩三级在线观看 | 青草草在线视频 | 美女国产网站 | 日韩国产欧美在线视频 | 亚洲国产美女精品久久久久∴ | 中文视频在线看 | 日韩在线视频一区二区三区 | 天天射天天操天天干 | 国产在线不卡 | 亚洲成成品网站 | 国产91在线观看 | 九九在线免费视频 | 最近中文字幕免费大全 | 欧美成人理伦片 | 久久久精品国产一区二区电影四季 | 日韩在线播放视频 | 开心色插 | 成人在线观看资源 | 天天干天天弄 | 91成熟丰满女人少妇 | 国产精品18久久久久久久网站 | 国产一级免费观看 | 欧美日韩性 | 欧美国产大片 | 99视频精品视频高清免费 | 天天综合操 | 色亚洲网 | 欧美一级性生活片 | 91tv国产成人福利 | 毛片在线网 | 综合在线观看色 | 国产99久久久国产精品免费二区 | 色婷婷av一区二 | 黄色在线网站噜噜噜 | 国产黑丝一区二区三区 | 青青草国产成人99久久 | 国产亚洲情侣一区二区无 | 午夜av剧场 | 色综合久久综合网 | 亚洲精品九九 | 亚州国产精品 | 亚洲午夜av久久乱码 | 国内精品久久久久久久久久久久 | 在线天堂中文www视软件 | 中文字幕日韩有码 | 色婷婷狠 | 国产xxxxx在线观看 | 精品国产精品久久 | 国产精品久久久久久久久久久久午夜片 | 一区二区视频在线观看免费 | 日韩免费av网址 | av一级片网站 | 不卡视频国产 | 99一区二区三区 | 人人爽人人乐 | av在线8| 精品一区二区在线观看 | 久久99久久99精品 | 九色琪琪久久综合网天天 | 久久99精品热在线观看 | 久久精品国产精品亚洲精品 | 成人理论电影 | 日本激情动作片免费看 | 黄色一级免费网站 | 人人干在线观看 | 国产精品免费久久久 | 国产精品美女久久久久久久 | 日本婷婷色 | 四虎永久网站 | 天天鲁一鲁摸一摸爽一爽 | 日韩理论电影在线观看 | 欧美另类xxxxx | 亚洲国产无| 日韩精品久久久久久久电影99爱 | 国产一区二区高清不卡 | 亚洲涩涩涩涩涩涩 | 亚洲电影成人 | 综合在线亚洲 | 九九天堂| 亚洲精品色视频 | 在线观看亚洲免费视频 | 久久视了 | 狠狠躁日日躁狂躁夜夜躁 | 亚洲动漫在线观看 | 精品麻豆 | 国产精品久久久久久爽爽爽 | 伊人狠狠 | 国产精品精品久久久 | wwwwww黄| 日韩免费电影一区二区 | 日韩久久精品一区二区三区 | 成人a毛片 | 成人小视频在线播放 | 日韩电影一区二区三区在线观看 | 中文字幕人成乱码在线观看 | 综合国产在线观看 | 国产精品久久久一区二区 | 亚洲精品免费播放 | 色视频网站免费观看 | 久久久综合九色合综国产精品 | 成人免费在线观看入口 | a v在线视频 | 欧美综合久久 | 成人午夜精品久久久久久久3d | 久久久久久久久久福利 | 在线观看中文字幕av | 丁香六月婷婷激情 | 最新影院 | 国产亚洲va综合人人澡精品 | 日日射av | 久久黄色免费 | 国产一级电影免费观看 | 成人午夜电影免费在线观看 | 国产精品成人在线观看 | 午夜狠狠操 | 色婷婷六月 | 欧美精品一级视频 | 成人午夜影院 | 91av欧美 | 五月婷婷色播 | 91视频a | 不卡国产视频 | 在线看成人| 少妇精品久久久一区二区免费 | 精品嫩模福利一区二区蜜臀 | 国产一级视屏 | 久久高清片 | 成人在线观看日韩 | 丁香六月av| 天天综合五月天 | 欧美日bb| 中文字幕中文字幕在线中文字幕三区 | 五月开心色 | 成人av免费网站 | 区一区二区三在线观看 | 91av电影在线观看 | 色九九在线 | 99精品国产99久久久久久97 | 亚洲高清91| 毛片网站在线 | 日日爽天天爽 | 国产剧情一区二区 | 成人中文字幕av | 久草视频精品 | 欧美婷婷综合 | 欧美日韩18| 久久久久久久电影 | 国产色影院| a天堂在线看 | 国产91免费在线观看 | 久久久免费精品 | 男女全黄一级一级高潮免费看 | 开心综合网| 在线日韩亚洲 | 欧美日韩高清一区二区三区 | 一级免费av | 狠狠黄 | 国产精品免费久久久久久久久久中文 | 日韩极品视频在线观看 | avv天堂| 亚洲人成人在线 | 久久久免费电影 | 夜色资源站wwwcom | 日韩精品在线观看av | 9幺看片 | 白丝av免费观看 | 欧美在线观看视频一区二区 | 亚洲国产成人在线 | 久久婷婷精品视频 | 成 人 a v天堂 | 亚洲最新av| 97在线观看视频免费 | 涩涩伊人 | 亚洲一区精品二人人爽久久 | 91视频网址入口 | 亚洲婷婷伊人 | 亚洲精品在线观看的 | 99精品视频在线 | 久久婷婷色综合 | 天天操天天干天天操天天干 | 久草在线视频在线 | 日韩精品一区二区三区视频播放 | 又黄又爽又无遮挡免费的网站 | 麻豆视频免费在线播放 | 国产剧情av在线播放 | 中文字幕久久亚洲 | 一级黄毛片 | 在线影视 一区 二区 三区 | 欧美在线一 | 国产精品久久久久av福利动漫 | 色www.| 成人午夜黄色影院 | 久久久视频在线 | 免费看短 | 黄色网www | 操操操综合 | 一区二区成人国产精品 | 欧美精品久久久久久久免费 | 五月婷婷六月综合 | 亚洲国产中文在线观看 | 色综合网在线 | 国产99久久久欧美黑人 | 亚洲资源在线网 | 大型av综合网站 | 国产福利电影网址 | 婷婷色资源 | 久久精品99精品国产香蕉 | 久草亚洲视频 | 在线观看一 | 久久黄色免费观看 | 精品在线99 | 在线看一级片 | 国产精品久久久999 国产91九色视频 | 在线看毛片网站 | 色资源在线 | 激情在线网址 | 国产麻豆视频 | 黄色免费网战 | 99免费在线观看 | 97久久久免费福利网址 | 91爱爱中文字幕 | 在线视频 精品 | 久久99国产精品自在自在app | 国语麻豆 | 久久综合五月 | 色婷婷狠狠干 | 丰满少妇对白在线偷拍 | 日韩色综合网 | 午夜久久久久 | 久久国产精品一二三区 | 青青草国产精品视频 | 99久久久久久久 | 午夜av日韩 | 免费在线国产视频 | 亚洲高清视频在线播放 | 亚洲欧美日韩一级 | 伊人精品在线 | 丰满少妇一级 | 亚洲欧美婷婷六月色综合 | 亚洲精品欧美专区 | 国产福利91精品一区二区三区 | 92国产精品久久久久首页 | 欧美精品一区二区在线观看 | 99热这里只有精品国产首页 | 狠狠色噜噜狠狠狠狠2021天天 | 九七人人干 | 久久精品国产一区二区电影 | 久草网视频在线观看 | 99久久日韩精品免费热麻豆美女 | 精品欧美一区二区三区久久久 | 欧洲亚洲激情 | 久久字幕精品一区 | 欧美做受69 | 91精品国| 麻豆传媒视频在线 | 中文字幕国语官网在线视频 | av在线官网 | 久久无码av一区二区三区电影网 | 欧美成人tv| 在线精品观看 | 日韩精品免费一区二区在线观看 | 国产九九精品 | 婷香五月 | 97精品视频在线播放 | 色视频网站在线观看一=区 a视频免费在线观看 | 成人wwwxxx视频 | a黄色一级片 | 亚洲精品免费在线视频 | 中文字幕日韩国产 | 日韩在线观看精品 | 亚洲欧美成人综合 | 深爱激情五月网 | 免费高清影视 | 国产亚洲精品福利 | 99爱视频| 国产精品白虎 | 久草在线观 |