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

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

共 5923字,需瀏覽 12分鐘

 ·

2022-01-14 07:31

點擊關注公眾號,Java干貨及時送達??

來源:juejin.cn/post/7043423820543164453

  • 背景
  • 哪些問題會引起接口性能問題?
  • 問題解決
    • 1、慢查詢(基于mysql)
    • 2、業(yè)務邏輯復雜
    • 3、線程池設計不合理
    • 4、鎖設計不合理
    • 5、機器問題(fullGC,機器重啟,線程打滿)
    • 6、萬金油解決方式

背景

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

圖片

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

圖片

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

正文開始!

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

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

  • 數(shù)據(jù)庫慢查詢


    • 深度分頁問題
    • 未加索引
    • 索引失效
    • join過多
    • 子查詢過多
    • in中的值太多
    • 單純的數(shù)據(jù)量過大
  • 業(yè)務邏輯復雜


    • 循環(huán)調用
    • 順序調用
  • 線程池設計不合理

  • 鎖設計不合理

  • 機器問題(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ù)。但是這個方式需要接口的調用方配合改造,把上次查詢出來的最大id以參數(shù)的方式傳給接口提供方,會有溝通成本(調用方:老子不改?。?。

1.2 未加索引

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

show?create?table?xxxx(表名)

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

1.3 索引失效

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

圖片

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

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

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

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

其中xxxx是索引名。

1.4 join過多 or 子查詢過多

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

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

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

1.5 in的元素過多

這種問題,如果只看代碼的話不太容易排查,最好結合監(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ù)存儲架構?;蛘呤菍Φ讓觤ysql分表或分庫+分表;或者就是直接變更底層數(shù)據(jù)庫,把mysql轉換成專門為處理大數(shù)據(jù)設計的數(shù)據(jù)庫。這種工作是個系統(tǒng)工程,需要嚴密的調研、方案設計、方案評審、性能評估、開發(fā)、測試、聯(lián)調,同時需要設計嚴密的數(shù)據(jù)遷移方案、回滾方案、降級措施、故障處理預案。除了以上團隊內部的工作,還可能有跨系統(tǒng)溝通的工作,畢竟做了重大變更,下游系統(tǒng)的調用接口的方式有可能會需要變化。

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

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

2.1 循環(huán)調用

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

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

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

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

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

//?獲取結果
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 順序調用

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

圖片

代碼上看:

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?兩個任務都執(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兩個任務都執(zhí)行完成

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

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

3、線程池設計不合理

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

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

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

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

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

圖片

那么這個運行原理與接口運行時間有什么關系呢?

  • 核心線程設置過?。汉诵木€程設置過小則沒有達到并行的效果
  • 線程池公用,別的業(yè)務的任務執(zhí)行時間太長,占用了核心線程,另一個業(yè)務的任務到達就直接進入了等待隊列
  • 任務太多,以至于占滿了線程池,大量任務在隊列中等待

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

4、鎖設計不合理

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

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

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

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

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

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

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

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

6、萬金油解決方式

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

6.1 緩存

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

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

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

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

6.2 回調 or 反查

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

圖片

1.?SpringBoot天生自帶Buff工具類你都用過哪些?

2.?Spring Boot 如何解決多個定時任務阻塞問題?

3.?西安一碼通兩次崩潰,技術原因是什么?

4.?支付寶架構師眼中的高并發(fā)架構,真是絕了!

最近面試BAT,整理一份面試資料Java面試BATJ通關手冊,覆蓋了Java核心技術、JVM、Java并發(fā)、SSM、微服務、數(shù)據(jù)庫、數(shù)據(jù)結構等等。

獲取方式:點“在看”,關注公眾號并回復?Java?領取,更多內容陸續(xù)奉上。

PS:因公眾號平臺更改了推送規(guī)則,如果不想錯過內容,記得讀完點一下在看,加個星標,這樣每次新文章推送才會第一時間出現(xiàn)在你的訂閱列表里。

“在看”支持一下呀,謝謝啦??!

瀏覽 52
點贊
評論
收藏
分享

手機掃一掃分享

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

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产色视频一区二区三区QQ号| 亚洲无码电影网| 真实野外打野视频| 一级无码在线观看| 成人精品一区二区三区无码视频| 天堂在线观看AV| mm131亚洲国产精品久久| 北条麻妃无码在线播放| 亚州在线视频| 99久久99久久久精品棕色圆| 色婷婷在线综合| 国产小福利| 120分钟婬片免费看| 免费中文字幕| 人人射| 91资源在线| 91九色91蝌蚪91窝成人| 国产日产亚洲精品| 日韩无码123| 午夜福利澳| 黄片在线网站| 先锋成人影音| 天天爽天天| 乱轮少妇| 五月AV| 亚洲日韩第一页| 中文字幕+乱码+中文乱码电影| 欧美色图综合| 国产丝袜在线| 久久AV网站| 国产在线观看无码| 久久A级片| 国产亚洲无码| 国产最新在线| 欧美色成人免费在线视频| 久久xxx| 国产在线不卡| 日韩无码A片| 18禁网站禁片免费观看| 亚洲午夜精品视频| 日韩精品人妻中文字幕有| 国产草莓视频| 亚洲AⅤ无码一区二区波多野按摩| 欧美黄网站在线观看| gogogo免费高清在线偷拍| 四川少妇搡bbbb搡bbbb| 欧美性视频网站| 欧亚无码| 99精品在线观看| 精品国产av| 国产精品内射婷婷一级二| 加勒比无码高清| 人妻无码电影推荐| 手机看片1204| 91网站免费观看| 又大又黄又爽| 免费观看一区二区三区| 欧美亚洲三级| 粉嫩护士小泬18p| 大香蕉免费在线观看| 人妻少妇精品无码| 日韩中文字幕在线人成网站| 日韩欧美视频在线播放| 北条麻妃91人妻互换| 国产成人精品久久二区二区91 | 久久婷婷秘精品国产538| 成人在线视频网| 无码精品人妻一区二区三刘亦菲| 一级理论片| 三级高清无码| 亚洲视频国产| 一区二区三区四区免费| 操屄影院| 国产www在线观看| 九九成人视频| 一级a片在线观看| 超碰在线人人操| 色欲插插| 午夜av影院| 亚洲精品资源| 香蕉视频色| 91成人电影在线观看| 日韩成人综合| 日本欧美在线| 青青草视频在线观看| 成人无码精品| 操b网站| 成人无码在线观看免费视频| 中文字幕巨乱亚洲高清A片28| 人妻日韩精品中文字幕| 日本高清一区二区高清免费视频 | 丁香激情综合| 老司机午夜免费精品视频| 亚洲欧洲精品成人久久曰影片| 亚洲无码免费在线视频| 久久久WWW成人免费无遮挡大片| 羞羞涩漫无码免费网站入口| 精品国产乱码| 伊人大香蕉精品| 91三级片网站| 欧美国产综合| 久久精品黄色| 国产精品午夜福利视频| 高清无码波多野结衣| 亚洲AV无码乱码精| 欧美日韩99| 天天爽| 狠狠撸狠狠干| 青青草手机在线视频| www.蜜桃| 初学影院WWWBD英语完整版在线观看| 国产亚洲午夜久久久成人电影 | 在线观看日韩欧美| www免费视频在线观看播放| 学生妹毛片视频| 韩国精品在线观看| 男人的天堂一区| 午夜精品一区二区三区在线成人| 东京热免费视频| 国产操| 人人狠狠综合婷婷| 吴梦梦一区二区三区| 狼友视频免费| 三级片AV在线| 成人A片在线| 性爱AV在线| 99亚洲视频| 日本二区三区| 国产va在线观看| 国产高清无码免费| 国产综合自拍| 国产做受精品网站在线观看| 欧美色图亚洲另类| 黄色大片视频| 国产乱伦一区| 国产精品成人免费久久黄AV片| 羞羞视频com.入口| 麻豆91精品人妻成人无码| 中文字幕无码av| 伊人狼人香蕉| 大香煮伊在75| 午夜激情国产| 草逼视频免费看| 欧美久久视频| 亚洲啪啪| 无码午夜| 翔田千里高潮90分钟| 宅男看片| 国产一级a免一级a免费| 2019国产精品| 日本操b| 亚洲清高毛无码毛片| 国产黄色在线视频| 狼友初视频在线观看| 日区无码| 色999亚洲人成色| 欧美成人无码一区二区三区 | 亚洲色图片区| 成人无码日韩| 亚洲成人视频网站| 天天影视综合网免费观看电视剧国产| 靠比免费| 欧美v亚洲| 中文字幕北条麻妃| 奇米狠狠色| 亚洲一区在线播放| 99热这里有精品| 色老板免费精品无码免费视频| 大香蕉伊人网视频| 5D肉蒲团| 成人黄色视频免费| av黄色在线观看| 一区二区三区免费观看| 欧洲成人无码| 国产精品国产三级国产| 91.www91成人影视在线观看91成人网址9 | 亚洲AV成人片无码网站网蜜柚| 亚洲无码电影在线观看| 精品无码在线观看视频| 91欧美精品成人综合在线观看| 成人无码日韩精品| 亚洲另类色图| 亚洲一级黄色电影| 91丨露脸丨熟女精品| 大香蕉熟女| 99热在线只有精品| 人人妻人人爽人人精品| 国产AV福利| 99久久久久久久无码| 做爱视频网站18| 91日韩视频在线| 国产五月天婷婷| 天天视频黄色| 99香蕉视频| 大鸡巴影院| 天天日日日干| 久久国产99| 大香蕉网视频| 午色婷婷国产无码| 大香蕉网站视频| 亚洲中文字幕2019| 国产精品一卡二卡| 91精品婷婷国产综合久久韩漫| 四色婷婷| 青青久热| 国产一级a毛一级a做免费高清视频 | 五月丁香电影| 午夜久久| 国产精品一区二区三区四区| 久久高潮| 丰满人妻一区二区三区免费| 国产三级片在线免费观看| 国产免费AV片在线无码免费看| 国产资源网| 一级a免一级a做片免费| 日韩欧美精品在线观看| 伊人黄色| 无码中文综合成熟精品AV电影| 人人干国产| www.17c嫩嫩草色蜜桃网站| 亚洲午夜福利视频| 7777精品伊人久久7777| 三级片无码麻豆视频| 最新国产AV| 色第一页| 无码9999| 国产一级a毛一级a做免费高清视频 | 国产经典午夜福利视频合集| 99综合网| 色婷婷亚洲色| 无码不卡av| 水密桃网站| 91自摸| 久操免费在线观看| WWW久久| 久久精品中文字幕| 加勒比久久88| 在线观看日韩av| 欧美不卡在线| 亚洲综合伊人无码| 成人视频18+在线观看| 中文在线观看视频| 翔田千里被躁120分钟| 日本人妻在线观看| 国内自拍一区| 欧美级毛片高潮| 中文字幕精品视频在线| 久久久97| 脓肿是什么原因引起的,该怎么治疗| 99成人在线视频| 国产91精品在线观看| 日本黄色电影网站| 九一成人网| 欧美国产日本| 国产又爽又黄免费观看视频| 人妻18无码人伦一区二区三区精品| A片视频免费观看| 97爱| 中文字幕免费毛片| 亚洲国产天堂| 亚洲免费在线| 免费视频亚洲| 天天操人妻| 国产高清无码片| 五月天婷婷网站| 亚洲AV资源| 欧美精品一区二区少妇免费A片| 亚洲秘无码一区二区三区电影| 无码在线电影| 日本色色网站免费| 成人免费A片在线观看直播96 | 国产曰韩欧美综合另类在线| 中文字幕+乱码+中文乱码91在线观看 | 苍井空无码一区二区三区| 国产成人无码一区二区在线观看| 欧美a在线观看| 国产精品视频在线看| 国产五月天婷婷| 中文字幕av无码| 97色在线视频| 人人插人人爽| 国产黄片视频| 一级特黄A片| 水蜜桃视频免费观看| 91白浆肆意四溢456| 丁香花激情网| 人人操人人插| 玖热精品| 欧美XXX黑人XYX性爽| 大香蕉久久| 男人的天堂网页| 欧美国产日韩在线| 欧美喷水视频| 精品国产成人a在线观看| 欧美日韩在线免费观看| 国产高清第一页| 男人天堂无码| 日韩在线观看视频免费| 狠狠av| 国产美女被操| 欧美日韩日逼视频| 日逼大片| 天天射天天干天天| 一区二区三区四区视频在线| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 成人看片黄a免费看视频| 日韩精品一区二区三| 无码区一区二区| 一区二区三区不卡视频| 亚洲熟妇在线观看一区二区| 丝袜足交视频| 中文字幕亚洲中文字幕| 91人妻人人澡人人爽人人精| 秋霞精品一区二区三区| 无码秘蜜桃吴梦梦| 乱伦精品| 午夜免费网站| 精品无码一区二区三| 日本中文字幕精品| 亚洲制服在线观看| 俺去了无码| 精品国产欧美| 日韩免费高清在线视频| 午夜性爱视频| 大香蕉网址| 婷婷成人视频| av中文在线观看| 国产精品人人人人| 99久久久久久| 好逼天天操| 欧美一級黃色A片免費看| 五月激情黄色| 亚人精品中文字幕在线观看| 女人自慰在线观看| 逼逼网| 一区二区三区四区五区六区高清无吗视频 | 日韩精品一二三| 色色色色网| 国产成人精品二三区麻豆| 蜜臀av一区二区三区| 精品美女视频在线观看免费软件| 天美果冻麻豆国产一区| 不卡在线| 炮友露脸青楼传媒刘颖儿| 欧美成年人视频| 免费爱爱视频| 丰满人妻一区二区三区视频54 | 91无码高清| 女人的天堂AV在线观看| 欧美日韩高清一区二区三区| 亚洲综合社区在线| www.豆花视频成人版| 欧美成人18| 无码av一区二区| 国产乱伦视频| 婷婷综合久久| 玖玖爱AV| 北条麻妃在线中文字幕| 亚洲国际中文字幕在线| 欧美黄色免费网站| 人人爽亚洲AV人人爽AV人人片| 69婷婷国产精品| 国产精品久久久久国产A级| 免费色网站| 亚洲三级无码视频| 性满足BBWBBWBBW| 精品国产一级A片黄毛网站 | 久久久久久久91| 五月亭亭在线视频| 国产成人无码永久免费| 成人天天爽| 无码精品人妻一区二区三刘亦菲 | 综合色婷婷一区二区亚洲欧美国产| 天天爽天天做| 天天骑夜夜操| 苍井空精毛片精品久久久| 91人妻无码精品一区二区| 无码高清视频在线观看| 久久99精品视频| 精品久久无码| 黄色视频网站免费观看| 欧美一级A片在线观看| 成人在线网站| 91丝袜一区在线观看| 亚洲啪啪网站| 国产女人18毛片水18精| 欧美性爱免费在线视频| 久久午夜无码鲁丝片| 婷婷亚洲国产| 欧美日韩国产精品| 久久久精品网站| 欧美性爱超碰| 亚洲免费观看高清完整版在线| 亚洲天堂在线观看网站| 91探花视频| 嫩草国产在线| 成人无码一区| 中文在线无码| 91丨牛牛丨国产人妻| 欧美少妇视频| 国产成人黄色片| 丁香五月激情视频| 日本黄色视频在线免费观看| 大香蕉伊人网| 人人干干| 亚洲精品少妇| 少妇搡BBBB搡BBB搡澳门| 亚洲免费看黄| 欧美淫秽视频| 亚洲中文字幕影院| 啊啊啊亚洲| 麻豆国产91在线播放| 亚洲午夜精品成人毛片| 色第一页| 日韩va中文字幕无码免费| 高清不卡一区二区| 99在线免费观看视频| 在线网址你懂的| 欧美,日韩,中文字幕| 国产欧美一区二区三区四区| 黑人一区二区三区四区| 国产欧美日韩| 狠狠干五月天| 国产精品免费一区二区三区四区视频| 久久爱成人| chinese搡老熟老妇人| 91双飞会所双飞在线| 大鸡吧网| 免费观看黄色AV| 成人无码在线观看免费视频| 一区二区日本| 久草香蕉| 在线观看亚洲视频| 狠狠av| 亚洲一区无码在线观看| 99热18| 影音先锋国产av| 中国最大成人网站| 精品人妻一区二区三区-国产精品| 人与禽一级A片一区二区三区| 中文字幕福利电影| 天天天天天天操| 四虎综合网| 久久丁香五月婷婷五月天激情视频 | 91亚洲精品在线观看| 熟妇高潮一区二区高潮| 亚洲手机在线| 无码黄页| 一级a黄色片| 好吊视频一区二区三区四区| 99亚洲视频| 操美女91| 麻豆精品视频| 免费A片观看| 精品一区二区三区四区五区六区七区八区九区 | 青青草乱伦视频| 欧美亚洲系列| 69黄色视频| 国产精品久久久久久精| 婷婷五月18永久免费视频| 操逼无码视频| 亚洲成人视频在线免费观看| 欧美日韩免费在线视频| GOGO人体做爰大胆视频| 自拍偷拍AV| 日韩在线99| 欧美色性乐汇操日本娘们| 青青草国产亚洲精品久久| 婷婷五月天丁香在线| 中文字幕中文字幕一区| 乱子伦】国产精品| 天天中文字幕| 一区二区三区三级片| 日韩国产一区| 黄色视频小说| 国产日韩欧美91| 成人抽插视频| 自慰精品| 国产一区二区免费| 国产影视av| 人妻无码| 日韩中文字幕久久| wwwAV在线观看| 成人久久大香蕉| 黄色成人视频在线观看| 日韩无码www| 免费无码婬片AAAA片在线蜜芽| 青青操首页| 在线观看日本vs欧洲vs美洲| 日皮视频在线免费观看| 羞羞涩漫无码免费网站入口| 九九热毛片在线观看| 亚洲AV激情无码专区在线播放| 神马午夜精品91| 第四色色综合| 高清免费无码| 成人午夜视频在线观看| 操精品| 国产suv精品一区二区6精华液| 国产三级在线| 人人爽人人澡| 极品一线天小嫩嫩真紧| 亚洲国产综合AV在线| 久久夜色精品噜噜亚洲AV| 18禁亚洲| 黄片免费看网站| 青青综合网| 色色一级| 97无码精品人妻| 午夜av福利| 91蜜桃传媒在线观看| 五月婷婷俺也去| 亚洲视频一区| 人人妻人人爽人人操| 豆花AV在线| 成人小说亚洲一区二区三区| 亚洲国产成人精品午夜| 好吊视频一区二区三区四区| 淫淫五月天| 无码精品人妻| 波多野结衣视频无码| 五月丁香六月情| 天天爱夜夜操| 人人综合| 囯产精品99久久久久久WWW| 亚洲综合一区二区三区| 91麻豆免费看| 久久久精品电影| 人人操人人草| 国产黄色视屏| 无码蜜桃吴梦梦| 未满十八18禁止免费无码网站 | 在线观看免费高清无码| 日皮做爱视频网站| 东方av在线观看| 婷婷六月综合| 尤物在线免费视频| 成人黃色A片免费看| 色老板免费精品无码免费视频| 秋霞福利视频| 天天添天天干| 欧美五月激情| 久久婷婷婬片A片AAA| 东京热av一区二区| 日本三级AAA三级AAAA97| a在线| 一级黄色电影网| 九九激情| 麻豆91精品91久久久| 久久久久久久久久久久国产精品| 无套免费视频欧美| 婷婷五月丁香六月| 欧美日韩成人在线视频| 久久成人电影院| 国产精品视频在线免费观看| 九九热99视频| 亚洲aaa在线| 欧美视频操逼| 国产一区二区无码| 亚洲AV永久无码精品| 国产成人无码精品久在线观看| 色吧av| 亚洲午夜福利视频在线观看| 免费在线国产| 蜜挑视频一区二区三区| 久久久久久久久久久高清毛片一级| 97在线观看免费视频| 欧美毛片在线观看| 欧美性猛交XXXX乱大交HD| 人人妻人人爱人人| 日本家庭乱伦视频| 日韩无码专区电影| a无码| 操逼一级片| 啪啪视频免费观看| 日韩中文在线播放| 色吊丝中文字幕| 视色AV| 久久久久久久极品内射| 国产另类自拍| 亚洲欧美日韩黑料吃瓜在线观看| 99久久九九| 欧美成人自拍| 日韩三级在线观看| 青草国产视频| 亚洲视频欧美视频| 97精品人妻一区二区三区香蕉| 日韩无码A| 亚洲国产成人av| 成人手机看片| 正在播放亚洲| 日韩成人在线视频| 一级黄色片免费看| 波多野结衣AV在线播放| 夜夜夜操| 毛片在线观看视频| 人妻精品久久久久中文字幕69| 欧美生活片18| 午夜偷拍视频| 亚洲一区亚洲二区| 国产精品色色色| 免费日本A片| 国产婷婷色一区二区| 99视频在线| 91精品无码| 日本免费一级片| 国产精品成人AV片| 自拍偷拍成人视频| 欧美丰满老熟妇XXXXX性| 亚洲无线视频| 亚洲天堂视频在线观看免费| 亚洲小穴| 亚洲欧洲日韩综合| 国产免费www| 午夜ww| 无码AV电影在线观看| 无码国产精品一区二区性色AV| 亚洲视频99| 欧美一级黄片免费看| 四虎影库男人天堂| 免费看毛片中文字幕| 天天色免费视频| 大屌色片| 亚洲免费在线| 亚洲无码久久| 成人伊人网| 五月天婷婷丁香| 天天做天天爱天天高潮| 三级片久久久| 日韩无码AV电影| 9I免费看片黄| 久久亚洲欧美| 九九99精品| 人人操在线播放| av无码中文字幕| 刘玥91精一区二区三区| 日韩黄频| 亚洲有码在线| 91中文字幕+乱码| 91精品视频网站| 黄片一区二区三区| 91九色91蝌蚪91窝成人| 成人免费在线| 亚洲中文娱乐| 一本色道久久综合亚洲精品小说| 欧美成人网站在线| 三级片一区二区| 大肉大捧一出免费观看| 欧美黄色录像| 亚洲va中文字幕| 欧美一级特黄A片免费| 丁香五月大香蕉| 大黑人荫蒂BBBBBBBBB| 国产无遮挡A片又黄又爽小直播| 亚洲精品久久久久久久久豆丁网| 91视频国产精品| 激情丁香六月| 日韩有码电影| 色婷婷在线无码精品秘人口传媒 | 黄色电影天堂| 围产精品久久久久久久| 免费肏逼视频| 91色综合| 免费欧美性爱视频| 日本黄色视频网址| 国产肏逼视频| 婷婷视频在线| 五月天无码视频| 久久系列| 亚洲免费无码视频| 久久三级| 国产av一区二区三区| 丁香婷婷色五月激情综合三级三级片欧美日韩国 | 亚洲第一伊人| 亚洲第一黄色| 色色色色色色色色欧美| 亚洲图片激情乱伦小说| 黄色片免费视频网站| 免费一级黄色毛片| 国产综合色婷婷精品久久| www91久久| 国产精品一级A片| 亚洲图片中文字幕| 日本A∨在线| 俺来也俺去也www色官| 成人免费A片在线观看直播96| 日比视频网站| 要操逼网| 密臀av在线| 午夜福利10000| 在线免费观看AV片| 青娱乐99| 麻豆精品| 俺去也| 人妻japanesewoman| 国产91一区在线精品| 国产精品51麻豆cm传媒| 大香蕉99热| 欧美精品黄| 特级西西人体444www高清| 91大香蕉伊人| 人人看人人搂人人摸| 深爱激情网五月天| 婷婷九九| 玖玖精品| 在线免费看黄片| 精品久久久久久久| 北条麻妃一区二区三区在线观看| 欧美精产国品一| 日本色情在线| 天天草天天草| 亚洲无码AV网站| 五月天无码在线| 国产又爽又黄在线看视频| 色图欧美色图| 超碰日本| 内射视频网站| 中文字幕免费看高清| 怡红院爽妇网| 婷婷久热| 亚洲天堂网在线观看视频| 日本在线一区| 欧美性受XXXX黑人XYX性爽冫| 黄片在线免费观看视频| 伊人久久久| 国产精品国产伦子伦露看| 国产操逼免费看| 国产成人精品国内自产拍免费看 | 熟女一区| 日韩三级中文| 国产波霸爆乳一区二区| 久久波多野结衣一区二区| 精品无码人妻一区二区媚黑| 在线观看成年人视频| 亚洲三级片视频| 婷婷五月亚洲| 男人午夜AV| 久操手机在线| 日韩无码精品一区| 久久黄色精品视频| 成人久久网| 婷婷激情久久| 2025精品偷拍视频| 婷婷开心色四房播播免费| 五月天黄色电影网站| 五月天天| 一级片学生妹| 日本親子亂子倫XXXX50路| 手机免费AV| 成年人在线观看| 亚洲AV综合色区无码国产播放| 中文字幕理论片| 黄片视频在线播放| 这里只有精品久久| 少妇嫩搡BBBB搡BBBB| 97综合| 五月婷婷色欲| 一道本无码视频| 天堂在线观看av| 亚洲无码高清一区| 一级特黄大片录像i| 亚洲AV免费| 91成人毛片| 国产小福利| BBB搡BBB搡BBB搡BBB| 麻豆AV在线观看| www.91爱爱,com| 人人操人人爱人人拍| 色婷婷欧美在线播放内射| 亚洲人妻有码| 亚洲天堂AV网| 操逼大香蕉| 日韩在线观看| 亚洲视频综合网| 手机在线操B视频| 国产精品成人无码专区| 俺来也俺就去www色情网| 亚洲V| 中文原创麻豆传媒md0052| 欧美在线视频一区二区| 中国黄色学生妹一级片| 波多野结衣视频在线| 69av在线| 无码一级A片| 国产91探花精品一区二区| 激情深爱五月天| 毛片网站在线| 看操b视频| 无码国产精品一区二区性色AV| 欧美A黄片| 成人免看一级a一片A片| 蜜臀久久99精品久久久老牛影视 | 在线三级av| 成人一级a片| 西西444WWW无码大胆| 国产精品久久久久久久久| 国产欧美在线免费观看| 色噜噜人妻av中文字幕| 国产亚洲日韩在线| 91无码精品一区二区| 丁香色婷婷五月天| 亚洲免费小黄片| 色婷婷一区二区三区久久午夜| 国内自拍第一页| 在线日韩中文字幕| www.青草视频| 91丨九色丨熟女新版| 成人自拍视频在线观看| 懂色中国闺密偷情懂色AV| 国产一区二区三区四区五区六区七区| 黄色永久网站| 亚洲av在线免费观看| 驲韩在线视频免费观看| 无码人妻av一区| 亚洲精品中文字幕成人片| 91免费国产视频| 手机不卡黄色视频在线| 日日爱99| 小h片| 亚洲天堂精品在线观看| 2016av天堂网| 香蕉视频啪啪啪| 中文字幕2025年最好看电视剧 | 日韩精品人妻中文字幕有| 日韩人妻精品无码制服| 亚洲伊人av| 成人777777免费视频色| 麻豆视频一区| 天天日天天草| 国产精品久久77777| 河南乱子伦视频国产| 国产二级片| 曰本精品综合网在线| 欧美高清另类| 国产人人色| 91水蜜桃| 黄色小视频免费| 色碰碰| 日本黄色电影网址| 五月丁香婷婷久久| 91成人在线电影| 人人妻人人澡人人爽人人DVD| 免费AV成人| 亚洲第一成年人网站| 超碰2025| 国产A√| 一级色色| 亚洲午夜免费视频| 国产成人无码A片免费看| 性欧美一区二区| 三级AV网站| 99er热精品视频| 黄色一级aa片| 国产一区在线看| 亚洲无码视频一区| 99cao| 黄色视频日本免费| 成人性爱av| 亚洲国产熟妇综合色专区| 久久久久女人精品毛片九一| 热久在线| 大香蕉在线观看视频| 国产成人精品一区二区三区四区| 精品人妻无码一区二区三区四川人| 爱爱毛片| 99AV| 亚洲免费观看高清完整版| 日韩av免费| 91视频在线免费观看app| 国产黄色视频在线免费看| 91人人妻| 特黄一级A片| 日韩欧美操逼视频| 久久机热| 欧美AAA黄片| 亚洲无码成人在线观看| 无码秘蜜桃一区二区| 欧美国产在线观看| 黄色成人网站在线观看免费 | 天天色综| 国产精品久久7777777精品无码 | 爆草美女| 老妇性BBWBBWBBWBBW| 亚洲AV无码成人精品区久| 91精品国产偷窥一区二区| 久久久97精品久久| 一级大片免费看| jizz在线观看视频| 特一级黄A片| 午夜无码高清| 国产一级一片免费播放放a| 日韩色情电影| 成人av天堂| 国产粉嫩小泬白浆18p| 人人做人人做人人做,人人做全句下一| 人人草人人草| 国产一级A片免费播放| 超碰2025| 91大长腿美女花外围在线观看| 五月乱伦|