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

每秒100W次的計(jì)數(shù),架構(gòu)原來(lái)可以這樣設(shè)計(jì)!

開發(fā) 開發(fā)工具 架構(gòu)
在業(yè)務(wù)復(fù)雜,計(jì)數(shù)擴(kuò)展頻繁,數(shù)據(jù)量大,并發(fā)量大的情況下,計(jì)數(shù)系統(tǒng)的架構(gòu)演進(jìn)與實(shí)踐,是本文將要分享的問(wèn)題。

今天和大家聊聊計(jì)數(shù)系統(tǒng)。

畫外音:文章較長(zhǎng),可提前收藏。

計(jì)數(shù)系統(tǒng)解決什么業(yè)務(wù)問(wèn)題?

很多業(yè)務(wù)都有“計(jì)數(shù)”需求,以微博為例:

[[410277]]

微博首頁(yè)的個(gè)人中心部分,有三個(gè)重要的計(jì)數(shù):

  • 關(guān)注了多少人的計(jì)數(shù);
  • 粉絲的計(jì)數(shù);
  • 發(fā)布博文的計(jì)數(shù);

微博首頁(yè)的博文消息主體部分,也有有很多計(jì)數(shù),分別是一條博文的:

  • 轉(zhuǎn)發(fā)計(jì)數(shù);
  • 評(píng)論計(jì)數(shù);
  • 點(diǎn)贊計(jì)數(shù);
  • 甚至是瀏覽計(jì)數(shù);

畫外音:瀏覽計(jì)數(shù)有點(diǎn)難,每秒100W次PV,就有100W次計(jì)數(shù)。

在業(yè)務(wù)復(fù)雜,計(jì)數(shù)擴(kuò)展頻繁,數(shù)據(jù)量大,并發(fā)量大的情況下,計(jì)數(shù)系統(tǒng)的架構(gòu)演進(jìn)與實(shí)踐,是本文將要分享的問(wèn)題。

如何最快速的實(shí)現(xiàn)業(yè)務(wù)計(jì)數(shù)呢?

count計(jì)數(shù)法。

典型的互聯(lián)網(wǎng)架構(gòu),常常分為這么幾層:

  • 調(diào)用層:處于端上的browser或者APP;
  • 站點(diǎn)層:拼裝html或者json返回的web-server層;
  • 服務(wù)層:提供RPC調(diào)用接口的service層;
  • 數(shù)據(jù)層:提供固化數(shù)據(jù)存儲(chǔ)的db,以及加速存儲(chǔ)的cache;

針對(duì)上文微博計(jì)數(shù)的例子,主要涉及“關(guān)注”業(yè)務(wù),“粉絲”業(yè)務(wù),“微博消息”業(yè)務(wù),一般來(lái)說(shuō),會(huì)有相應(yīng)的db存儲(chǔ)相關(guān)數(shù)據(jù),相應(yīng)的service提供相關(guān)業(yè)務(wù)的RPC接口:

  • 關(guān)注服務(wù):提供關(guān)注數(shù)據(jù)的增刪查改RPC接口;
  • 粉絲服務(wù):提供粉絲數(shù)據(jù)的增刪查改RPC接口;
  • 消息服務(wù):提供微博消息數(shù)據(jù)的增刪查改RPC接口,消息業(yè)務(wù)相對(duì)比較復(fù)雜,涉及微博消息、轉(zhuǎn)發(fā)、評(píng)論、點(diǎn)贊等數(shù)據(jù)的存儲(chǔ);

對(duì)關(guān)注、粉絲、微博業(yè)務(wù)進(jìn)行了初步解析,那首頁(yè)的計(jì)數(shù)需求應(yīng)該如何滿足呢?

很容易想到,關(guān)注服務(wù)+粉絲服務(wù)+消息服務(wù)均提供相應(yīng)接口,就能拿到相關(guān)計(jì)數(shù)數(shù)據(jù)。


