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

接口性能優(yōu)化技巧,干掉慢代碼!

共 6322字,需瀏覽 13分鐘

 ·

2022-02-20 09:53


相關(guān)閱讀

300本計算機編程的經(jīng)典書籍下載

AI全套:Python3+TensorFlow打造人臉識別智能小程序

最新人工智能資料-Google工程師親授 Tensorflow-入門到進階

Java架構(gòu)全階段七期完整

黑馬頭條項目 - Java Springboot2.0(視頻、資料、代碼和講義)14天完整版

Spring核心編程思想

2T架構(gòu)師學(xué)習(xí)資料干貨分享

作者:天機術(shù)士
來源:juejin.cn/post/7043423820543164453

背景

我負責(zé)的系統(tǒng)到2021年初完成了功能上的建設(shè),開始進入到推廣階段。隨著推廣的逐步深入,收到了很多好評的同時也收到了很多對性能的吐槽。剛剛收到吐槽的時候,我們的心情是這樣的:

當越來越多對性能的吐槽反饋到我們這里的時候,我們意識到,接口性能的問題的優(yōu)先級必須提高了。然后我們就跟蹤了1周的接口性能監(jiān)控,這個時候我們的心情是這樣的:

有20多個慢接口,5個接口響應(yīng)時間超過5s,1個超過10s,其余的都在2s以上,穩(wěn)定性不足99.8%。作為一個優(yōu)秀的后端程序員,這個數(shù)據(jù)肯定是不能忍的,我們馬上就進入了漫長的接口優(yōu)化之路。本文就是對我們漫長工作歷程的一個總結(jié)。

正文開始!

哪些問題會引起接口性能問題?

這個問題的答案非常多,需要根據(jù)自己的業(yè)務(wù)場景具體分析。這里做一個不完全的總結(jié):

  • 數(shù)據(jù)庫慢查詢
    • 深度分頁問題
    • 未加索引
    • 索引失效
    • join過多
    • 子查詢過多
    • in中的值太多
    • 單純的數(shù)據(jù)量過大
  • 業(yè)務(wù)邏輯復(fù)雜
    • 循環(huán)調(diào)用
    • 順序調(diào)用
  • 線程池設(shè)計不合理
  • 鎖設(shè)計不合理
  • 機器問題(fullGC,機器重啟,線程打滿)

問題解決

1、慢查詢(基于mysql)

1.1 深度分頁

所謂的深度分頁問題,涉及到mysql分頁的原理。通常情況下,mysql的分頁是這樣寫的:

select?name,code?from?student?limit?100,20

含義當然就是從student表里查100到120這20條數(shù)據(jù),mysql會把前120條數(shù)據(jù)都查出來,拋棄前100條,返回20條。當分頁所以深度不大的時候當然沒問題,隨著分頁的深入,sql可能會變成這樣:

select?name,code?from?student?limit?1000000,20

這個時候,mysql會查出來1000020條數(shù)據(jù),拋棄1000000條,如此大的數(shù)據(jù)量,速度一定快不起來。那如何解決呢?一般情況下,最好的方式是增加一個條件:

select?name,code?from?student?where?id>1000000??limit?20

這樣,mysql會走主鍵索引,直接連接到1000000處,然后查出來20條數(shù)據(jù)。但是這個方式需要接口的調(diào)用方配合改造,把上次查詢出來的最大id以參數(shù)的方式傳給接口提供方,會有溝通成本(調(diào)用方:老子不改!)。

1.2 未加索引

這個是最容易解決的問題,我們可以通過

show?create?table?xxxx(表名)

