久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

線程上下文丟失與傳遞:從ThreadLocal原理到線程池場(chǎng)景實(shí)踐

線程上下文丟失與傳遞:從ThreadLocal原理到線程池場(chǎng)景實(shí)踐 1. 一場(chǎng)線上排查過(guò)后我重新理解了“線程上下文”有一次排查接口偶發(fā)超時(shí)日志里死活串不起一個(gè)完整請(qǐng)求。接口內(nèi)部明明打了入口日志、中間日志、出口日志可日志平臺(tái)上就是分不清哪些行屬于同一次調(diào)用。最初懷疑是日志框架配置問(wèn)題后來(lái)看到MDCMapped Diagnostic Context里的traceId在某些線程里是空的才意識(shí)到真正的源頭是線程上下文丟了。那一趟排查看下來(lái)收獲比解決超時(shí)本身大得多。線程上下文Thread Context不是什么高深概念它指的是線程在執(zhí)行期間可以隨時(shí)讀取的一組環(huán)境信息典型的包括日志追蹤ID、用戶身份、租戶編碼、事務(wù)連接、語(yǔ)言區(qū)域、時(shí)區(qū)甚至是某個(gè)業(yè)務(wù)臨時(shí)開(kāi)關(guān)。你可以把它理解成一個(gè)工位線程就是坐在這張工位上的工人工位抽屜里放著工具和資料只有這個(gè)工人自己能用別人動(dòng)手去拿就是越權(quán)。很多并發(fā)問(wèn)題表面上是線程安全、數(shù)據(jù)錯(cuò)亂、資源泄漏剝開(kāi)之后其實(shí)都是“上下文”在哪個(gè)環(huán)節(jié)被設(shè)置、被傳遞、被清理的問(wèn)題。這篇文章我會(huì)從底層原理講到線程池場(chǎng)景再到日志、事務(wù)、身份驗(yàn)證的真實(shí)落地最后給一套可以直接抄的上下文管理工具。適合所有寫(xiě)并發(fā)代碼、做中間件、排查分布式問(wèn)題的人讀。2. 上下文到底存在哪ThreadLocal底層工作原理2.1 Thread對(duì)象上的那張Map大多數(shù)語(yǔ)言都提供了線程私有變量的機(jī)制Java里就是ThreadLocal。很多讀者知道ThreadLocal能讓每個(gè)線程持有副本但底層怎么設(shè)計(jì)直接決定了你會(huì)不會(huì)踩內(nèi)存泄漏的坑。每個(gè)Thread實(shí)例內(nèi)部維護(hù)了一個(gè)ThreadLocalMap大致結(jié)構(gòu)是這樣的Thread.currentThread() - ThreadLocalMap線程自己的 - Entry[] table - 每個(gè)Entry的key是ThreadLocal對(duì)象value是你塞進(jìn)去的值也就是說(shuō)往ThreadLocal里set一個(gè)值時(shí)數(shù)據(jù)并沒(méi)有“存到”ThreadLocal對(duì)象本身而是存到了當(dāng)前線程內(nèi)部的Map里。ThreadLocal在這里更像一把鑰匙每一個(gè)線程的抽屜上掛著同一把鎖只有拿鎖的人才能打開(kāi)自己線程的抽屜。寫(xiě)代碼時(shí)你可能見(jiàn)過(guò)這種用法private static final ThreadLocalLong TRACE_ID new ThreadLocal(); public static void setTraceId(Long traceId) { TRACE_ID.set(traceId); } public static Long getTraceId() { return TRACE_ID.get(); }看起來(lái)是靜態(tài)變量全局訪問(wèn)實(shí)際上每個(gè)線程讀到的都是自己的副本。正因?yàn)門hreadLocal本身是static的可能被多個(gè)類加載器、多個(gè)線程共享所以Java對(duì)Entry的key使用了弱引用關(guān)于這個(gè)下面詳細(xì)講。但普通ThreadLocal只能做到“線程內(nèi)的私有變量”它并沒(méi)有解決“如何傳遞到其他線程”的問(wèn)題。2.2 弱引用和大坑為什么有人用完不remove就內(nèi)存泄漏Entry是ThreadLocalMap里的桶結(jié)構(gòu)key是弱引用WeakReference value是強(qiáng)引用。這里要特別看清楚兩個(gè)引用的區(qū)別keyThreadLocal對(duì)象的弱引用。如果外部沒(méi)有強(qiáng)引用指向ThreadLocal變量GC時(shí)key就可能被回收。value你實(shí)際set進(jìn)去的對(duì)象普通強(qiáng)引用。問(wèn)題來(lái)了如果key被回收但value還強(qiáng)掛在Entry里這時(shí)候entry就變成了“key為nullvalue有效”的臟數(shù)據(jù)。如果線程池的線程長(zhǎng)期存活大多數(shù)生產(chǎn)環(huán)境線程池線程是常駐的這些臟value就會(huì)一直堆在ThreadLocalMap里永遠(yuǎn)沒(méi)有機(jī)會(huì)釋放。我曾經(jīng)在一個(gè)長(zhǎng)時(shí)間運(yùn)行的服務(wù)里見(jiàn)過(guò)ThreadLocalMap里積累了上萬(wàn)個(gè)Entry里面全是過(guò)期請(qǐng)求的上下文對(duì)象內(nèi)存占用高得離譜。打開(kāi)內(nèi)存分析工具一看全是ThreadLocalMap的entry堆棧全指向某框架里的ThreadLocal。問(wèn)題就出在寫(xiě)入后沒(méi)有及時(shí)remove。順手說(shuō)一句set(null)并不能替代remove()。set(null)只是把value置空key還在remove()會(huì)直接刪除整個(gè)Entry包括key的映射。正確姿勢(shì)永遠(yuǎn)是在finally里調(diào)用removetry { TRACE_ID.set(traceId); // 業(yè)務(wù)邏輯 } finally { TRACE_ID.remove(); }2.3 為什么InheritableThreadLocal只對(duì)“新建線程”有效Java還提供了InheritableThreadLocal作用是在創(chuàng)建子線程時(shí)自動(dòng)把父線程的值復(fù)制一份給子線程。原理不復(fù)雜Thread類的構(gòu)造方法里會(huì)掃描當(dāng)前創(chuàng)建線程的ThreadLocalMap把支持繼承的項(xiàng)拷貝到新線程上。private static final InheritableThreadLocalString USER new InheritableThreadLocal(); // 在主線程里設(shè)置 USER.set(user-1001); // 在這里創(chuàng)建子線程子線程能get到user-1001 Thread child new Thread(() - System.out.println(USER.get()));這個(gè)機(jī)制有個(gè)非常重要的邊界條件它只發(fā)生在“線程創(chuàng)建”那一刻。如果你用的是線程池線程在池里早就創(chuàng)建好了后續(xù)提交的任務(wù)只是復(fù)用這條線程根本不會(huì)觸發(fā)新建線程的拷貝邏輯。更糟糕的是線程池復(fù)用時(shí)上一個(gè)任務(wù)塞到線程上下文里的值下一個(gè)任務(wù)照樣能讀到。我見(jiàn)過(guò)一個(gè)很經(jīng)典的翻車場(chǎng)景兩個(gè)請(qǐng)求A和B先后提交到同一個(gè)線程池。A請(qǐng)求設(shè)置了請(qǐng)求ID等于REQ-AB請(qǐng)求沒(méi)有設(shè)置。結(jié)果B的日志里打印出了REQ-A兩個(gè)請(qǐng)求的日志徹底混在一起。排查的時(shí)候光看業(yè)務(wù)代碼發(fā)現(xiàn)不了問(wèn)題得把執(zhí)行鏈路上的線程切換點(diǎn)全部梳理一遍。3. 線程池場(chǎng)景下的上下文傳播比想象中復(fù)雜得多3.1 線程池為什么丟上下文三個(gè)環(huán)節(jié)拆開(kāi)看線程池場(chǎng)景想保住上下文必須在三個(gè)環(huán)節(jié)都做對(duì)提交任務(wù)時(shí)把當(dāng)前線程的上下文快照保存下來(lái)。執(zhí)行任務(wù)前把快照放回執(zhí)行線程的ThreadLocalMap。執(zhí)行任務(wù)后清理執(zhí)行線程上的上下文避免污染下一個(gè)任務(wù)。public class ContextPropagator { private final MapThreadLocal?, Object snapshot; private ContextPropagator(MapThreadLocal?, Object snapshot) { this.snapshot snapshot; } public static ContextPropagator capture() { MapThreadLocal?, Object map new HashMap(); map.put(TRACE_ID, TRACE_ID.get()); map.put(USER_ID, USER_ID.get()); map.putIfAbsent(LOCALE, LOCALE.get()); return new ContextPropagator(map); } public Runnable wrap(Runnable task) { return () - { MapThreadLocal?, Object backup backupAndSet(snapshot); try { task.run(); } finally { restore(backup); } }; } private MapThreadLocal?, Object backupAndSet(MapThreadLocal?, Object snapshot) { MapThreadLocal?, Object backup new HashMap(); snapshot.forEach((key, value) - { backup.put(key, key.get()); key.set(value); }); return backup; } private void restore(MapThreadLocal?, Object backup) { backup.forEach(ThreadLocal::set); } }這里每個(gè)細(xì)節(jié)都有講究。為什么要backup再set而不是直接set因?yàn)閳?zhí)行線程上可能有自己原來(lái)的上下文直接覆蓋會(huì)丟失原有數(shù)據(jù)。為什么需要restore因?yàn)榫€程池線程是共享的不還原的話上一個(gè)任務(wù)留下的痕跡會(huì)串到下一個(gè)任務(wù)。這個(gè)包裝邏輯適用于ExecutorService、CompletableFuture、Async等各種異步執(zhí)行入口。3.2 最常見(jiàn)的坑一個(gè)請(qǐng)求的traceId傳染給所有請(qǐng)求日志鏈路追不到的問(wèn)題幾乎都是這么發(fā)生的業(yè)務(wù)代碼用了CompletableFuture.supplyAsync()或者框架的異步注解底層走的是公共線程池。提交任務(wù)時(shí)線程上下文還在主線程上任務(wù)真正運(yùn)行時(shí)換了個(gè)工作線程traceId沒(méi)有跟著過(guò)去。如果運(yùn)氣好目標(biāo)線程上沒(méi)有舊數(shù)據(jù)traceId就是null日志還能通過(guò)時(shí)間戳勉強(qiáng)推斷。如果運(yùn)氣不好正好復(fù)用了工作線程traceId就變成了上一個(gè)任務(wù)的日志直接串臺(tái)。排查這種問(wèn)題有個(gè)很笨但有效的辦法在入口、提交點(diǎn)、執(zhí)行點(diǎn)分別打印當(dāng)前線程ID和traceId對(duì)比一下就能看出在哪一步發(fā)生了線程切換。再往深看就是看有沒(méi)有執(zhí)行包裝器。一個(gè)有經(jīng)驗(yàn)的團(tuán)隊(duì)會(huì)在封裝的異步執(zhí)行器里統(tǒng)一做上下文透?jìng)鞫皇亲屆總€(gè)業(yè)務(wù)開(kāi)發(fā)自己去處理。否則每加一個(gè)異步調(diào)用就多一個(gè)漏配點(diǎn)。3.3 先理解原理再?zèng)Q定要不要引入專門的透?jìng)鞴ぞ攥F(xiàn)在業(yè)界已經(jīng)有專門處理上下文傳播的類庫(kù)比如TransmittableThreadLocal通常簡(jiǎn)稱TTL它解決了InheritableThreadLocal在線程池復(fù)用下的失效問(wèn)題。它的核心思想是在提交任務(wù)時(shí)對(duì)上下文做快照、在執(zhí)行前重放、執(zhí)行后復(fù)原同時(shí)還能處理線程池里任務(wù)并發(fā)、嵌套異步的情況。但我不建議一上來(lái)就無(wú)腦引入。先把手動(dòng)包裝Runnable/Callable的邏輯用熟明白capture - replay - restore這個(gè)閉環(huán)再看TTL源碼會(huì)輕松很多。而且不是所有上下文都值得透?jìng)飨駎raceId這種必要字段應(yīng)該無(wú)條件傳像數(shù)據(jù)庫(kù)連接、Spring事務(wù)這類跟資源強(qiáng)綁定的上下文絕不能靠著ThreadLocal硬傳否則跨線程事務(wù)會(huì)出大亂子。這個(gè)區(qū)別后面細(xì)講。4. 三大生產(chǎn)場(chǎng)景日志追蹤、事務(wù)綁定、身份上下文4.1 日志鏈路MDC是如何借ThreadLocal工作的日志框架的MDC本質(zhì)上就是一個(gè)基于ThreadLocal的Map實(shí)現(xiàn)。在你的logback或log4j2配置里加上%X{traceId}或%X{userId}日志框架在每次打印時(shí)去當(dāng)前線程的MDC里取值。想接入traceId標(biāo)準(zhǔn)做法是寫(xiě)一個(gè)Servlet過(guò)濾器或網(wǎng)關(guān)過(guò)濾器Component public class TraceIdFilter implements Filter { Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String traceId extractFromHeaderOrGenerate((HttpServletRequest) request); MDC.put(traceId, traceId); try { chain.doFilter(request, response); } finally { MDC.remove(traceId); } } }注意finally里的remove不能省。如果請(qǐng)求線程被復(fù)用下一條請(qǐng)求不清理日志就會(huì)把多個(gè)請(qǐng)求的traceId混到一起。這個(gè)坑就像反復(fù)揉皺的紙表面看是日志問(wèn)題實(shí)際是上下文生命周期管理問(wèn)題。4.2 事務(wù)和連接綁定的根源Spring的事務(wù)管理器為什么能在一個(gè)方法里讓多個(gè)數(shù)據(jù)源操作共享同一個(gè)數(shù)據(jù)庫(kù)連接就是通過(guò)ThreadLocal把連接對(duì)象和當(dāng)前線程綁定在一起。事務(wù)開(kāi)啟時(shí)連接被丟進(jìn)ThreadLocal同一線程中的后續(xù)數(shù)據(jù)庫(kù)操作從ThreadLocal里取出同一個(gè)連接參與事務(wù)事務(wù)結(jié)束提交或回滾后再把連接清掉。這里特別容易踩雷的是“跨線程事務(wù)”。比如你在一個(gè)事務(wù)方法里用了new Thread()或線程池去執(zhí)行SQL子線程從ThreadLocal里拿不到父線程綁定的連接自然就參與不了同一個(gè)事務(wù)。這跟很多人誤以為“只要方法加了Transactional就全鏈路事務(wù)”完全不是一回事。一個(gè)反過(guò)來(lái)的危險(xiǎn)場(chǎng)景是某個(gè)線程池線程在執(zhí)行完帶事務(wù)的任務(wù)后ThreadLocal里的連接沒(méi)有清理干凈下一個(gè)任務(wù)莫名拿到上上個(gè)任務(wù)的連接執(zhí)行了不該有的提交或回滾。這種問(wèn)題錯(cuò)誤信息往往很迷惑一會(huì)兒報(bào)連接關(guān)閉一會(huì)兒報(bào)事務(wù)狀態(tài)異常。4.3 用戶身份、權(quán)限、租戶的隔離多租戶系統(tǒng)里請(qǐng)求進(jìn)來(lái)后通常先識(shí)別租戶編碼然后把這個(gè)編碼放到ThreadLocal里后續(xù)所有數(shù)據(jù)源路由、緩存Key組裝、業(yè)務(wù)規(guī)則判斷都從ThreadLocal讀取。這個(gè)模式有個(gè)致命前提同一個(gè)請(qǐng)求的整個(gè)過(guò)程必須盡量待在同一個(gè)線程里。只要內(nèi)部出現(xiàn)線程切換租戶編碼就要顯式傳遞。否則就會(huì)發(fā)生“用戶A打開(kāi)A租戶頁(yè)面異步任務(wù)卻用了B租戶的數(shù)據(jù)源”這就不只是日志錯(cuò)亂了是數(shù)據(jù)錯(cuò)亂屬于線上事故級(jí)別。我見(jiàn)過(guò)一次真實(shí)故障就是因?yàn)橐粋€(gè)異步上報(bào)任務(wù)沒(méi)傳租戶ID所有租戶的數(shù)據(jù)路由到了默認(rèn)租戶好在發(fā)現(xiàn)得早沒(méi)有真正污染數(shù)據(jù)庫(kù)但排查過(guò)程非常痛苦。5. 一次上下文串臺(tái)的完整排查鏈路這個(gè)案例值得沉淀下來(lái)。現(xiàn)象是一個(gè)報(bào)表任務(wù)在某個(gè)時(shí)段內(nèi)偶發(fā)性出現(xiàn)數(shù)據(jù)歸屬錯(cuò)誤十分鐘前是A租戶十分鐘后同一個(gè)任務(wù)輸出變成了B租戶。沒(méi)崩潰、沒(méi)報(bào)錯(cuò)但數(shù)據(jù)就是錯(cuò)了。我的排查過(guò)程是這樣走的先看日志。任務(wù)入口和出口都打印了租戶ID對(duì)比發(fā)現(xiàn)出口的租戶ID有時(shí)候和入口不一致。這就說(shuō)明租戶ID在任務(wù)執(zhí)行過(guò)程中被改寫(xiě)而不是一開(kāi)始就錯(cuò)。給任務(wù)加了一段臨時(shí)日志打印每個(gè)關(guān)鍵步驟的Thread.currentThread().getId()。結(jié)果發(fā)現(xiàn)任務(wù)被執(zhí)行線程池切了過(guò)去同一個(gè)任務(wù)內(nèi)部的線程ID在變化。再跟蹤是誰(shuí)設(shè)置了租戶上下文??吹綐I(yè)務(wù)代碼里有這樣一個(gè)調(diào)用某個(gè)工具類的靜態(tài)方法里直接TENANT_HOLDER.set(tempTenantId);執(zhí)行完后沒(méi)有及時(shí)清理。于是形成了完整解釋第一次任務(wù)運(yùn)行時(shí)在當(dāng)前線程池線程上寫(xiě)入了某個(gè)租戶ID沒(méi)清掉。后續(xù)其他任務(wù)復(fù)用這個(gè)線程時(shí)沒(méi)有設(shè)置自己的租戶ID或者設(shè)置時(shí)被異常中斷導(dǎo)致下一個(gè)任務(wù)讀到殘留值。修復(fù)方案是三層業(yè)務(wù)代碼里所有設(shè)置上下文的入口統(tǒng)一收斂到工具類set之后必須finally remove。異步提交統(tǒng)一走封裝好的執(zhí)行器提交時(shí)做上下文快照?qǐng)?zhí)行完成后清理。線程池調(diào)度入口做兜底任務(wù)開(kāi)始前強(qiáng)制覆蓋目標(biāo)租戶ID任務(wù)結(jié)束后強(qiáng)制清理。排查這類問(wèn)題不能只盯著業(yè)務(wù)代碼要看整個(gè)調(diào)用鏈上的線程切換點(diǎn)和ThreadLocal生命周期。擺放一張自查表檢查點(diǎn)判斷方式是否存在線程切換入口與執(zhí)行點(diǎn)分別打印Thread ID上下文設(shè)置后有沒(méi)有清理搜代碼里的set和remove是否成對(duì)出現(xiàn)線程池任務(wù)是否共用統(tǒng)計(jì)重復(fù)線程ID執(zhí)行不同任務(wù)次數(shù)父線程上下文是否需傳遞看任務(wù)內(nèi)是否依賴入口線程的變量殘留值會(huì)不會(huì)被誤讀在每個(gè)任務(wù)開(kāi)頭強(qiáng)制set默認(rèn)值6. 自建一套可用的上下文管理工具如果不想依賴第三方庫(kù)完全可以自己維護(hù)一個(gè)輕量上下文工具。它的職責(zé)很單一提供線程內(nèi)的存取接口并提供異步任務(wù)包裝方法保證關(guān)鍵字段跨線程不丟。6.1 定義上下文模型public final class RuntimeContext { private static final ThreadLocalContextSnapshot HOLDER new ThreadLocal(); private RuntimeContext() { } public static void set(ContextSnapshot snapshot) { HOLDER.set(snapshot); } public static ContextSnapshot get() { return HOLDER.get(); } public static ContextSnapshot capture() { ContextSnapshot current HOLDER.get(); return current ! null ? current.copy() : ContextSnapshot.empty(); } public static void clear() { HOLDER.remove(); } public static Runnable wrap(Runnable task) { ContextSnapshot snapshot capture(); return () - { ContextSnapshot backup HOLDER.get(); HOLDER.set(snapshot); try { task.run(); } finally { if (backup ! null) { HOLDER.set(backup); } else { HOLDER.remove(); } } }; } }ContextSnapshot可以是一個(gè)普通POJO里面放traceId、userId、tenantId甚至是一張MapString, Stringpublic final class ContextSnapshot { private String traceId; private String userId; private String tenantId; public ContextSnapshot copy() { ContextSnapshot snapshot new ContextSnapshot(); snapshot.traceId this.traceId; snapshot.userId this.userId; snapshot.tenantId this.tenantId; return snapshot; } public static ContextSnapshot empty() { return new ContextSnapshot(); } // getter / setter 略 }6.2 和Spring集成一個(gè)任務(wù)提交入口實(shí)際項(xiàng)目里我更建議把任務(wù)提交入口統(tǒng)一封裝。比如提供一個(gè)AsyncTaskExecutorComponent public class AsyncTaskExecutor { private final ExecutorService executor Executors.newFixedThreadPool(16); public void execute(Runnable task) { executor.execute(RuntimeContext.wrap(task)); } public T FutureT submit(CallableT task) { ContextSnapshot snapshot RuntimeContext.capture(); return executor.submit(() - { ContextSnapshot backup RuntimeContext.get(); RuntimeContext.set(snapshot); try { return task.call(); } finally { if (backup ! null) { RuntimeContext.set(backup); } else { RuntimeContext.clear(); } } }); } }這套設(shè)計(jì)的核心思想是業(yè)務(wù)代碼永遠(yuǎn)不直接new線程、不直接提交裸任務(wù)而是統(tǒng)一走這個(gè)封裝過(guò)的執(zhí)行器。這樣上下文傳遞的邏輯只在一個(gè)地方維護(hù)未來(lái)更換底層線程池策略或者引入TTL時(shí)只需要改這一處。6.3 使用方式和效果在接口入口處設(shè)置上下文然后異步任務(wù)就能正常讀取ContextSnapshot snapshot new ContextSnapshot(); snapshot.setTraceId(traceId); snapshot.setTenantId(tenantId); RuntimeContext.set(snapshot); try { asyncTaskExecutor.execute(() - processReport()); } finally { RuntimeContext.clear(); }我在某個(gè)模擬項(xiàng)目里把這套方案接進(jìn)日志鏈路和多租戶路由后traceId正確率恢復(fù)100%租戶串?dāng)?shù)據(jù)的問(wèn)題徹底消失。需要注意這個(gè)方案維護(hù)的是“關(guān)鍵業(yè)務(wù)字段”它不是萬(wàn)能透?jìng)髌?。線程池里那些不屬于業(yè)務(wù)上下文的系統(tǒng)級(jí)變量不該通過(guò)這個(gè)通道傳遞。怎么說(shuō)呢線程上下文這門技術(shù)單看ThreadLocal很好理解難的是把它放進(jìn)真實(shí)的高并發(fā)、多線程池、跨異步鏈路的場(chǎng)景里。踩過(guò)坑、畫(huà)過(guò)線程切換圖、親手封裝過(guò)傳播工具之后你才真正理解它在整個(gè)并發(fā)體系里扮演的角色。希望這篇梳理能幫你少踩幾個(gè)我踩過(guò)的坑。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
人妻久热在线| 懂色综合久久久| 国产精品国产| 91是天天| 九月丁香综合网| 国产人妻精品一区二区三区秋霞| 五月婷色| 日韩在线观看字幕精品| 中国人高清www色视频免费| 久操九九九九| 久草网站免费在线观看| 久久这里| 婷婷在线视频| 在线播放一级无码视频| 欧美亚洲图片| 亚洲风情综合网| 亚洲天堂色图| 免费观看性欧美一级| 亚洲天堂五月天国产| yazhouzaixian| 伊人成人中文字幕久久网| 日本熟妇浓毛hdsex| 少妇内射视频| 少妇超碰在线| 欧美激情综合色综合啪啪五月| 中文字幕一区二区三区字幕| 2024黄色视频| 色香综合| 人伦四五区| 亚欧美天堂在线| 日本www操操操| 蜜臀在线视频| 久久久四区| 国产一区二区在线看| 素人无码中文字幕| 欧美少妇第一页| 六月丁香啪啪啪| 1禁看欧美黄片免费看| 超碰97欧美| 91美女视频。| 日韩欧美传媒一区国产| 国产91丝袜 在线播放| 亚洲国产中文字幕| 91色五月俺来也| 色婷网| 九九九色| 人妻中文字幕精品无码| 伊人专区一区二区三区| 国产第25页在线观看| 精品久久久久久无码| 免费视频一二三区| 国内毛片热久久思思热| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 日韩电影天堂视频一区二区| sss视频华人在线| 桃色五月天| 99久久网站| 新版天堂中文资源8在线| 欧美亚洲首页| 欧美成人亚洲精品| 男人的天堂啪啪啪啪啪蜜桃不卡| 牛牛aV| 国产又色又粗又黄又爽| a片 xxxx受爽视频| 91人妻少妇| 91伊人| 国产成年女黄特黄| 色婷婷网| 强免费黄色网址| 中国亚洲呦女专区| 毛片视频白嫩| 老鸭窝黄色视频网站| 伦理弟一页| 日韩精品操少妇| 一区二区首页| 欧美精品欧美精品系列 | 国产精品久久久久久久久久久久久久久久 | 在线看片国产精品每日更新| 9999免费精彩视频| 精品国产网站| 亚精品无码毛片一区二区三区| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 国产精品 久久久精品一牛| 强奸乱伦 亚洲一区| 在线观看免费视频国产| 啊v视频在线观看| 欧美日韩丝袜| 激情婷婷丁香| 人人妻人人爱人人玩| 欧美成人免费在线观看| 岛国免费黄色网址| 欧美中文字幕一区 | 久久精品国产96精品亚洲拳交| 天天天天天干夜夜夜夜夜操| 国产午夜无码片在线观看影视| 思思热在线| 欧美色图天堂网m| 免费国产| 女优大全 - 91n| 亚欧性爱无码| 91狠婷| 色天堂在线观看| 四虎av在线| 日韩在线国产字幕| 天天干天天操天天干天天操| 97色插| 春色综合免费| 日韩在线观看字幕精品| 久草婷婷| 熟女少妇视频| 日韩精品中文字幕二区| 亚洲和欧美裸体美女双飞视频| 国产精品伦理| 丰满的三级少妇欧美久久久| 欧美一级A片在线看视频性色| 97香蕉人人乳| 日韩免费簧片| 最新精品久久蜜桃| 成人无码在线超碰网| 午夜视频好爽啊| 国模一区二区三区| 国产精品一区在线播放| 91成人久久 | 色婷婷久久综合超碰| 国产精品熟女一区二区三区| 五月婷婷影院| 亚洲国产亚洲天堂| 精品国产一区二区三区四区在线看 | 九九草| 吻戏激情性巴克| 香一区二区三区| 后入精品| 中字乱伦AV| 日日干男人的天堂| 懂色中文一区二区三区| 色鬼在线综合| 中文字幕精品探花视频| 青青草吊丝| 黄色成人网久久久久久| 色综合99| 欧美欧美啪啪视频| 婷婷综合视频| 中文字幕美女91| 亚洲色综合| 在线电影亚洲色图| 九月丁香婷婷色| 色五月AV| 天天做天天爱天天爽AV| 91精品微拍福利| 久久人人妻| 极品色综合| 强免费黄色网址| 粉嫩av一区二区三区四季| 密乳无码| 亚洲人妻精品一区二区| 艳美熟妇先锋一二三区| 久久受www免费人成| 亚洲高清少妇| 粉嫩在线一区二区懂色| 亚洲欧美变态| www四虎| 国产在线综合福利网站| 在线观看午夜婷婷久久久久清性观看| 操屄不卡视频| 日韩精品色呦呦| 超碰地址97| 日韩欧美成人午夜福利| 国产视频第二页| 欧美综合骚| 亚洲精品一二区| 91色人| 混色激情av| 飘花国产午夜精品不卡| 91jk色拍| 国产人伦精品一区二区三区| 强奸乱伦麻豆| 青女偷拍网| 极品五月天噜噜| 亚洲 无码 偷拍| 男人干美女| 26uuu国产免费观看| 一本大道久| 午夜丁香| 日亚韩精品视频二区三| 麻豆 美女 丝袜 人妻 中文| 97在线无精品| 粉嫩国产精品久久粉嫩| 人看人人摸人人操| 飘花国产午夜精品不卡| 国产JDAV无码视频在线观看| 欧美日本不卡在线| 一本久久精品中文字| 成片免费播放| 国产h片在线观看视频| 狠狠爱夜夜| 97人人中文网| 狠狠干,狠狠操| 乱伦图一区| 老熟女91| 五月天欧美色图| 日韩美脚一区二区网站| 精品黑人一区二区| 日本精品网站在线中文| 欧美99999| 午夜精品久久久99热蜜桃的功能特点| 亚洲成人精品久久久| 香蕉人欧美综合| 中出人妻中文字幕91在线| 91在线限制级| 美女露胸露尿口| 亚洲精品日韩国产欧美| 日本免费一级AAA大片器| 婷婷人妻激情| 色婷婷日韩精品一区二区三区| 日本999精品| 亚洲综合888| 91亚·色| 日韩精品操少妇| 九九久久首页| 天天综合网~69| 激情综合二| 国产Av超碰| 秋霞怕怕片| 无码粉嫩白虎一线天b区| 亚洲精品欧美专业| 日韩色| 欧美色另类| 老熟乱一区二区三区四区| 老司机免费视频在线91| 久日91在线| 97国产亚洲中文在线| 色诱中文字幕| 无码视频一区二区| av东京热男人的天堂| 精品久久久久久久久久久久 | 毛片视频白嫩| 国产农村妇女精品一二区| 五月婷久久| 欧美精品99久久久**| 久久久国产av美女私房| 国内亚洲精彩视频在线| 激情抓乳插进去啪啪啪日韩| 美国人人操人人操| 亚洲AV成人无码一区二区三区在线观看| 国产大学生口爆吞精合集| 蜜乳AV一区| 久久精视频美日韩在线视频| 五月天婷婷成人网| 国产熟女一区二区丰满| 婷婷久草| 人妻色偷色噜| 天天操夜夜操| 天天插天天操天天摸天天射天天看| 操死我了嗯嗯嗯| 亚洲第一页欧美| 97一区二压| 精品无人区麻豆乱码1区2区图片| 精品九区| 日韩久久三区| 天天天天天天天天综合| 91亚洲欧美综合高清在线| 大香蕉伊人网WWWn0n| 日韩人妻精品中文字幕| julia国产在线 | 天天射日日干| 91深夜夜| 亚洲av夫妻操穴网| 60秒免费视频| 欧美国产精品| 涩涩五月天| 99操| 欧美人妻制服| 久久婷婷综合国际产色怕| 日本一级性爱| 欧美中字不卡| 91久久九九精品国产综合| 欧美成人午夜免费福利785| 日韩美女久久一区二区三区| 亚洲91综合| 日韩在线观看三级电影| 欧美极度丰满熟妇hd| 五月天色图| 偷拍99| 亚洲图片日本AⅤ欧美在线| 久久久蜜桃一区二区三区| 啊啊啊啊啊好舒服视频| 91精品无码久久久久久久| 国产高清精品福利| 久久久禁| 自拍偷拍第26| 久久久艹艹艹| 色九久| 婷婷久月| 三级网站超变态精品| 亚洲无码偷拍| 久久免费看高潮毛片韩国| 偷拍视频青青草在线视频| 97国产高清视频在线观看| 国产一级久久久| 欧美性第一页| 国产精品免费视频不卡| 密臀在线视频| 久热婷婷| 国产后入式在线观看| WWW黄片COM| 日本精品久久久久久久| 草草影院最新网址| 午夜婷婷| 美女久久久| 欧美91丝袜| 免费国产电影一区二区| 欧美性爱网97| 中文字幕一区二区三区高清| 亚洲一二三四区在线免费看视频| 丁香五月天激情网站| 天天操福利视频综合网站| 啪啪免费| 好涩综合| 美腿色图| 艹少妇网站| 60秒免费小视频| 欧美黄色大片在线观看| 天堂资源欧美| 五月天婷婷成人网| 99久久综合| 麻豆熟妇乱妇熟色A片在线看| www久久久| 97在线免费看视频| 国产女上位好爽在线| 日韩少妇无码| 亚洲大胆人体av| 亚洲第2页| 亚洲一区二区 麻豆传媒| 亚欧高清在线| 国产400孕妇孕交群| 色性欧美| 在线观看av区| 少妇熟女一区二区三区| 日本三级韩三级99久久| 五月天婷婷在线看| 国产女人9999| 97天天摸天天碰| 亚洲自拍天堂| 九七超碰| 亚洲熟久久| 91一区二区| 一级做a爰片性色毛片久久| 天天摸夜夜操视频| 免费黄色片。| 少妇综合| 免费视频观看60秒| 九九热在线精品视频| 99免费在线视频| 狠狠久久手机视频精品| 啊啊啊啊啊舒服| 中文字幕一区二区三区人妻少妇在线| 日va操| 日日不卡av| 欧美大香蕉97| 在线日韩视频| 婷婷五月天激情网| 日韩av无码网站| 大但人体久久久久| 午夜精品久久久久| 精品一区二区三区蜜桃臀赵总 | 色综合久久夜色精品国产天堂| 国产玖玖| 免费人成?大片在线播放| 在线免费观看高清无码视频| 欧美 亚洲 另类 综合| 久久久精品国产亚洲伊人| 成人性爱美曰韩| 超碰97人妻在线| 蜜臀久久99精品久久久久久成人小说| 免费超碰97久久| 国产九九久久久精品| 久/久精品99看9| 69天堂| 精品久操| 超碰在线日韩一区| 国产精品粉嫩福利在线| 黄呦呦在线| 国产精品天美传媒| 超碰久久中文| 999日韩中文精品观看视频。| 看一级黄色视频| 久久性爱大全| 国产精品一区二区 尿失禁| 亚洲国产成人精品999| 国产精品操| 亚洲丝袜二区在线| 国产三级中文字幕粉嫩| 97超碰热线| 久久久中文版| 人妻社区男人天堂| 四虎视频在线观看| 91少妇通奸网站| 1204av韩国| 久草资源在线视频官方总站日韩丝袜美腿 | 五月丁香婷婷啪啪| 91九色网| 91一区二区| 99精品久久| 国产精品老熟女一区二区| 午夜天堂啪啪| 欧美日韩国产中文精品字幕自在自线,| 五月激情在线| 精品91摸| 97欧美色综合| 97视频一区| 97亚洲色图| 91狠狠综合久久| 精品无码久久久久久久久果冻糖心| 男人天堂2019| 91P0RNY大屁股人妻| 日韩偷拍一区二区三区| 久久精品店| 蜜乳AV色欲AVAV无码| 91精品久久久久久77777| 天堂8在线新版官网| 最新国产亚洲精品精品国产亚洲综合| 久久精品一区二区三区不卡| 麻豆福利视频导航| 久热久操| 一区二区不卡视| 乱性AV| 家庭乱伦国产精品| 永久免费发布性爱网| 亚洲偷拍自拍在线视频| 欧美一区91大爱| 熟妇高潮精品一区二区三区下载| 欧美精品,四区。五区| 人妻精品一区二区| 亚州精品人妻一二三区| 这里只有精品97| 无码人妻一区二区三区免费九色| 在线国产福利网址导航| 91久精品| 久操视频在线| 东京热一区二区中文字幕| 青青在线视频日韩欧美| 无码高清少妇久久| 亚洲av乱伦色图网站| 欧美毛片在线网| 久久精品中文| 青娱乐国产剧情av一区| 国产91精品福利在线| 69人妻精品一区二区绯色| www老逼91| 很狠操| 精品日韩人妻视频| 69精品人人人人| 日韩超碰精品综合| 久草精品在线| 日本道久久综合色色| 亚洲精品97在线| 精吧天堂| 日韩 欧美 另类 人妻| 熟女丰满人妻一区| 亚洲成人帖图| 国产无马视频| 大香伊人在线一区| 国产精品一区二区三区四区五区| 中文字幕日本久久| 男人的天堂无码| 免费家庭乱伦视频| 97色碰| 91精品免费| a男人的天堂久久一级A毛片| 天天综合网~69| 98超碰欧美| 蜜臀AV网站| 亚洲淫色网中文| 青娱乐二区免费| 亚洲日产专区| 亚洲 欧美 色图| 色色色热| 亚洲97在线| 九九色热| 亚洲欧美色图片| 极品极品色影院| 亚洲涩图欧美| 国产又粗又长又爽又色| 91超碰在线播放| 北约熟女超碰| 素颜老阿姨乱情色| 中国国国产一级特黄毛片| 熟妇高潮一区二| 精品久久97观看在线视频| 大香蕉丝袜一级片| 78精品| 午夜免费视频1000| 91综合网| 日日夜夜骚| 亚洲精品国语在线播放| 亚州欧美另类| 日本三级韩国三级99| 久久久无码精品人妻二区 | 欧美91精彩| 思思热在线cao| 精品一区二区三区蜜桃臀www| 18禁美女裸体无遮挡啪啪| 97视频在线免费看| 91亚洲色人| 亚av顶级裸体一区二区三区四区五区| 日韩丰满熟妇| 女生久久网| 国产不卡精品91| jazzjazz国产精品麻豆| 曰韩少妇无码| 欧美激情总合网| 日韩成人性日韩成人性爱视频在线免费观看| 精品人人| 国产 日韩 另类 视频一区爱| 亚州,欧美在线| 女人爽到高潮久久久| 性爱乱伦视频免费| 96国产精品| 高潮内射在线| 美女被艹尤物视频| 9色国产精品一区粉嫩| 大香蕉综合久久| 亚洲精品男人的天堂| 黄色无码高清黄色无码网站| 60秒免费小视频| 国产精品久久99日日| 青青草大香蕉视频| 在线观看AV不卡| 国产精品亚洲天堂网址| 久久久一区二区| 韩国久久97| 亚洲?V无码专区在线电影| 欧美国产操逼| 任我爽视频在线观看| 中文字幕中文字幕一区二区| 久久午夜色播影院免费高清| 夜色97| 国产福利夜| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 精品久久在线区一区| 污污汅18禁网站在线永久免费观看| 亚洲男人的天堂va亚洲男人社| 黄色十八禁网站| 天天日日夜夜| 激情啪啪拍91| 尤物黄色在线观看网站| 精品免费一区| 香蕉综合网| 欧美极品少妇| 素颜老阿姨乱情色| 成人在线永久| 夫妻四区五区六区| 亚 欧 美 综合| 欧洲熟妇xxXx欧美老妇裸体| 两性色网| 日韩精品在线放| 伦理第一页| 久久久草草精品| 91n免费处女| 美女大乳久久久久久久女人18| www.狠狠干.coom| 激情综合网激情五月天| 5月婷婷6月六月丁香| 亚洲国产成人精品999| 日本操逼视频免费| 爱爱动态60秒| 久久人| 亚洲欧美不卡线| 欧美碰碰综合色| aV中文麻| 欧美黄页| 亚洲婷婷丁香在线| 欧中美三级一区二区三区| 欧美色交| 欧美性91| 国产综合色精品在线观看| 国产97在线视频| 国产精品操| 日韩在线观看三级电影| 青娱乐国产剧情av一区| 国产精品人妻无码久久久互動交流 | 一二三区视频在线观看| 91女色| 亚洲色阁| 欧美亚洲第一页| 无码最新| 乱伦av国产| 韩日性爱av| 伊人久操| 91超级碰碰碰| 91粉芽高清在线一区二区| 能看的AV| 2025亚洲男人天堂| 欧美高潮| 亚洲人久久久久日| 一区二区精品日韩欧美在线观看| 91精品久久久| 国产女人极品高潮毛片| 久青草影院| 欧美久久草熟女| 色大香蕉97N| 久久久久久久| 自怕偷自怕亚洲精品| 国产一区二区精品久久99| 色爱国产| 亚洲丝袜天堂| 国产精品午夜福利视频| 91精品久久久久| 熟妇人妻一二三区免费| 啪啪啪男女亚洲中文字幕99| 日本在线观看网址| 国产AV无码AV| 亚洲、日韩、综合、另类| 熟女高潮合集-永久久久-成人AV| 亚洲丨在线| 秋霞免费无码视频日韩A片| 久久久亚洲欧美综合| 婷婷综合激情| 丝袜无码a片| 亚洲中文字幕久久无码精品| 一区不卡在线观看av| 欧美综合区| 德国一二三不卡| 婷婷性网| 黄片aaaaa一区| 久操黄色视频| 国产精品在线免费| 人人人人插| 一区=区三区视频| 国产中文字幕在线观看| 欧美爆乳精品一区二区| 五月丁香六月激情| 99热大香蕉伊在线| 豆花视频操逼网址| 精品大久久| 国产丝袜一区二区三区| 午夜αv| 啊v视频在线观看| 操操操操操操| 亚洲97成人在线观看| 大香网伊人久久综合| 亚av顶级裸体一区二区三区四区五区 | 99热国产| 噜噜噜在线视频| 天天摸夜夜摸| 亚洲网站一区二区在线| 夜夜嗨一区二区| 校园春色亚洲色图| 三级片网站在线播放| 四季AV一区二区凹凸精品小说| 极品另类| 国产91美女高潮| 天天日天天干天天摸天天操| 中文字幕日本久久| 人妻无码一区二区三区久久99| 99亚洲国产精品色一区二区三区| 精品人妻一区二区免费蜜桃| av亚欧| 婷婷99| 91制服丝袜| 亚洲国产欧美中文永久| 久操免费电影| 九九性爱网| 成人九九| 91扒丝袜综合在线| 国产精品不卡av免费在线观看| 性感女人网页在线观看视频| 日本色色色网站免费看不卡| 亚洲日韩肥臀视频在线观看| 国产中出内射一区二区| 后入人妻一区| 操婢日韩| 精品女同一区| 强免费黄色网址| 久久青娱乐| 26uuu国产| 上特色A在线| 亚洲天堂人妻一区二区| 搡老女人911熟妇老熟女| 国产天天骚| 日韩性爱小视频| 精品乱码久久久久| 51一区二区三区| 日本好吊色视频| 亚洲av无线观看| 东京男人天堂| 免费9 1久久| 韩日性爱av| 亚洲交换| 宗合情欲网| 亚洲1区2区三区高清中文字幕| 五月天精品| 大香蕉免费中文| 黑人娇小av在线播放| 精品九九九九九九九| 人摸人人操人| 99国产精品自在自在| 2010男人的天堂| 伊人网免费视频| 操死我了啊啊啊| www.夜夜操| 2019精品国产无码成人| avav青青草久久夜| 国产精品青青草| 成人免费不卡在线视频| 午夜精品久久久| 男人的天堂在线| 日本有码影片下载| 国产亚洲美日韩Aⅴ中文字幕无码成人| 97K超碰在线| 97超碰色屌| 久久久97| 亚洲啪啪视频一区二区| 欧美亚洲手机在线| 中文字幕视频在线观看一区二区| 国产成人免费观看在线视频| 中文字幕三四区| 99最新日韩偷拍视频| 熟妇女人妻呻吟久久AV| 久久久久久AⅤ无码免费肉站| 日本操逼视频在线| 亚洲色图片区| 亚州色阁| 特级大荫道BBwBBwBBW| 欧美成人黄网色网站| 亚洲激情在线观看一区| 日韩99999| 久操| 91少妇香蕉久久精品| 亚 欧 美 综合| 国产精品无码在线| 情色图区| 风月影院男女十八禁| 精品久久在线区一区| 二男一女成人A片| 一级毛片电影免费看| 欧美五区| 精品福利视频| 激情婷婷五月天| 国产乱伦性爱区| 精品欧美乱码久| 麻豆区久久久久亚| 中文字幕在线第二页| 亚洲色悠悠久久88| 99爱久久视频频| 久久女人视频| 天天综合~91入口| 大胆91| 亚洲色色色| 日韩精品99999| 日韩av乱伦| 黄色视频特级毛片| 亚洲图片偷拍视频区| 性开放中文AV高清无码免费看| 欧美性爱一区二区| 久久九九97| 欧美人妖内射| 欧美加勒比| 日逼97| 久久久久久久| 好吊色综合| 狠狠爱夜夜| 淫荡网址| 一中国女人毛片水真多| 麻豆国产精品午夜视频| 欧美真人抽搐一进一出gif| 白嫩少妇| 最好看的中文字幕在线2018| av网站在线观看了| 国产剧情AV不卡在线观看| 首页中文字幕中文字幕免费| 国产又操| 天天操av懂色| 欧美在线色图| 国产丸一视频| 91操熟妇| 精品人妻久久久| 亚洲色人| 啪啪啪东京| 婷婷亚洲综合| 1024久久高清视频| 久久久久久波多野吉衣高潮| 超碰到97情色| 日韩精品 欧美激情| 国产精品不卡av免费在线观看| 极品欧美一区二区三区| 九月丁香综合网| 亚洲精品国产精品乱码不99| 麻豆啪啪啪视频| 暖暖精品二区三区观看| 青青草色插素人| 91精品久久久久| 91一区二区三区蜜桃| 最新日产中文在线麻豆| 日韩精品区二区三区不卡| 国产传媒一区日韩| 亚春色色| 日韩99精品视频综合区| 97色干| 亚洲蜜臀懂色| 九九九九九精品视频| 翔田千里无码一区| 欧美成人一区二区三区在线播放| 夜夜操91744565| 91熟女视频网| 摸奶性爱视频网站在线免费播放| 精品国产乱码久久久久久口爆网站| 操逼网免费无码视频| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲熟女综合一区二区| 最新国内自拍av免费| 五月丁香六月激情综合| 麻豆一区二区三区精品| 韩日欧亚a级| www.91逼逼.com| 九九热精品在线| 日韩三级性| www国产无码| 成人在线日韩| 狠狠做深爱婷婷久久二区| 国产精品一区二区三| 另类 日韩 熟女| 91最新综合| 久草成人| 久久综合激情| 日韩成人大片一区二区| 丝袜 亚洲 偷拍| 日韩强奸av| 人人妻人人狠人人| 97精品网站| 玖色AV| 国产熟女乱论| 国产精品久久久久中文字幕| 久草综合视频| 亚州AV无码国产精品| 精品久久久久久中文| 欧美亚洲国内自拍| 欧美一级二级三级| 熟妇操花| 9999伦理视频| 国产男女边吃边摸视频网站| 丝袜美腿欧美| 色综合加勒比| 亚洲成人碰碰| 日韩视频中文字幕| 女人爽到高潮久久久| 91nbbbbbb| 国产乱人伦AVA麻豆软件.| 久久久久久久久九九久孕交| 婷婷干黄色| 国产AV人人 夜夜人人澡| 丰满美女一级毛片在线播放| 欧美三级一级| 操逼操2| 骚乳在线| 亚洲密乳AV| 中国熟女91| 欧美人妻久久精品二区三区| 天天天操天天天爱| 乱伦日本色图AⅤ| 天天干天天中出av| 日韩黄色一区二区三区| 97久久国产亚洲精品超碰热| 亚洲精品无码少妇久久| 老熟妇一区二区三区| 91操人| 国内外激情在线| 一级特黄aaa大片在线观看成人一级片在线观看 | 97视频观看| 亚洲人成网站7777| 人人妻人人操人人乐| 青青免费在线视频一区| 国产乱人妻精品入口| 日本精品不卡一二三区| 夜夜高潮夜夜爽夜夜爱爱一区| 青青11操操操操操操操操| 无码不卡八戒| 97蜜桃综合| 国产精品制服丝袜清纯唯美| 啊啊啊啊,啊啊好多水| 91大胆欧美| 中文字幕AV乱伦| 天天性射网| 97精品国产97久久久久久户外免费| 色婷婷六月丁香七月婷婷| 日韩精品9区| 国产女人成人精品视频| 精品日韩| 成熟熟女国产精品一区二区| 激情综合网激情五月天| 成人五月天丁香激情综合| 999九九九九国产动| 色五月激情网| 久久久久亚洲?V片无码V| 天堂亚洲精品| 成人一区二区三区四区| 啪啪啪综合网| 97精| 超碰这里有精品| 国产激情综合五月久久| 亚洲精品乱码线路中文字幕| 日韩欧美久久婷婷网站| 亚洲欧洲日产国产综合网| 国内毛片无码一级毛片| 欧美一级A片不卡视频。| 玖玖久久久| 色九月综合| 国产一区二区三区影片| 伊人热综合| 亚洲精品蜜桃久久久| 中文在线久久字幕| 丁香六月婷婷综合| 亚洲视频中文一区| 男人综合网| 97精品在线| 啊啊啊快操我视频| 国产精品一区二区三区在线密挑| 国产一区二区视频在线播放| 日韩字幕一区| 加勒比综合网| 欧美性第1页| 9999伦理视频| 快点操死我| 五月婷婷丁香| a网站免费观看| 熟女人妇一区二区三区| 一本大道不卡一二三区| 亚洲无992tv| 日韩色香| 欧美午夜熟妇黑人精品91| 今日头条成人一区二区三区四虎精品| 丝袜AV一二三区| 免费黄色片子| 色婷婷综合视频| 国人欧美精品一区二区| 欧美亚洲尤物久久| 亚洲成aⅴ人片不卡无码| 无码精品久久久久久亚洲| 久久老熟女| 青青伊人这里只有精品| 日韩ab网| 狠狠图片青青草| 大香蕉综合久久| 欧美超碰96| 99热精品国产| 久久免费看高潮毛片韩国| 午夜欧美J进J出白浆流出久久久| 熟女丰满人妻一区| 私色综合网| 志村玲子视频一区二区| 国产又爽又黄| 国产精品久久久无码AV网站| 国产一区二区三区久久久精品| 国语对白露脸XXXXXX| 综合伊人激情| 国产精品高清2021在线| 九色精品视频导航1| 欧美精品成人在线播放| 久久一区二区三区入口| 亚卅熟女乱色| 射 色综合| 国产精品久久9| 91五月天| 东京热99999| 另类视频在线| 啊啊在线| 夜夜嗨老熟女AV一区二区三区| 国产搭汕a级片| 97综合国产| 国产一区二区三区白丝| 四虎国产精品永久地址入口| 在线v中文字幕一区二区三区| 国产成人精品日本视频| 天天欧美欧美亚洲网| 97蜜桃综合| 欧美国产操逼| 蜜区区视频79| 日本孕妇一区二区视频操逼免费看| 日本乱人伦片中文三区| 又粗又长又大国产不卡| 天天爽夜夜爽夜夜爽精| 性饥渴少妇av无码毛片| 国产亚州精品美女久久久免费| 国模精品一区二区三区苹果色戒| av在线浏览| 中文字幕综合人妻| 久久久蜜桃臀无码视频| 久久这里只精品免费福利| 亚洲精品日韩国产欧美| 亚洲日本成人动漫| 亚洲第91页| 亚州欧美另类| 性爱网站一区二区| 精品区国产区一区二区三区| 国产av高清版| 农村妇女精品一区二区| 久久东京热久久| 欧亚性爱在线视频| 天天操狠狠日夜夜干超碰撸com视频在线观看 | 亚洲宗合网| 免费国产视频| 久久精品毛片免费不卡| 国产av白丝| 日韩无码久久熟女一级片| 国产精品播放| 先锋色眉乱伦资源| 91欧美偷拍| 精品人妻一区二区蜜桃视频| {男男暴菊gay无套网站| 91麻豆va国产精品| 热久日综合| 亚洲综合97| 午夜大香蕉| 超碰1997| 亚洲精品成人动漫在线| 色婷婷成人| 玖色av| 两女互慰AV高潮喷水在线观看| 性色一线| 67914在线兔费成人视频| 一区二区三区成人高清视频| 天天肏美女| 综合亚洲欧美| 秋霞蝌科网日本一区| 欧美日韩亚洲高清不卡一区二区三区| 久肏视频字幕| 粉嫩在线一区二区懂色| 好吊色一区| 日本色色色网站免费看不卡| 亚洲图片欧美在线视频| 欧美激情亚洲情色| 亚洲色图尤物视频 | 国产精品久久久 | 中文字幕中文字幕一区二区| 亚洲影视综合网| 青草一区二区| 日本精品成人无码| 欧美第五页| 欧美久久伊人| www激情| 久热伊人99re| 国产一区二区三区久久久精品| a'v在线资源| 五月婷色| 91高清欧美| 国产精品熟女丝袜一区二区| 久久久99999久网站| 香蕉99秘 一区精品蜜桃臀| 五月天丁香网| 欧美91色| 久久香蕉国产线看观看猫咪av| 97爱b| 日日操丁香五月天| 日韩久草| 少妇干B| 91久久久久| 综合啪啪| 日韩精品三级| 欧美天天插| 国产精品久久久久久久久久久久| 99色视频| 亚州综合色| 99视频内射三四| 激情在线青青操| 五月婷婷无码| 亚洲欧美激情小说| 欧美|91色综合| 97色网| 欧美色图亚州激情| 亚洲欧洲无码bt精品合集| 久插综合| 免费超碰97在线观看| 加勒比伊人综合| JIZZJIZZ国产精品喷水| 草B在线| 天天综合色| 96超碰网| 亚州久久9| 國產尤物AV尤物在線觀看| 国产精品电| caorenqi shipin| 99婷婷一区二区| 亚洲AV资源| 久精品无码av一区二免费国产在线观看| 91男人综合| 精品一区二区啪啪啪| 中文乱码字字幕在线第5页| 超碰碰97| 欧美三级中文字幕hd| 97亚洲欧美| 97自拍一区| 欧美精品日韩一区二区| 9Ⅰ超碰| 亚洲宗合电影| 国产女人91精品嗷嗷嗷嗷| 中文字幕视频二区| 亚洲色图20p| 精品伊人久久久大香线蕉小说| 久久久久久9| 亚洲第91页 | 狠肏骚人妻| 操比国产| 91在线视频国产网站| 中文字幕第95页| 狼天天狼天天大香蕉| 日韩操逼HD| 国产精品96久久久久久| 精品网站99999| 在线 制服丝袜中出 人妻| 高清无码在线播放网站| av天堂加勒比| 亚洲欧美setu| 欧美九9 9 9| 色哟哟 日韩精品| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 亚洲最大AV网| 一区AV| 噜噜噜噜天天狠狠| 97日视频| 97人妻碰碰中文无码久热丝袜| 欧美亚洲一级在线观看| 成人国产二区三区在线,男女精品。| 啊啊啊啊视频免费| 超踫中文字幕| 国产树林里野战在线看| 韩国三级一线观看久| 日本一卡二区在线| 欧美变态激情网| 精品国产嫩穴视频| 大香蕉伊人久久| 黄色网址在线免费观看| 亚洲欧美国产中文视频| 啊啊啊啊免费视频| 日日A∨| 久久精品视频久久久| 国产亚洲色婷婷久久99精品91| 国产精品一级毛片不卡视| 国产精品露脸在线观看| 精品九九| 九九草| 久久国产精品一区二区| 另类图片五月天| 97频视在线| 9精品在线| 人妻一区二区三区| 六月婷激情福利天堂69| 91麻豆va国产精品| 国产 无码 一区二区| 青娱乐欧美激情一区二区| 天天看精品动漫视频一区| 久久久蜜桃臀无码视频| 视频二区美腿制服人妻欧美| 天天综合网合集91| 久久超碰亚洲人| 熟女丰满人妻一区| 殴美牲| 后X久久| 欧美激情亚洲色图| 久热久一区二区三区| 熟妇视频一区二区三区在线观看|