例如,個(gè)人中心首頁(yè),需要展現(xiàn)博文數(shù)量這個(gè)計(jì)數(shù),web層訪問(wèn)message-service的count接口,這個(gè)接口執(zhí)行:

  1. select count(*) from t_msg where uid = XXX 

[[410279]]

同理,也很容易拿到關(guān)注,粉絲的這些計(jì)數(shù)。

這個(gè)方案叫做“count”計(jì)數(shù)法,在數(shù)據(jù)量并發(fā)量不大的情況下,最容易想到且最經(jīng)常使用的就是這種方法。

count計(jì)數(shù)法存在什么問(wèn)題呢?

隨著數(shù)據(jù)量的上升,并發(fā)量的上升,這個(gè)方法的弊端將逐步展現(xiàn)。

例如,微博首頁(yè)有很多條微博消息,每條消息有若干計(jì)數(shù),此時(shí)計(jì)數(shù)的拉取就成了一個(gè)龐大的工程:

整個(gè)拉取計(jì)數(shù)的偽代碼如下:

  1. list<msg_id> = getHomePageMsg(uid);// 獲取首頁(yè)所有消息 
  2. for( msg_id in list<msg_id>){ // 對(duì)每一條消息 
  3.          getReadCount(msg_id);  // 閱讀計(jì)數(shù) 
  4.          getForwordCount(msg_id); // 轉(zhuǎn)發(fā)計(jì)數(shù) 
  5.          getCommentCount(msg_id); // 評(píng)論計(jì)數(shù) 
  6.          getPraiseCount(msg_id); // 贊計(jì)數(shù) 

其中:

  • 每一個(gè)微博消息的若干個(gè)計(jì)數(shù),都對(duì)應(yīng)4個(gè)后端服務(wù)訪問(wèn);
  • 每一個(gè)訪問(wèn),對(duì)應(yīng)一條count的數(shù)據(jù)庫(kù)訪問(wèn)(count要了老命了);

其效率之低,資源消耗之大,處理時(shí)間之長(zhǎng),可想而知。

“count”計(jì)數(shù)法方案,可以總結(jié)為:

  • 多條消息多次查詢,for循環(huán)進(jìn)行;
  • 一條消息多次查詢,多個(gè)計(jì)數(shù)的查詢;
  • 一次查詢一個(gè)count,每個(gè)計(jì)數(shù)都是一個(gè)count語(yǔ)句;

那如何進(jìn)行優(yōu)化呢?

計(jì)數(shù)外置法。

計(jì)數(shù)是一個(gè)通用的需求,有沒有可能,這個(gè)計(jì)數(shù)的需求實(shí)現(xiàn)在一個(gè)通用的系統(tǒng)里,而不是由關(guān)注服務(wù)、粉絲服務(wù)、微博服務(wù)來(lái)分別來(lái)提供相應(yīng)的功能呢?

畫外音:各個(gè)業(yè)務(wù)系統(tǒng)具備的通用痛點(diǎn),應(yīng)該下沉統(tǒng)一解決。

可以抽象一個(gè)通用的計(jì)數(shù)服務(wù)。

通過(guò)分析,上述微博的業(yè)務(wù)可以抽象成兩類:

  • 用戶(uid)維度的計(jì)數(shù):用戶的關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),發(fā)布的微博計(jì)數(shù);
  • 微博消息(msg_id)維度的計(jì)數(shù):消息轉(zhuǎn)發(fā)計(jì)數(shù),評(píng)論計(jì)數(shù),點(diǎn)贊計(jì)數(shù);

于是可以抽象出兩個(gè)表,針對(duì)這兩個(gè)維度來(lái)進(jìn)行計(jì)數(shù)的存儲(chǔ):

  1. t_user_count (uid, gz_count, fs_count, wb_count); 
  2. t_msg_count (msg_id, forword_count, comment_count, praise_count); 

甚至可以更為抽象,一個(gè)表搞定所有計(jì)數(shù):

  1. t_count(id, type, c1, c2, c3, …) 

通過(guò)type來(lái)判斷,id究竟是uid還是msg_id,但并不建議這么做。