查看某張表的索引。具體加索引的語句網(wǎng)上太多了,不再贅述。不過順便提一嘴,加索引之前,需要考慮一下這個索引是不是有必要加,如果加索引的字段區(qū)分度非常低,那即使加了索引也不會生效。另外,加索引的alter操作,可能引起鎖表,執(zhí)行sql的時候一定要在低峰期(血淚史!!?。。?/p>

1.3 索引失效

這個是慢查詢最不好分析的情況,雖然mysql提供了explain來評估某個sql的查詢性能,其中就有使用的索引。但是為啥索引會失效呢?mysql卻不會告訴咱,需要咱自己分析。大體上,可能引起索引失效的原因有這幾個(可能不完全):

需要特別提出的是,關(guān)于字段區(qū)分性很差的情況,在加索引的時候就應(yīng)該進行評估。如果區(qū)分性很差,這個索引根本就沒必要加。區(qū)分性很差是什么意思呢,舉幾個例子,比如:

  • 某個字段只可能有3個值,那這個字段的索引區(qū)分度就很低。
  • 再比如,某個字段大量為空,只有少量有值;
  • 再比如,某個字段值非常集中,90%都是1,剩下10%可能是2,3,4....

進一步的,那如果不符合上面所有的索引失效的情況,但是mysql還是不使用對應(yīng)的索引,是為啥呢?這個跟mysql的sql優(yōu)化有關(guān),mysql會在sql優(yōu)化的時候自己選擇合適的索引,很可能是mysql自己的選擇算法算出來使用這個索引不會提升性能,所以就放棄了。這種情況,可以使用force index 關(guān)鍵字強制使用索引(建議修改前先實驗一下,是不是真的會提升查詢效率):

select?name,code?from?student?force?index(XXXXXX)?where?name?=?'天才'?

其中xxxx是索引名。

1.4 join過多 or 子查詢過多

我把join過多 和子查詢過多放在一起說了。一般來說,不建議使用子查詢,可以把子查詢改成join來優(yōu)化。同時,join關(guān)聯(lián)的表也不宜過多,一般來說2-3張表還是合適的。具體關(guān)聯(lián)幾張表比較安全是需要具體問題具體分析的,如果各個表的數(shù)據(jù)量都很少,幾百條幾千條,那么關(guān)聯(lián)的表的可以適當多一些,反之則需要少一些。

另外需要提到的是,在大多數(shù)情況下join是在內(nèi)存里做的,如果匹配的量比較小,或者join_buffer設(shè)置的比較大,速度也不會很慢。但是,當join的數(shù)據(jù)量比較大的時候,mysql會采用在硬盤上創(chuàng)建臨時表的方式進行多張表的關(guān)聯(lián)匹配,這種顯然效率就極低,本來磁盤的IO就不快,還要關(guān)聯(lián)。

一般遇到這種情況的時候就建議從代碼層面進行拆分,在業(yè)務(wù)層先查詢一張表的數(shù)據(jù),然后以關(guān)聯(lián)字段作為條件查詢關(guān)聯(lián)表形成map,然后在業(yè)務(wù)層進行數(shù)據(jù)的拼裝。一般來說,索引建立正確的話,會比join快很多,畢竟內(nèi)存里拼接數(shù)據(jù)要比網(wǎng)絡(luò)傳輸和硬盤IO快得多。

1.5 in的元素過多

這種問題,如果只看代碼的話不太容易排查,最好結(jié)合監(jiān)控和數(shù)據(jù)庫日志一起分析。如果一個查詢有in,in的條件加了合適的索引,這個時候的sql還是比較慢就可以高度懷疑是in的元素過多。一旦排查出來是這個問題,解決起來也比較容易,不過是把元素分個組,每組查一次。想再快的話,可以再引入多線程。

進一步的,如果in的元素量大到一定程度還是快不起來,這種最好還是有個限制

select?id?from?student?where?id?in?(1,2,3?......?1000)?limit?200

當然了,最好是在代碼層面做個限制

if?(ids.size()?>?200)?{
????throw?new?Exception("單次查詢數(shù)據(jù)量不能超過200");
}

1.6 單純的數(shù)據(jù)量過大

這種問題,單純代碼的修修補補一般就解決不了了,需要變動整個的數(shù)據(jù)存儲架構(gòu)。或者是對底層mysql分表或分庫+分表;或者就是直接變更底層數(shù)據(jù)庫,把mysql轉(zhuǎn)換成專門為處理大數(shù)據(jù)設(shè)計的數(shù)據(jù)庫。這種工作是個系統(tǒng)工程,需要嚴密的調(diào)研、方案設(shè)計、方案評審、性能評估、開發(fā)、測試、聯(lián)調(diào),同時需要設(shè)計嚴密的數(shù)據(jù)遷移方案、回滾方案、降級措施、故障處理預(yù)案。除了以上團隊內(nèi)部的工作,還可能有跨系統(tǒng)溝通的工作,畢竟做了重大變更,下游系統(tǒng)的調(diào)用接口的方式有可能會需要變化。

出于篇幅的考慮,這個不再展開了,筆者有幸完整參與了一次億級別數(shù)據(jù)量的數(shù)據(jù)庫分表工作,對整個過程的復(fù)雜性深有體會,后續(xù)有機會也會分享出來。

2、業(yè)務(wù)邏輯復(fù)雜

2.1 循環(huán)調(diào)用

這種情況,一般都循環(huán)調(diào)用同一段代碼,每次循環(huán)的邏輯一致,前后不關(guān)聯(lián)。比如說,我們要初始化一個列表,預(yù)置12個月的數(shù)據(jù)給前端:

另外搜索公眾號互聯(lián)網(wǎng)架構(gòu)師回復(fù)關(guān)鍵字"2T”獲取一份驚喜禮包。

List?list?=?new?ArrayList<>();
for(int?i?=?0?;?i?12?;?i?++)?{
????Model?model?=?calOneMonthData(i);?//?計算某個月的數(shù)據(jù),邏輯比較復(fù)雜,難以批量計算,效率也無法很高
????list.add(model);
}

這種顯然每個月的數(shù)據(jù)計算相互都是獨立的,我們完全可以采用多線程方式進行:

//?建立一個線程池,注意要放在外面,不要每次執(zhí)行代碼就建立一個,具體線程池的使用就不展開了
public?static?ExecutorService?commonThreadPool?=?new?ThreadPoolExecutor(5,?5,?300L,
????????TimeUnit.SECONDS,?new?LinkedBlockingQueue<>(10),?commonThreadFactory,?new?ThreadPoolExecutor.DiscardPolicy());

//?開始多線程調(diào)用
List>?futures?=?new?ArrayList<>();
for(int?i?=?0?;?i?12?;?i?++)?{
????Future?future?=?commonThreadPool.submit(()?->?calOneMonthData(i););
????futures.add(future);
}

//?獲取結(jié)果
List?list?=?new?ArrayList<>();
try?{
???for?(int?i?=?0?;?i???????list.add(futures.get(i).get());
???}
}?catch?(Exception?e)?{
???LOGGER.error("出現(xiàn)錯誤:",?e);
}

2.2 順序調(diào)用

如果不是類似上面循環(huán)調(diào)用,而是一次次的順序調(diào)用,而且調(diào)用之間沒有結(jié)果上的依賴,那么也可以用多線程的方式進行,例如:

代碼上看:

A?a?=?doA();
B?b?=?doB();

C?c?=?doC(a,?b);

D?d?=?doD(c);
E?e?=?doE(c);

return?doResult(d,?e);

那么可用CompletableFuture解決

CompletableFuture?futureA?=?CompletableFuture.supplyAsync(()?->?doA());
CompletableFuture?futureB?=?CompletableFuture.supplyAsync(()?->?doB());
CompletableFuture.allOf(futureA,futureB)?//?等a?b?兩個任務(wù)都執(zhí)行完成

C?c?=?doC(futureA.join(),?futureB.join());

CompletableFuture?futureD?=?CompletableFuture.supplyAsync(()?->?doD(c));
CompletableFuture?futureE?=?CompletableFuture.supplyAsync(()?->?doE(c));
CompletableFuture.allOf(futureD,futureE)?//?等d?e兩個任務(wù)都執(zhí)行完成

return?doResult(futureD.join(),futureE.join());

這樣A B 兩個邏輯可以并行執(zhí)行,D E兩個邏輯可以并行執(zhí)行,最大執(zhí)行時間取決于哪個邏輯更慢。

3、線程池設(shè)計不合理

有的時候,即使我們使用了線程池讓任務(wù)并行處理,接口的執(zhí)行效率仍然不夠快,這種情況可能是怎么回事呢?

這種情況首先應(yīng)該懷疑是不是線程池設(shè)計的不合理。我覺得這里有必要回顧一下線程池的三個重要參數(shù):核心線程數(shù)、最大線程數(shù)、等待隊列。這三個參數(shù)是怎么打配合的呢?當線程池創(chuàng)建的時候,如果不預(yù)熱線程池,則線程池中線程為0。當有任務(wù)提交到線程池,則開始創(chuàng)建核心線程。

當核心線程全部被占滿,如果再有任務(wù)到達,則讓任務(wù)進入等待隊列開始等待。

如果隊列也被占滿,則開始創(chuàng)建非核心線程運行。

如果線程總數(shù)達到最大線程數(shù),還是有任務(wù)到達,則開始根據(jù)線程池拋棄規(guī)則開始拋棄。

那么這個運行原理與接口運行時間有什么關(guān)系呢?
  • 核心線程設(shè)置過小:核心線程設(shè)置過小則沒有達到并行的效果
  • 線程池公用,別的業(yè)務(wù)的任務(wù)執(zhí)行時間太長,占用了核心線程,另一個業(yè)務(wù)的任務(wù)到達就直接進入了等待隊列
  • 任務(wù)太多,以至于占滿了線程池,大量任務(wù)在隊列中等待

在排查的時候,只要找到了問題出現(xiàn)的原因,那么解決方式也就清楚了,無非就是調(diào)整線程池參數(shù),按照業(yè)務(wù)拆分線程池等等。

4、鎖設(shè)計不合理

鎖設(shè)計不合理一般有兩種:鎖類型使用不合理 or 鎖過粗。

鎖類型使用不合理的典型場景就是讀寫鎖。也就是說,讀是可以共享的,但是讀的時候不能對共享變量寫;而在寫的時候,讀寫都不能進行。在可以加讀寫鎖的時候,如果我們加成了互斥鎖,那么在讀遠遠多于寫的場景下,效率會極大降低。

鎖過粗則是另一種常見的鎖設(shè)計不合理的情況,如果我們把鎖包裹的范圍過大,則加鎖時間會過長,例如:

public?synchronized?void?doSome()?{
????File?f?=?calData();
????uploadToS3(f);
????sendSuccessMessage();
}

這塊邏輯一共處理了三部分,計算、上傳結(jié)果、發(fā)送消息。顯然上傳結(jié)果和發(fā)送消息是完全可以不加鎖的,因為這個跟共享變量根本不沾邊。因此完全可以改成:

public?void?doSome()?{
????File?f?=?null;
????synchronized(this)?{
????????f?=?calData();
????}
????uploadToS3(f);
????sendSuccessMessage();
}

5、機器問題(fullGC,機器重啟,線程打滿)

造成這個問題的原因非常多,筆者就遇到了定時任務(wù)過大引起fullGC,代碼存在線程泄露引起RSS內(nèi)存占用過高進而引起機器重啟等待諸多原因。需要結(jié)合各種監(jiān)控和具體場景具體分析,進而進行大事務(wù)拆分、重新規(guī)劃線程池等等工作

6、萬金油解決方式

萬金油這個形容詞是從我們單位某位老師那里學(xué)來的,但是筆者覺得非常貼切。這些萬金油解決方式往往能解決大部分的接口緩慢的問題,而且也往往是我們解決接口效率問題的最終解決方案。當我們實在是沒有辦法排查出問題,或者實在是沒有優(yōu)化空間的時候,可以嘗試這種萬金油的方式。

6.1 緩存

緩存是一種空間換取時間的解決方案,是在高性能存儲介質(zhì)上(例如:內(nèi)存、SSD硬盤等)存儲一份數(shù)據(jù)備份。當有請求打到服務(wù)器的時候,優(yōu)先從緩存中讀取數(shù)據(jù)。如果讀取不到,則再從硬盤或通過網(wǎng)絡(luò)獲取數(shù)據(jù)。由于內(nèi)存或SSD相比硬盤或網(wǎng)絡(luò)IO的效率高很多,則接口響應(yīng)速度會變快非常多。緩存適合于應(yīng)用在數(shù)據(jù)讀遠遠大于數(shù)據(jù)寫,且數(shù)據(jù)變化不頻繁的場景中。從技術(shù)選型上看,有這些:

  • 簡單的map
  • guava等本地緩存工具包
  • 緩存中間件:redis、tairmemcached

當然,memcached現(xiàn)在用的很少了,因為相比于redis他不占優(yōu)勢。tair則是阿里開發(fā)的一個分布式緩存中間件,他的優(yōu)勢是理論上可以在不停服的情況下,動態(tài)擴展存儲容量,適用于大數(shù)據(jù)量緩存存儲。相比于單機redis緩存當然有優(yōu)勢,而他與可擴展Redis集群的對比則需要進一步調(diào)研。

進一步的,當前緩存的模型一般都是key-value模型。如何設(shè)計key以提高緩存的命中率是個大學(xué)問,好的key設(shè)計和壞的key設(shè)計所提升的性能差別非常大。而且,key設(shè)計是沒有一定之規(guī)的,需要結(jié)合具體的業(yè)務(wù)場景去分析。各個大公司分享出來的相關(guān)文章,緩存設(shè)計基本上是最大篇幅。

6.2 回調(diào) or 反查

這種方式往往是業(yè)務(wù)上的解決方式,在訂單或者付款系統(tǒng)中應(yīng)用的比較多。舉個例子:當我們付款的時候,需要調(diào)用一個專門的付款系統(tǒng)接口,該系統(tǒng)經(jīng)過一系列驗證、存儲工作后還要調(diào)用銀行接口以執(zhí)行付款。由于付款這個動作要求十分嚴謹,銀行側(cè)接口執(zhí)行可能比較緩慢,進而拖累整個付款接口性能。這個時候我們就可以采用fast success的方式:當必要的校驗和存儲完成后,立即返回success,同時告訴調(diào)用方一個中間態(tài)“付款中”。而后調(diào)用銀行接口,當獲得支付結(jié)果后再調(diào)用上游系統(tǒng)的回調(diào)接口返回付款的最終結(jié)果“成果”or“失敗”。這樣就可以異步執(zhí)行付款過程,提升付款接口效率。當然,為了防止多業(yè)務(wù)方接入的時候回調(diào)接口不統(tǒng)一,可以把結(jié)果拋進kafka,讓調(diào)用方監(jiān)聽自己的結(jié)果。

結(jié)語

本文是筆者對工作中遇到的性能優(yōu)化問題的一個簡單的總結(jié),可能有不完備的地方,歡迎大家討論交流。同時,希望大家評論、點贊、轉(zhuǎn)發(fā)!

-End-

全棧架構(gòu)社區(qū)交流群

?「全棧架構(gòu)社區(qū)」建立了讀者架構(gòu)師交流群,大家可以添加小編微信進行加群。歡迎有想法、樂于分享的朋友們一起交流學(xué)習(xí)。

掃描添加好友邀你進架構(gòu)師群,加我時注明姓名+公司+職位】
看完本文有收獲?請轉(zhuǎn)發(fā)分享給更多人

往期資源:
Flutter 移動應(yīng)用開發(fā)實戰(zhàn) 視頻(開發(fā)你自己的抖音APP)
Java面試進階訓(xùn)練營 第2季(分布式篇)
Java高級 - 分布式系統(tǒng)開發(fā)技術(shù)視頻
瀏覽 98
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产字幕在线观看| 天天日天天拍| 日韩AV中文字幕在线播放| 苍井空中文字幕在线观看| 国产成人久久777777黄蓉| av片在线免费观看| 欧美黄色三级视频| 日韩在线91| 国产三级AV在线观看| 中文字幕日韩人妻| 亚洲丁香五月| XXXX操| 伊人福利导航| 色综合加勒比| 一级AV在线| 午夜亚洲AV永久无码精品麻豆| 内射视频网站| 白浆av| 先锋影音资源网站| 青青草在线免费视频| 国产精品久免费的黄网站| 一本久道综合| 亚洲黄色在线| 91精品国产综合久久久蜜臀酒店 | 99在线视频播放| 四川妇BBB桑BBB桑BBB| 陈冠希和张柏芝mv| 东方AV在线播放| 一级黄色小视频| 热久久国产| 婷婷黄色电影| 高清免费无码| 蜜臀久久99精品久久久电影| 欧美成人三级在线观看| 免费在线观看黄视频| 蜜桃成人无码区免费视频网站| 91红桃视频| 白峰美羽人妻AND-499| 欧美激情伊人久久五月天| 亚洲国产高清视频| 草比视频| 国内精品久久久久| 亚洲中文字幕在线视频观看| 精产国品一区二区三区| 国产AV剧情| 亚洲经典免费视频| 色色视频免费看| 欧美三级在线| 国产AV影视| 伊人成人电影| 国产福利精品视频| 亚洲天堂精品视频| 91久久人澡人妻人人做人人爽97| 国产在线一区二区三区四区| 国产高清无码网站| 天天撸天天色| 国产欧美日韩成人| 黑人内射人妖| 91视频亚洲| 久久国内视频| 免费亲子乱婬一级A片| 噜噜噜av| 免费一级A毛片夜夜看| 日韩三级一区| 欧美日韩一区视频| 免费三级片网址| 激情视频小说| 国产亚洲欧美日韩高清| 免费黄色小视频在线观看| 欧美午夜片| 浪潮在线观看完整版| 性爱无码| 成人在线网| 免费一级电影| 日韩人妻一区二区三区| 3D动漫精品啪啪一区二区下载| 麻豆午夜成人无码电影| 国产一级黄色录像| www.狠狠干| 无码日韩视频| 影音先锋av资源在线| 无码欧美成人| 五月婷婷婷婷| 丰满人妻一区二区三区免费| 欧美精产国品一二三区别| 老太老熟女城中层露脸60| 91亚洲国产精品| 国产一区二区在线播放| 尻屄视频网站| 国产亚洲视频免费观看| 日韩操逼av| 丁香激情综合| 国产精品久久久久久久久久二区三区 | 操逼视频大全| 91九色蝌蚪91POR成人| 啊啊啊国产| 操美女一区二区| 成人小说视频| 97久久精品国产熟妇高清网 | 亚洲性爱AV| AAA一区二区三区| 18害羞勿进网站国产| 91精品一区二区| 日韩欧美成人网| 91迷奸| 亚洲成人性爱网站| 在线免费看A片| 日本成人三级片| 水密桃网站| 国产三级片在线免费观看| 日本一级黃色大片看免费| 中文字幕第五页| 天堂精品| 亚洲高清在线| 亚洲中文字幕人妻。| 免费看特别黄色视频| 国产精品99久久免费黑人人妻| 日韩AV在线天堂| 欧美不卡在线观看| 四川BBB搡BBB爽爽爽电影| 日韩一级免费看| 精品亚洲无码视频| 色五婷婷| 麻豆精品久久久久久久99蜜桃| 逼特逼在线观看| 国产一级视频| 久久久97精品久久| 吴梦梦无码| 人妻国产| 中文字幕AV一区| 成人中文字幕在线观看| 国产三级片自拍| 中文字幕黄色电影| 西西人体WW大胆无码| 欧美日韩黄片| 亚洲无码久久飞鱼网站| 四色五月婷婷| 俺来也俺去也www色官| 欧美精产国品一二三区别| 日本少妇做爱| 人人摸人人色| 日韩黄色在线观看| 五月婷婷六月丁香| 丁香激情视频| 国产日韩一区二区三免费高清| 国产精品码ls字幕影视| 午夜精品人妻无码| 台湾成人综合网| 天堂中文字幕在线| 另类老妇性BBwBBw| 欧美日韩AV| 在线免费观看黄色网址| 日本韩国无码视频| 国产不卡视频| 国产精品网站在线观看| 国产拍拍拍| 青娱乐在线成人| 天天撸天天色| 免费电影日本黄色| 午夜福利视频网| 欧美不卡一区二区三区| 狠狠色婷婷7777| 乱码中文字幕日韩欧美在线| 国产三级偷拍| 一级黄色A片视频| 粉嫩护士小泬18p| 2025AV天堂| 免费无码婬片A片AAA毛片96| 日韩免费福利视频| 99精品国产一区二区| 在线国产日韩| 欧美日韩毛片| 亚洲AV高清无码| 国产一级一片免费播放放a| 乱子伦一区二区三区视频在线观看| 日B视频网站| 亚洲精品乱码久久久久久久 | 密臀福利导航| 蜜桃人妻无码AV天堂二区| 刘玥一区二区| 欧美亚洲日韩中文字幕| 国产成人在线播放| 免费操逼网址| 欧美综合婷婷| 成人小说一区二区三区| 九色PORNY自拍视频| 中文字幕激情精品| 福利视频免费观看| 日本中文字幕中文翻译歌词| 婷婷五月久久| 免费观看无码视频| 久久久18禁一区二区三区精品| 天天狠狠| 亚洲欧美激情视频| 久草com| 国产9熟妇视频网站| 乱伦三级| 日韩天堂av| 亚洲三级视频在线播出| 亚洲激情欧美| 成人午夜无码视频| 亚洲中文字幕久久日| 3D精品啪啪一区二区三区| 51妺嘿嘿在线电影免费观看| 欧美午夜精品成人片在线播放| 国产午夜成人福利在线| 亚洲婷婷丁香| 91社区成人影院| a级毛片在线观看| www.黄色在线观看| 91大神免费在线观看| 欧美韩日一区二区| 成人久久久久一级大黄毛片中国| 日本精品二区| 国产狂喷水潮免费网站www| 少妇高潮一区二区三区99| 91中文字幕在线播放| 去干网欧美| 亚洲一区中文字幕成人在线| 东北老女人性爱视频| 欧洲精品视频在线观看| 男人的天堂黄色| 精品无码一区二区人妻久久蜜桃 | 久操国产视频| 奇米99| 中文字幕第五页| 欧美黄色网视频| 婷婷六月色| 中文字幕日韩高清| 国产精品自拍视频| 国产免费AV片在线无码| 热99在线| 黄色在线免费观看| 91丨PORNY丨在线中文| 国产精品无码免费| 国产一级片免费观看| 麻豆天美传媒AV果冻传媒| 国产亚洲精品久久久波多野结衣 | 亚洲精品高清无码| 日韩一区二区AV| 91熟女偷情| 人人操大香蕉| 翔田千里无码流出两部| 亚洲另类图片小说| 三级片网站大全| 夫妻成人免费看片一区二区| 地表最强网红八月未央道具大秀| 臭小子晚上让你爽个够视频| 日韩性爱网站| 91婷婷射| 日韩在线精品视频| 天天久久| yjizz视频网| 91亚洲精品乱码久久久久久蜜桃| 日韩综合| 中文字幕精品1| 中文AV字幕| 狠狠躁夜夜躁人人爽人妻| 欧美日韩网| 91在线无精精品秘白丝| 午夜3D动漫AV| 人妻精品综合码| 日韩精品成人无码免费| 91愛爱| 久天堂| 亚洲免费中文字幕| 日P免费视频| 国产美女精品视频| 麻豆91在线| 99色亚洲| 露脸老熟女91集合| 亚洲资源在线| 天天日天天日天天操| 成人无码交配视频国产网站| adn日韩av| 日B免费视频| 性V天堂| 无码免费中文字幕| 天堂av在线免费观看| 蜜桃传媒一区二区亚洲AV| 欧美性爱免费在线视频| 91麻豆精品视频| 五月天婷婷影院| 中文资源在线a| 国产成人无码在线| 精品欧美片在线观看步骤| 欧美三级理论片| 国产激情综合| 午夜成人无码视频| aaa免费视频| 男女操逼视频网站免费观看| 亚洲自拍中文字幕| 国产电影一区二区三区| 日韩AⅤ无码一区二区三区| 亚洲图片在线观看| A片观看视频| 麻豆精品传媒2021md| 欧美一级黄色电影| 不卡无码中文字幕| 91久久香蕉囯产熟女线看蜜桃| 日本成人午夜福利| 日韩在线一| 欧美在线中文字幕| 俺也要操| 国产又大又粗又长| 亚洲va欧美va| 成人免费在线| 俺也去俺去啦| 这里只有精品在线观看| 国产精品视频一区二区三| 欧美国产性爱| 久久ww| 波多野结衣AV在线观看| 亚洲爱爱视频| 国产熟女AV| 亚洲成人网在线观看| 亚洲a级毛片| 狠狠干五月天| 久久99高清视频| www.豆花视频成人版| 大香蕉AV在线| 国产乱伦免费视频| 天天干天天操天天射| 亚洲色图欧美在线| 免费黄色A片| 婷婷五月伊人| 欧美精品网站| 国产黄色电影在线| 91久久久久久| 狠狠干老司机| 日逼网站免费观看| 成人黄色导航| 国产成人精品免高潮在线人与禽一| 黄色免费在线观看网站| 亚洲无码123| 中字一区人妻水多多| 中文资源在线a中文| 亚洲福利视频97| 日韩一区在线播放| 91麻豆视频| 中文字幕日本无码| 高清无码免费视频| 日韩在线一| 亚洲天堂在线观看视频| 黄色激情五月| 国产精品久久视频| 亲孑伦XXXⅹ熟女| 欧美成人无码A片免费| 五十路熟妇| av高清| 亚洲三级黄片| 99er热精品视频| 国产在线性爱视频| 91天天干| 91豆花成人社区| 高潮视频在线观看| 四川BBB嫩BBBB爽BBBB| 69av在线观看| 99热这里只有精品7| 伊人网在线视频| 成人日皮视频| 四虎2025在线51| 男人的天堂社区| 波多野结衣成人网站| 在线中文字幕AV| 亚洲国产成人精品午夜| 成人无码人妻| 天天操人人爽| 91日本| 大地中文资源5页的更新内容| 天天拍夜夜操| aaa三级片| 四川妇BBB桑BBB桑BBB| 草草视频在线观看| 国内自拍激情视频| 欧美精品第一页| YOUjiZZ欧美大全| 三级片无码视频| 欧美特级黄| 国产午夜成人福利在线| 91麻豆精品无码人妻| 欧美日日| 操逼电影网站| 日韩成人片无码| 青青草国产亚洲精品久久| 国产一级做a爱免费视频| 麻豆mdapp01.tⅴ| 囯产精品一区二区三区AV做线| 天天综合视频| 日韩啊v| 麻豆午夜福利| 日韩午夜成人电影| 成人黃色A片免费看| 婷婷性爱| 91AV免费在线观看| 无套进入无套内谢| 日韩在线视频中文字幕| 亚洲国产成人自拍| 黄片在线免费观看视频| 欧美日韩北条麻妃视频在线观看 | 天堂成人AV| 日韩黄片视频| 免费人成视频在线| 欧美三级在线| 欧美高潮喷水| 少妇搡BBBB搡BBB搡造水多,| 日韩成人无码AV| 777中文字幕| 亚洲va综合va国产va中文| 一级a一级a爱片免费免免高潮| 亚洲欧美日韩在线| 免费在线观看黄色视频网站| 中文字幕无码毛片| 欧美色图综合网| 亚洲黄色在线播放| 日本毛片在线观看| 久久国产一级片| 老熟女痒到不行-ThePorn| 亚洲天堂男人天堂| 欧美一区二区丁香五月天激情| 国产精品一区二区性色AV| 一区免费在线观看| 男女爱爱动态图| 人人草人人澡| 国产凹凸视频在线观看| 亚洲无码电影在线| 久久精品苍井空免费一区二| 精品日韩在线视频| 山东wBBBB搡wBBBB| 国产视频黄| 小早川怜子精品一区二区| 免费看黃色AAAAAA片| 中文字幕日本人妻| 成人网站视频在线免费观看| 精品欧美一区二区精品久久| 国产精品美女在线观看| aaa少妇| 2025天天干| 成人污污视频| 日韩人妻无码一区二区三区中文 | 韩国GOGOGO高清| 欧美日韩在线视频观看| 国产成人精品a视频一区| 国产口爆| 操逼在线播放| 国精产品一二三区| AAAA毛片视频| 骚逼操| 黄色无码视频在线观看| 超碰激情| 伊人天天干| 坏男人内射老太太| 久久久精品无码| 欧美亚韩一区二区三区| 一本色综合亚洲精品| 青青免费视频| 在线不欧美| 成人精品三级麻豆| 欧美+日韩+国产+成人+在线| 亚洲性爱网站| 精品一区二区三区免费毛片| 日韩欧美视频在线播放| 成人乱码一区二区三区| 一本道高清无码视频| 国产亚洲欧洲| 麻酥酥在线视频| 亚洲激情小说| 免费无码AV| 黄av在线| 免费的一级A片| 欧美一二三区| 污片网站| 欧美特级黄| 欧美日韩视频一区二区三区| 免费一级黄色| 久久肉| 国产av电影网| 黄片AV| 久久久久无码| 天天成人| 国产欧美综合一区| 亚洲成人无码在线| 久草免费电影| 黄总AV| 亚洲午夜AV| www.黄| 丰满老妇高潮一级A片| 97干视频| 91视频熟女| 午夜福利无码视频| 五月丁香婷婷在线| 国产精品精品精品| 人妖黃色一級A片| 国产强伦轩免费视频在线| 91国产视频在线观看| 欧美黄片一区二区| 亚洲日韩一区二区三区| 狼友视频在线观看18| 黄色成人网站在线播放| 欧美mv日韩mv国产| 国产一级AA大片毛片| 无码一二区| 日本A片免费看| 少妇搡BBBB搡BBB搡造水多/| 大陆搡BBBBB搡BBBBBB| np高辣调教视频| 精品国产乱码久久久久久郑州公司 | 中文字幕免费视频在线播放| 亚洲欧美一区二区三区在线| 亚州天堂网| 变态另类av| 国产乱码精品一区二区三区的特点| 中文字幕av久久久久久欧洲尺码 | 免费一级A| 麻豆91免费看| www.sese| 九九热国产视频| 91看片看婬黄大片女跟女| 乱伦乱伦乱伦中文字幕| 天美果冻麻豆国产一区| 一起操在线| 日韩A片免费看| 精品黄色电影| AV大全在线免费观看| 成人大战香蕉最新视频| 国产精品扒开腿做爽爽爽A片唱戏| 亚洲精品久久久久久久久久久 | 精品无码一区二区三区四区久久久软件 | 欧美黄色精品| 国产乱子伦真实精品!| 肏逼网站在线观看| 国产成人久久777777黄蓉| 3D动漫啪啪精品一区二区中文字幕| 人人鲁人人操| 老妇槡BBBB| 国产黄色a片| 免费看日韩视频| 亚洲秘无码一区二区三区av| 日韩色综合| 久久久久性| 中文资源在线观看| 91九色精品女同系列| 亚洲成人精品| 免费无码视频在线观看| 美女天天肏| 熟妇女人妻丰满少妇中文字幕| 无码专区亚洲| 日韩成人无码影片| 天天操免费| 亚洲无码视频观看| 国产在线观看一区二区| 国产精品国产精品| 欧美高潮视频| 欧美在线亚洲| 干干影院| A级毛片网站| a片在线免费观看| 国产乱子伦一区二区三精品| 亚洲欧洲AV| 日本成人电影在线观看| 亚洲午夜无码久久久| 国产区视频| 激情av在线观看| 中文无码在线| 婷婷五月天激情四射| 青娱乐毛片| 亚洲国产成人91PORN| 日本一级婬片免费放| 亚洲免费小黄片| 色小哥| 亚洲AV无码一区毛片AV| 亚洲性爱网站| 熟女中文字幕| 精品在线免费视频| 亚洲视频免费在线| 国产秘精品一区二区三区免费| 特色毛片| 日韩在线中文字幕| 欧美日韩色视频| 久久免费成人| 日韩精品一区二区三区四在线播放 | 亚洲AV无码成人专区| 麻豆一区在线| 免费的黄色视频网站| 安徽妇搡BBBB搡BBB| 开心色婷婷| 国产口爆| 国产黄色在线| 国产suv精品一区二区| 成人黄网免费观看视频| 国内成人AV| 欧美日韩成人在线观看| 99日韩精品| 西西WWW888大胆无码| 天天看高清无码| 2017天天射| 特级特黄A级高潮播放| 国产AV18岁| 99热国产| 亚洲AV在线观看| 日韩高清一区| 无码一区二区免费| 成人特级毛片全部免费播放| 波多野结衣东京热| 手机看片1024旧版| 影音先锋av资源在线| 一级a免一级a做免费线看内裤的注意事项| 91九色TS另类国产人妖| 伊人黄色视频| 琪琪色五月天| 少妇成人网| 人人操人人妻人人| 欧美成人乱码一区二区三区| 中文无码日本高潮喷水| 国产V精品| www.国产豆花精品区| 欧美伊人| 中文字幕在线观看第一页| 爱爱动态图| 亚洲狠狠操| 99久久婷婷国产综合精品草原| 影音AV| 久久一级视频| 无码人妻一区二区三区免费n鬼沢| 永久免费av| 无码窝在线观看| 久久久WWW成人免费精品| 免费做a爰片77777| 日韩成人网站在线观看| 欧美sesese| 国产亚洲三级| 熟女人妻在线观看| 熟女在线视频| 日韩A片在线| 人妻精品无码| 亚洲91网站| 色噜噜一区二区三区| 日韩精品无码电影| 色情网站在线| 99国产精品久久久久久久成人| 国产91无码| 午夜第一页| 成人黄A片免费| 中文字幕第23页| 北条麻妃91人妻互换| www.xxx国产| 一区二区三区水蜜桃| 亚洲AⅤ无码一区二区波多野按摩| 黄频视频| 91久久午夜无码鲁丝片久久人妻| 夜夜干天天操| 99久久国产热无码精品免费| 久久大香蕉网| 天天艹天天干| ChineSe露脸老女人| 97国产在线观看| 香蕉伊人视频| 熟女AV888| 亚洲中文字幕在线视频观看| 日韩精品一区二区在线观看| 99高清无码| 亚洲欧美日本在线观看| 丁香五月激情小说| 狠狠干狠狠色| 成人午夜无码视频| 一区二区三区无码在线观看| 在线天堂视频| 神马午夜51| 北条麻妃视频在线观看| a无码| 影音先锋人妻限定| 在线免费观看国产| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 亚洲无吗在线视频| 久久燥| 影音先锋亚洲无码| AV国产精品| 无码三级av| 日韩啊啊啊| 日B视频在线观看| aaa片| h国产在线| 亚洲AV秘无码苍井空| 免费AA片| 天干天干天夜夜爽| 激情操逼| 国产AV激情| 伊人婷婷色香综合| 最新国产第一页| 日韩一级中文字幕| 亚洲三级无码在线观看| 色综合99久久久无码国产精品| 国产人成| 91成人久久| 91中文字幕在线播放| 2025av在线| 国产A片免费观看| 久久激情视频| 国产内射在线观看| 日比视频| 日韩欧美在线中文| 呦呦av| 丁香视频在线观看| 午夜精品久久久久久久91蜜桃 | 26∪u∪成人网站| 亚洲无码在线免费观看视频| 色五月激情五月| 亚洲中文字幕在线视频| 亚洲AV无码乱码AV| 大香蕉精品一区| 黑人精品XXX一区一二区| 亚洲日韩欧美色图| 成人性爱视频网站| 精品久久电影| 成人免费在线观看| 久久er热| 好吊一区二区三区| 亚洲无码p| 久久五月天视频| 精品在线播放视频| 色天天干| 中文字幕无码日韩| 免费在线看黄网站| 精品三级| 最新va在线观看| 色99在线视频| 51国产视频| 3d啪啪动漫| 日韩大香蕉视频| 欧美一级黃色A片免费看小优视频 无码人妻精品一区二区三千菊电影 | 香蕉在线观看| 免费操逼电影| 天天射天天射| 青春草在线观看视频| 91精品国产综合久久久蜜臀酒店| 成人在线免费观看国产| 国产高清在线免费观看AV片| 波多野结衣精品无码| 黄在观看线| 色五月婷婷在线| 亚洲精品在线观看视频| 精品视频在线播放| 亚洲无码p| 久久久无码AV| 国产精品久久久久久久9999| AA久久| 刘玥91精一区二区三区| 国产一区二区三区四区视频| 免费一级婬片AA片观看| 亚洲中文字幕无码在线观看| 一级A片黄色| 最新国产精品| 亚洲性爱网址| 午夜av在线| 国产手机AV在线| 免费高清无码视频在线观看| 四川BBB嫩BBBB爽BBBB| 欧美性小说| 国产精品成人AV片| 青青在线视频| 国产一级在线免费观看| 美国黄色A片| 久久婷婷激情| 亚洲无码专区在线| 九九九九精品| 中文字幕高清无码在线播放| 黄色国产视频在线观看| 国产丝袜在线| 一本色道久久综合无码人妻| 草逼com| 高清的日逼| 中国a一片一级一片| 一级a免一级a做免费线看内祥| 91久久婷婷国产| 在线免费无码| 操屄视频播放| 深爱激情综合网| 国产sm视频| 9i看片成人免费视频| 97人妻精品| AV在线小说| 一本加勒比HEZYO东京热无码| 亚洲黄色影视| 五月婷婷五月天| 北条麻妃一区二区三区在线观看| 久久久久亚洲AV无码成人片| 特黄特色大片BBBB| 国产精品视频久久久| 91麻豆精品成人一区二区| 高清色视频| 三级毛片在线| 四lll少妇BBBB槡BBBB| 天天天天天天干| 亚洲欧美日韩性爱| 免费在线观看视频a| 91在线综合| 91精品人妻一区二区三区蜜桃欧美 | 97一区二区| 亚洲天堂视频网| 亚洲一区翔田千里无码| 中文字幕无码视频在线观看| 天天干天天射天天操| 五月丁香激情六月| 日韩群交视频| 三级片网站视频| 欧美激情在线| 日韩中文字幕无码人妻| 72成人网| 欧美亚洲日韩国产| 天天干天天干天天| 东京热观看| 色婷婷六月| 91久久久久久| 丁香婷婷色五月激情综合三级三级片欧美日韩国 | 欧美日韩无码| 色婷婷网| 欧美足交视频| 中文字幕操逼| 国产成人无码一区二区在线| 国产主播精品在线| 亚洲天堂在线视频播放| 欧美AA片| 在线黄网| 级婬片AAAAAAA免费| 天天中文字幕| 亚洲精品无码久久| 人人操人人干97| 丁香五月综合啪啪| 日韩有码在线观看| 99久久久| 在线观看中文字幕视频| 日韩久久网站| 国产免费AV在线| 91大神在线资源观看无广告| 国产A片大全| www.777av| 成人福利视频| 国内自拍欧美| 国产免费a片| 天天色色| 国产超级无码高清在线视频观看| 露脸老熟女91集合| 成人AV天堂| 国产精品色婷婷| 91丨九色丨国产在线| www.黄色在线观看| 人人操人人操人人操人人操人人操 | 中文无码AV| 国产精品毛片VA一区二区三区 | 欧美久色| 手机看片1024国产| 久久激情网| 在线日韩一区二区| 毛片黄色视频| 久久激情网| 国产黄色直播| 中文无码字幕在线| 91日韩欧美| 欧美一级做| 男人的天堂色婷婷| 日日干天天干| 天天操人人爽| 久久免费视频1| 一区二区无码视频| 婷婷五月伊人| 69AV无码| 国产视频一区二区三区四区| 国产在线观看你懂的| 第一福利成人AV导航| 久草黄色电影在线观看| 激情网站在线| 欧美一二| 美女插插| 成人免费三级| 黄色小视频免费看| 99精品一区二区三区| 高清无码视频18| 亚洲日韩AV无码专区影院| 国产无遮挡又黄又爽又色视频软件 | 夜色精品视频| 国产无码中文| 五月丁香啪啪啪| 伊人大香在线| 国产欧美一区二区三区四区| 手机免费Av| 怡春院欧美| 国产伦子伦一级A片免费看小说 | 欧美A片网站| 思思热在线| 91av一区二区三区| 色五婷婷| 亚洲日韩免费在线观看| 日韩在线成人视频| 超碰AV在线| 亚洲国产中文字幕在线播放| 亚洲中文字幕免费视频| 黄色色情小说| 黄色A片免费观看| 亚洲一区在线视频| 婷婷V亚洲V丁香月天V日韩V|