存儲(chǔ)抽象完,再抽象出一個(gè)計(jì)數(shù)服務(wù)對(duì)這些數(shù)據(jù)進(jìn)行管理,提供友善的RPC接口:

這樣,在查詢一條微博消息的若干個(gè)計(jì)數(shù)的時(shí)候,不用進(jìn)行多次數(shù)據(jù)庫(kù)count操作,而會(huì)轉(zhuǎn)變?yōu)橐粭l數(shù)據(jù)的多個(gè)屬性的查詢:

  1. for(msg_id in list<msg_id>) { 
  2. select forword_count, comment_count, praise_count  
  3.     from t_msg_count  
  4.     where msg_id=$msg_id; 

甚至,可以將微博首頁(yè)所有消息的計(jì)數(shù),轉(zhuǎn)變?yōu)橐粭lIN語(yǔ)句(不用多次查詢了)的批量查詢:

  1. select * from t_msg_count  
  2.     where msg_id IN 
  3.     ($msg_id1, $msg_id2, $msg_id3, …); 

IN查詢可以命中msg_id聚集索引,效率很高。

那么,當(dāng)有微博被轉(zhuǎn)發(fā)、評(píng)論、點(diǎn)贊的時(shí)候,計(jì)數(shù)服務(wù)如何同步的進(jìn)行計(jì)數(shù)的變更呢?

如果讓業(yè)務(wù)服務(wù)來(lái)調(diào)用計(jì)數(shù)服務(wù),勢(shì)必會(huì)導(dǎo)致業(yè)務(wù)系統(tǒng)與計(jì)數(shù)系統(tǒng)耦合。可以通過(guò)MQ來(lái)解耦,在業(yè)務(wù)發(fā)生變化的時(shí)候,向MQ發(fā)送一條異步消息,通知計(jì)數(shù)系統(tǒng)計(jì)數(shù)發(fā)生了變化即可:

如上圖:

  • 用戶新發(fā)布了一條微博;
  • msg-service向MQ發(fā)送一條消息;
  • counting-service從MQ接收消息;
  • counting-service變更這個(gè)uid發(fā)布微博消息計(jì)數(shù);

畫外音:其實(shí)發(fā)送一條微博本來(lái)就會(huì)發(fā)MQ消息,計(jì)數(shù)系統(tǒng)只是新增一個(gè)訂閱方。

這個(gè)方案稱為“計(jì)數(shù)外置”,可以總結(jié)為:

  • 通過(guò)counting-service單獨(dú)保存計(jì)數(shù);
  • MQ同步計(jì)數(shù)的變更;
  • 多條消息的多個(gè)計(jì)數(shù),一個(gè)批量IN查詢完成;

計(jì)數(shù)外置可能存在什么新的問(wèn)題呢?

計(jì)數(shù)外置,本質(zhì)是數(shù)據(jù)的冗余,架構(gòu)設(shè)計(jì)上,數(shù)據(jù)冗余必將引發(fā)數(shù)據(jù)的一致性問(wèn)題,需要有機(jī)制來(lái)保證計(jì)數(shù)系統(tǒng)里的數(shù)據(jù)與業(yè)務(wù)系統(tǒng)里的數(shù)據(jù)一致,常見的方法有:

  • 對(duì)于一致性要求比較高的業(yè)務(wù),要有定期check并fix的機(jī)制,例如關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),微博消息計(jì)數(shù)等;
  • 對(duì)于一致性要求比較低的業(yè)務(wù),即使有數(shù)據(jù)不一致,業(yè)務(wù)可以接受,例如微博瀏覽數(shù),微博轉(zhuǎn)發(fā)數(shù)等;

計(jì)數(shù)外置很大程度上解決了計(jì)數(shù)存取的性能問(wèn)題,但是否還有優(yōu)化空間呢?

像關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),微博消息計(jì)數(shù),變化的頻率很低,查詢的頻率很高,這類讀多些少的業(yè)務(wù)場(chǎng)景,非常適合使用緩存來(lái)進(jìn)行查詢優(yōu)化,減少數(shù)據(jù)庫(kù)的查詢次數(shù),降低數(shù)據(jù)庫(kù)的壓力。

但是,緩存是kv結(jié)構(gòu)的,無(wú)法像數(shù)據(jù)庫(kù)一樣,設(shè)置成

  1. t_uid_count(uid, c1, c2, c3) 

這樣的schema,如何來(lái)對(duì)kv進(jìn)行設(shè)計(jì)呢?

緩存kv結(jié)構(gòu)的value是計(jì)數(shù),看來(lái)只能在key上做設(shè)計(jì),很容易想到,可以使用uid:type來(lái)做key,存儲(chǔ)對(duì)應(yīng)type的計(jì)數(shù)。

對(duì)于uid=123的用戶,其關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),微博消息計(jì)數(shù)的緩存就可以設(shè)計(jì)為:

此時(shí)對(duì)應(yīng)的counting-service架構(gòu)變?yōu)椋?/p>

如此這般,多個(gè)uid的多個(gè)計(jì)數(shù),又可能會(huì)變?yōu)槎啻尉彺娴脑L問(wèn):

  1. for(uid in list<uid>) { 
  2.  memcache::get($uid:c1, $uid:c2, $uid:c3); 

這個(gè)“計(jì)數(shù)外置緩存優(yōu)化”方案,可以總結(jié)為:

  • 使用緩存來(lái)保存讀多寫少的計(jì)數(shù);

畫外音:其實(shí)寫多讀少,一致性要求不高的計(jì)數(shù),也可以先用緩存保存,然后定期刷到數(shù)據(jù)庫(kù)中,以降低數(shù)據(jù)庫(kù)的讀寫壓力。

  • 使用id:type的方式作為緩存的key,使用count來(lái)作為緩存的value;
  • 多次讀取緩存來(lái)查詢多個(gè)uid的計(jì)數(shù);

緩存的使用能夠極大降低數(shù)據(jù)庫(kù)的壓力,但多次緩存交互依舊存在優(yōu)化空間,有沒有辦法進(jìn)一步優(yōu)化呢?

不要陷入思維定式,誰(shuí)說(shuō)value一定只能是一個(gè)計(jì)數(shù),難道不能多個(gè)計(jì)數(shù)存儲(chǔ)在一個(gè)value中么?

緩存kv結(jié)構(gòu)的key是uid,value可以是多個(gè)計(jì)數(shù)同時(shí)存儲(chǔ)。

對(duì)于uid=123的用戶,其關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),微博消息計(jì)數(shù)的緩存就可以設(shè)計(jì)為:

這樣多個(gè)用戶,多個(gè)計(jì)數(shù)的查詢就可以一次搞定:

  1. memcache::get($uid1, $uid2, $uid3, …); 

然后對(duì)獲取的value進(jìn)行分析,得到關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),微博計(jì)數(shù)。

如果計(jì)數(shù)value能夠事先預(yù)估一個(gè)范圍,甚至可以用一個(gè)整數(shù)的不同bit來(lái)存儲(chǔ)多個(gè)計(jì)數(shù),用整數(shù)的與或非計(jì)算提高效率。

這個(gè)“計(jì)數(shù)外置緩存批量?jī)?yōu)化”方案,可以總結(jié)為:

  • 使用id作為key,使用同一個(gè)id的多個(gè)計(jì)數(shù)的拼接作為value;
  • 多個(gè)id的多個(gè)計(jì)數(shù)查詢,一次搞定;

考慮完效率,架構(gòu)設(shè)計(jì)上還需要考慮擴(kuò)展性,如果uid除了關(guān)注計(jì)數(shù),粉絲計(jì)數(shù),微博計(jì)數(shù),還要增加一個(gè)計(jì)數(shù),這時(shí)系統(tǒng)需要做什么變更呢?

之前的數(shù)據(jù)庫(kù)結(jié)構(gòu)是:

  1. t_user_count(uid, gz_count, fs_count, wb_count) 

這種設(shè)計(jì),通過(guò)列來(lái)進(jìn)行計(jì)數(shù)的存儲(chǔ),如果增加一個(gè)XX計(jì)數(shù),數(shù)據(jù)庫(kù)的表結(jié)構(gòu)要變更為:

  1. t_user_count(uid, gz_count, fs_count, wb_count, XX_count) 

在數(shù)據(jù)量很大的情況下,頻繁的變更數(shù)據(jù)庫(kù)schema的結(jié)構(gòu)顯然是不可取的,有沒有擴(kuò)展性更好的方式呢?

不要陷入思維定式,誰(shuí)說(shuō)只能通過(guò)擴(kuò)展列來(lái)擴(kuò)展屬性,能不能通過(guò)擴(kuò)展行來(lái)擴(kuò)展屬性呢?

答案是肯定的,完全可以這樣設(shè)計(jì)表結(jié)構(gòu):

  1. t_user_count(uid, count_key, count_value) 

如果需要新增一個(gè)計(jì)數(shù)XX_count,只需要增加一行即可,而不需要變更表結(jié)構(gòu):

總結(jié)

小小的計(jì)數(shù),在數(shù)據(jù)量大,并發(fā)量大的時(shí)候,其架構(gòu)實(shí)踐思路為:

(1)計(jì)數(shù)外置:由“count計(jì)數(shù)法”升級(jí)為“計(jì)數(shù)外置法”;

(2)讀多寫少,甚至寫多但一致性要求不高的計(jì)數(shù),需要進(jìn)行緩存優(yōu)化,降低數(shù)據(jù)庫(kù)壓力;

(3)緩存kv設(shè)計(jì)優(yōu)化,可以由[key:type]->[count],優(yōu)化為[key]->[c1:c2:c3]即:

優(yōu)化為:

(4)數(shù)據(jù)庫(kù)擴(kuò)展性優(yōu)化,可以由列擴(kuò)展優(yōu)化為行擴(kuò)展即:

優(yōu)化為:

【本文為51CTO專欄作者“58沈劍”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2019-09-16 09:34:39

2021-06-23 06:48:42

秒殺Java電商

2025-09-29 09:49:26

2020-03-26 08:07:28

紅包架構(gòu)請(qǐng)求

2025-11-17 09:06:13

架構(gòu)計(jì)數(shù)業(yè)務(wù)數(shù)據(jù)庫(kù)

2025-11-19 09:05:38

2025-09-23 07:08:40

2025-01-02 09:17:37

2019-08-23 09:03:04

盤口數(shù)據(jù)數(shù)據(jù)庫(kù)緩存

2019-08-27 08:51:36

計(jì)數(shù)數(shù)據(jù)庫(kù)并發(fā)

2024-11-19 09:15:40

搜索類型MySQL

2013-09-18 10:44:01

搜狗輸入法詞語(yǔ)

2025-06-03 02:10:00

2024-09-05 21:24:02

數(shù)據(jù)庫(kù)查詢MySQLlimit

2019-07-29 14:40:26

架構(gòu)存儲(chǔ)檢索

2019-05-05 09:28:59

架構(gòu)數(shù)據(jù)查詢

2023-02-26 17:24:53

8G內(nèi)存線程

2023-12-11 13:57:00

RFM模型激勵(lì)機(jī)制

2020-12-28 08:36:30

C語(yǔ)言編程泛型

2024-08-12 09:43:42

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

精品国产乱码久久久久久1区2匹| heyzo高清中文字幕在线| 视频一区视频二区中文字幕| 在线观看欧美www| 亚洲视频第二页| 午夜小视频在线观看| 99国产精品99久久久久久| 日韩美女免费观看| 国产极品国产极品| 亚洲丁香日韩| 欧美一区二区三区视频| 国产妇女馒头高清泬20p多| 国产色在线 com| 国产福利精品一区二区| 国产精品v片在线观看不卡| 免费在线观看亚洲| 欧洲视频一区| 亚洲第一精品福利| 91亚洲精品久久久蜜桃借种| 欧美a级在线观看| 亚洲手机成人高清视频| 欧美激情论坛| 性生活三级视频| 国产精品视频| 欧美另类老女人| 99re久久精品国产| 奇米一区二区| 欧美自拍丝袜亚洲| 日韩a∨精品日韩在线观看| 精品孕妇一区二区三区| 久久久综合视频| 国产伦精品一区二区三区视频免费| 中国一级特黄毛片| 欧美在线免费| 色偷偷av一区二区三区乱| 免费看黄色aaaaaa 片| 亚洲精品18| 91精品福利在线一区二区三区| 天天影视综合色| 韩国成人免费视频| 亚洲欧美日韩国产成人精品影院| 日韩精品第一页| 天堂资源最新在线| 国内精品国产三级国产a久久| 国产成人一区三区| 欧美特黄aaaaaa| 夜夜精品视频| 91国语精品自产拍在线观看性色 | 国产极品999| 麻豆精品蜜桃视频网站| 国产成人精品免费视频| 日韩精品一区二区亚洲av| 夜夜嗨一区二区| 2019日本中文字幕| 久草国产精品视频| 日韩一级在线| 8090成年在线看片午夜| 国产网址在线观看| 韩国在线一区| 97在线观看视频国产| 精品亚洲永久免费| 伊人激情综合| 欧美一乱一性一交一视频| 毛片视频网站在线观看| 另类天堂av| 国产精品高潮视频| 这里只有精品6| 国产在线麻豆精品观看| 91传媒视频免费| 国产成人无码www免费视频播放| 国产精品996| 国产精品一区二区不卡视频| 天天干,夜夜爽| 久久一区二区视频| 亚洲二区自拍| 黄色网址在线免费观看| 亚洲免费观看高清完整版在线| 特级黄色录像片| av福利导福航大全在线| 韩曰欧美视频免费观看| 欧美精品性生活| 国产精品久久久久久久久久辛辛| 亚洲精品一线二线三线无人区| av免费观看不卡| 四虎5151久久欧美毛片| 亚洲视频欧洲视频| 亚洲波多野结衣| 在线看片成人| 国产精品久久久久久影视| 国产精品毛片一区视频播| 国产成人啪免费观看软件| 久久国产主播精品| 天堂地址在线www| 亚洲综合av网| 国产一区二区视频免费在线观看| 久久不卡日韩美女| 亚洲成色www8888| 亚洲av无码国产精品麻豆天美| 91精品综合| 欧美在线免费看| 国产精品人人爽| 91丝袜高跟美女视频| 正义之心1992免费观看全集完整版| 黑人极品ⅴideos精品欧美棵| 91精品办公室少妇高潮对白| 先锋资源在线视频| 九九免费精品视频在线观看| 欧美成人激情视频| 波多野结衣黄色| 成人午夜看片网址| 这里只有精品66| 亚洲欧美韩国| 欧美成人在线直播| 精品视频第一页| 国产欧美在线| 97中文在线观看| 91啦中文在线| 欧美性xxxx极品hd满灌| 中文字幕乱妇无码av在线| 精品日韩欧美一区| 国内精品久久久久久久久| 在线不卡免费视频| 26uuu亚洲| 成人黄色片免费| 欧美日韩伦理一区二区| 亚洲欧美日韩另类| 日本在线观看视频网站| 国产麻豆视频一区二区| 日本一区免费看| 18video性欧美19sex高清| 欧美一区二区在线视频| 一级二级黄色片| 日韩中文字幕亚洲一区二区va在线 | 亚洲另类欧美日韩| 国产1区2区3区精品美女| 99久久久无码国产精品性色戒| avav成人| 在线观看国产欧美| www.亚洲激情| 国产视频一区二区在线| 男女av免费观看| 亚洲精品国产动漫| 欧日韩在线观看| 性xxxfllreexxx少妇| 亚洲午夜精品17c| 无码人妻一区二区三区精品视频 | 精品国产区一区二区三区在线观看| 激情五月婷婷网| 久久久久国产精品免费免费搜索 | 久久99精品国产.久久久久久| 欧美婷婷久久| 久久99久久99精品免观看软件| 亚洲国产小视频| 五月婷婷中文字幕| 91伊人久久大香线蕉| 免费看的黄色大片| 亚洲瘦老头同性70tv| 国产激情久久久久| av在线免费观看网| 8v天堂国产在线一区二区| 91视频青青草| 国产成人亚洲综合a∨猫咪| 99re6这里有精品热视频| 亚洲一区二区三区四区电影 | 国产黄色精品网站| www.欧美黄色| 天堂一区二区三区四区| 国产精品高潮呻吟久久av无限| 91精品国产91久久久久游泳池| 欧美女孩性生活视频| 日韩在线中文字幕视频| 国产成人av电影免费在线观看| 黄色激情在线视频| 香蕉视频一区二区三区| 国产精品精品视频| 国产精品刘玥久久一区| 精品福利一区二区三区免费视频| 日本三级网站在线观看| 久久精品人人爽人人爽| 国产福利精品一区二区三区| 国语对白精品一区二区| 欧洲精品亚洲精品| 91精品一久久香蕉国产线看观看| 欧美激情二区三区| 蜜桃视频在线播放| 678五月天丁香亚洲综合网| 久久久久久福利| 国产三级一区二区三区| 宇都宫紫苑在线播放| 母乳一区在线观看| 中文字幕免费在线不卡| 精品久久对白| 成人黄色生活片| 国产va在线视频| 日韩中文在线不卡| 午夜激情小视频| 欧美日韩成人一区二区| 日韩精品视频播放| 国产精品久久久久一区| 女同性恋一区二区三区| 久久精品国产网站| 丁香花在线影院观看在线播放| 日韩一区二区中文| 久久99久久精品国产| 国产成人免费av一区二区午夜| 国模私拍一区二区三区| 超鹏97在线| 一二美女精品欧洲| 人妻妺妺窝人体色www聚色窝| 欧美三级中文字| 中日韩精品视频在线观看| 中文字幕一区日韩精品欧美| 欧美高清性xxxx| 国产精品资源在线看| 国产视频在线视频| 在线国产精品一区| 亚洲天堂第一区| 日本高清免费电影一区| 久久久国产精品一区二区三区| 欧美经典一区| 国产欧美日韩中文字幕在线| 日本综合字幕| 欧美在线视频免费播放| 亚洲区欧洲区| 久久韩剧网电视剧| 1769在线观看| 亚洲深夜福利在线| 欧美日韩在线中文字幕| 精品久久久久久久一区二区蜜臀| 国产一区二区三区四区视频| 欧美亚洲一区三区| 国产精品视频一区在线观看| 亚洲h在线观看| 久久中文字幕在线观看| 亚洲免费在线电影| 登山的目的在线| 国产精品欧美一级免费| xxxxx99| 中文字幕欧美国产| 先锋影音av在线| 久久精品人人做人人爽97 | 国产精品久久久一本精品| 亚洲自拍偷拍图| 国产偷国产偷精品高清尤物| www.中文字幕av| 国产欧美日韩在线视频| 男人的天堂官网| 国产精品日韩精品欧美在线| www.4hu95.com四虎| 国产精品毛片大码女人| 成人18视频免费69| 国产精品久久久久久久久久久免费看 | 中文字幕一区二区人妻痴汉电车| 欧洲中文字幕精品| 中文亚洲av片在线观看| 欧美视频一区二区在线观看| 亚洲午夜无码久久久久| 欧美欧美欧美欧美| 国产999久久久| 日韩精品一区二区三区swag| 俄罗斯嫩小性bbwbbw| 亚洲国产毛片完整版| 日本一二三区在线视频| 亚洲深夜福利在线| 精品黄色免费中文电影在线播放| 久久天天躁日日躁| 国产亚av手机在线观看| 4388成人网| 8av国产精品爽爽ⅴa在线观看| 国产在线观看不卡| 日本精品视频| 久久精品国产第一区二区三区最新章节 | 四虎5151久久欧美毛片| 日韩尤物视频| 一区二区三区网站| 自拍日韩亚洲一区在线| 日韩专区欧美专区| 视频区 图片区 小说区| 成人动漫在线一区| 一区二区三区在线观看免费视频| 亚洲色图一区二区三区| 久久久久久久黄色| 一本色道亚洲精品aⅴ| 91激情在线观看| 欧美sm极限捆绑bd| 国产高清在线观看| 九色91av视频| 婷婷综合六月| 91av免费看| 国产探花一区在线观看| 樱空桃在线播放| 久久一日本道色综合久久| 日本高清久久久| av中文字幕一区| 蜜桃av.com| 精品免费在线视频| 国产又粗又猛又爽又黄的| 亚洲国产又黄又爽女人高潮的| yjizz视频网站在线播放| 欧美激情极品视频| 成人午夜毛片| 精品在线一区| 在线观看国产精品入口| 少妇性饥渴无码a区免费| 激情偷乱视频一区二区三区| 国产精品无码在线| 亚洲激情网站免费观看| 亚洲av无码不卡| 亚洲激情免费观看| av中文字幕在线播放| 国产成人一区二区| 欧美成人一区在线观看| 欧美精品久久96人妻无码| 日本美女一区二区三区视频| 尤物网站在线观看| 亚洲免费av网站| 国产91av在线播放| 日韩激情视频在线| av资源网在线播放| 亚洲一区二区三区视频| 精品一二三区| 国产精品333| 成人动漫视频在线| 成年人一级黄色片| 91麻豆精品国产91久久久久久| 国模精品一区二区| 91成人在线播放| 欧美wwwwww| 成 年 人 黄 色 大 片大 全| 国产乱码精品一区二区三区五月婷 | jizz欧美激情18| 久久亚洲一级片| 天堂网av手机版| 亚洲精品videossex少妇| 电影k8一区二区三区久久| 亚洲www在线| 亚洲国产一成人久久精品| 免费一区二区三区在线观看| 欧美激情中文不卡| 99久久久无码国产精品免费蜜柚| 亚洲精品自产拍| 在线视频超级| 女人一区二区三区| 久久激情一区| 特级西西www444人体聚色| 在线视频你懂得一区| 国产乱理伦片a级在线观看| 51精品国产黑色丝袜高跟鞋| 一本久久青青| 漂亮人妻被中出中文字幕| 2019国产精品| 老熟妇一区二区三区| 国产亚洲欧洲高清| 久久国产三级| 亚洲一区 在线播放| 国产成人鲁色资源国产91色综| 久久中文字幕在线观看| 日韩精品黄色网| 日本一区免费网站| 亚洲精品一区二| 国产一区美女在线| 久青草免费视频| 亚洲精品www久久久| 桃花岛tv亚洲品质| 亚洲天堂电影网| 国产精品一区二区三区乱码| 国产无精乱码一区二区三区| 日韩理论片久久| 草莓视频成人appios| 麻豆md0077饥渴少妇| 成人一级片在线观看| 在线视频一区二区三区四区| 中国人与牲禽动交精品| 动漫一区二区三区| 日韩黄色短视频| 久久久久久久精| 99久久精品日本一区二区免费| 欧美极品少妇xxxxx| 亚洲黄色录像| 亚洲一区二区偷拍| 香蕉加勒比综合久久| 国产对白叫床清晰在线播放| 亚洲free嫩bbb| 亚洲一区亚洲| av在线免费播放网址| 欧美精品一区二区不卡 | 欧美日韩在线一区二区| 污污影院在线观看| 欧美一区观看| 国产精品正在播放| 无码人妻av一区二区三区波多野| 久久久国产一区| 自拍亚洲一区| 下面一进一出好爽视频| 色综合久久88色综合天天| av网站大全在线| 日韩欧美一区二区视频在线播放| 国产v综合v亚洲欧| 中文天堂在线播放| 午夜精品久久久久久久99热|