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

ARTICLE DETAIL

資訊詳情

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

Spring 面經(jīng)系列 · 第 9 篇(收官):跨域、防盜鏈、配置寫法、并發(fā)容量與事件機(jī)制

Spring 面經(jīng)系列 · 第 9 篇(收官):跨域、防盜鏈、配置寫法、并發(fā)容量與事件機(jī)制 Spring 面經(jīng)系列 · 第 9 篇收官跨域與防盜鏈、配置寫法、容量并發(fā)、批量插入、事件機(jī)制與源碼設(shè)計(jì)模式前面八篇走完了 Spring 主干Bean 生命周期、循環(huán)依賴、容器擴(kuò)展點(diǎn)、AOP、事務(wù)、MVC、Spring Boot、微服務(wù)。這一篇收剩下的八道題它們有個(gè)共同特征——不是純八股面試官問(wèn)它們時(shí)手里拿的是你的項(xiàng)目簡(jiǎn)歷?!盖岸苏{(diào)接口跨域怎么辦」「防盜鏈做過(guò)嗎」「100 萬(wàn)條數(shù)據(jù)怎么導(dǎo)」「你這服務(wù)能同時(shí)扛多少請(qǐng)求」「Controller是單例并發(fā)怎么處理」「讀配置有幾種寫法」「事件監(jiān)聽用過(guò)嗎」「源碼里有哪些設(shè)計(jì)模式」——這八問(wèn)的殺傷力不在知識(shí)點(diǎn)而在它逼你給出具體數(shù)字、具體類名、具體取舍。說(shuō)「用 CORS 就行」和「我用 Nginx 反代因?yàn)橐嫒堇蠟g覽器」是兩個(gè)層次報(bào)「8192」和「8192 是連接上限真正并行的是 200 個(gè)線程瓶頸在數(shù)據(jù)庫(kù)連接池」也是兩個(gè)層次。素材是 P07、P08、P10、P11、P13、P16、P41、P42 八個(gè)分 P。凡視頻給的具體數(shù)字我一律標(biāo)注「視頻口述未復(fù)現(xiàn)」。1. 跨域與防盜鏈一個(gè)管瀏覽器放行一個(gè)管資源訪問(wèn)這兩件事常被并成一句回答其實(shí)不在同一層??缬駽ORS -- 瀏覽器同源策略 -- 決定「誰(shuí)家前端能讀到我給的響應(yīng)」 -- 服務(wù)端只負(fù)責(zé)把響應(yīng)頭寫對(duì) 防盜鏈 -- 服務(wù)端資源訪問(wèn)控制 -- 決定「誰(shuí)在拿我的資源」 -- 需要真的攔下來(lái)1.1 先釘死「跨域只發(fā)生在瀏覽器」同源比協(xié)議、域名、端口作者補(bǔ)了二級(jí)域名不同、IP 不同也算跨域。值得記的是那個(gè)反問(wèn)跨域一定有異常嗎不一定。異常只在前端發(fā)生因?yàn)闉g覽器有同源策略后端RestTemplate請(qǐng)求別的域也是跨域但不報(bào)錯(cuò)——沒有瀏覽器就沒人執(zhí)行這條規(guī)矩。推出來(lái)的結(jié)論就是兩者的分界線服務(wù)端配 CORS 只是「給瀏覽器一個(gè)放行憑據(jù)」對(duì) curl、爬蟲、服務(wù)器間調(diào)用完全無(wú)效。想白嫖資源的人根本不看你的響應(yīng)頭。所以「配了 CORS 就等于安全」是錯(cuò)的作者也因此把防盜鏈單獨(dú)做成了一題。1.2 五種方式與各自的邊界方式寫法要點(diǎn)視頻口徑生效層限制與坑什么時(shí)候真用JSONP前端dataType指定 jsonp自動(dòng)帶一個(gè)隨機(jī)值的callback后端聲明同名參數(shù)接住返回callback(數(shù)據(jù))拼成的格式前后端都寫只支持 GET參數(shù)名兩端耦合改一處改兩邊只剩維護(hù)上古系統(tǒng)作者明確它已被 CORS 替代CrossOrigin打在某個(gè) Controller 或方法上后端注解一接口一注解量大了鋪不開只開放一兩個(gè)接口WebMvcConfigurer重寫「添加跨域映射」那個(gè)方法用注冊(cè)器按路徑前綴批量放行后端配置類全局配置類容易膨脹一批接口統(tǒng)一放行CorsFilter注冊(cè)一個(gè)CorsFilterBean過(guò)濾器層與其他 Filter 的先后順序會(huì)影響結(jié)果想在入口層全量解決Nginx 反向代理前端站由 Nginx 起舉例 8081帶約定前綴如/cors的請(qǐng)求轉(zhuǎn)到后端 8080接入層換部署拓?fù)湟嘏浔镜亻_發(fā)得靠 devServer 代理作者最推薦前后端代碼零改動(dòng)瀏覽器側(cè)還有個(gè)細(xì)節(jié)復(fù)雜請(qǐng)求會(huì)被請(qǐng)求兩次。瀏覽器一旦發(fā)現(xiàn)跨域就自動(dòng)附加請(qǐng)求頭復(fù)雜請(qǐng)求先發(fā)的第一次是OPTIONS探后端支不支持第二次才真正帶參。視頻強(qiáng)調(diào)這套「由瀏覽器決定」因此依賴瀏覽器版本支持作者口徑是 IE 不低于 10兼容矩陣未核實(shí)。再補(bǔ)一個(gè)真會(huì)被追問(wèn)的坑這條我核過(guò)源碼帶 Cookie 時(shí)要設(shè)allowCredentialstrue此時(shí)allowedOrigins不能寫*——CorsConfiguration直接拋IllegalArgumentException得顯式列 origins 或改用allowedOriginPatterns?!竵?lái)源全開 允許憑證」這個(gè)看著最省事的配法在框架層根本不成立。Q1跨域和防盜鏈?zhǔn)峭患碌膬煞N說(shuō)法嗎不是判定方向還是反的。CORS 是默認(rèn)禁止、顯式放行不在白名單響應(yīng)照樣發(fā)回去只是瀏覽器拒絕交給 JS 讀防盜鏈?zhǔn)悄J(rèn)允許、主動(dòng)攔截服務(wù)端自己判來(lái)源、身份或時(shí)間判不過(guò)就 403。兩者甚至?xí)ハ嗖鹋_(tái)——我見過(guò)服務(wù)端校驗(yàn)Referer白名單卻沒寫自家前端域名跨域通了、資源全 403。工程上比較穩(wěn)的分工是跨域放接入層訪問(wèn)控制靠鑒權(quán)、簽名與時(shí)效。1.3 三種防盜鏈本質(zhì)都是「提高破解成本」作者的場(chǎng)景很直白數(shù)據(jù)是網(wǎng)站的核心競(jìng)爭(zhēng)力爬蟲偷資源既壓服務(wù)器又損利益。他也給了這篇最清醒的一句「哪怕你再怎么防也只能增加破解的難度」——只要數(shù)據(jù)能被正常訪問(wèn)攻擊者就能偽裝成正常用戶。手段判定依據(jù)實(shí)現(xiàn)位置作者給的繞過(guò)方式Referer 校驗(yàn)請(qǐng)求頭Referer是否在允許來(lái)源不在直接拒Nginx 校驗(yàn)或 Boot 里聲明一個(gè)過(guò)濾器取頭判斷直接偽造RefererToken 校驗(yàn)登錄后下發(fā) token轉(zhuǎn)寫作 “GWT”疑為 JWT未核實(shí)每次攜帶缺失或校驗(yàn)失敗即拒后端攔截器攻擊者打登錄接口拿 token 再帶上時(shí)間校驗(yàn)響應(yīng)時(shí)給前端埋時(shí)間戳請(qǐng)求回來(lái)算差值作者口徑是「停留超過(guò)允許時(shí)長(zhǎng)舉例 300ms判為正常否則視為盜鏈」前端埋點(diǎn) 后端算差值每次偽造請(qǐng)求前sleep一秒共性是單點(diǎn)必破所以作者的落點(diǎn)有兩處值得記時(shí)間校驗(yàn)一定有誤判要疊加拖動(dòng)驗(yàn)證碼讓人證明是真人大廠再疊一層行為風(fēng)控——用大數(shù)據(jù)分析行為異常沉淀成黑名單每次請(qǐng)求過(guò)濾。合起來(lái)就是防盜鏈的真實(shí)定位分層疊加 持續(xù)對(duì)抗沒有銀彈。300ms 那個(gè)閾值方向在轉(zhuǎn)寫里含糊我按「間隔過(guò)短判為機(jī)器」理解屬筆者判斷。2. 讀配置的六種寫法只談寫法與選型加載原理與優(yōu)先級(jí)在 第 7 篇 §7 講過(guò)這里不重復(fù)。這題問(wèn)的是另一個(gè)層面同一個(gè) key 落到代碼里有六種寫法。#寫法粒度前提與坑典型場(chǎng)景1Value(${xxx.name})單個(gè) key所在類必須是 Bean配置里必須有這個(gè) key否則啟動(dòng)報(bào)錯(cuò)故要給默認(rèn)值${a:b}static/final不生效視頻口徑一兩個(gè)開關(guān)、閾值2ConfigurationProperties(prefixxxx)前綴下整棵子樹需可綁定的屬性結(jié)構(gòu)批量綁定作者原話一二十個(gè)字段不用寫一二十個(gè)注解3注入Environment調(diào)getProperty運(yùn)行時(shí)任意 key它本身就是 Bean直接裝配運(yùn)行時(shí)決定作者舉例配一個(gè)目標(biāo) class 加isEnable動(dòng)態(tài)控制某個(gè) Bean 是否生效4實(shí)現(xiàn)EnvironmentAware#setEnvironment同上容器回調(diào)賦值不靠注入寫組件的人自定義 starter、自動(dòng)配置類里取底層 Bean作者說(shuō)「耦合更低」5PropertySourceValue自定義外部文件作者明確這注解只吃.properties要讀 YAML 得配PropertySourcesPlaceholderConfigurerBean往里放YamlPropertiesFactoryBean指定外部 YAML全局配置之外還有獨(dú)立文件6JDKPropertiesInputStream任意文件與 Spring 無(wú)關(guān)無(wú)占位符無(wú) profile工具類、單測(cè)、容器還沒起來(lái)的早期作者的選型一句可用前三種最實(shí)用后三種都是「讀外部自定義文件」才動(dòng)。我再加一條新業(yè)務(wù)配置一律走ConfigurationProperties成組、可校驗(yàn)、IDE 能提示Value只留零散項(xiàng)。最容易出事故的是寫法 1 的兩個(gè)靜默失效——類不是 Bean自己new的、字段是static配置就是注不進(jìn)去且不提示。3. 容量題Spring Boot 可以同時(shí)處理多少請(qǐng)求作者開場(chǎng)就承認(rèn)這題有歧義這個(gè)判斷對(duì)。歧義在「同時(shí)處理」指哪個(gè)數(shù)能被接受的連接數(shù) -- maxConnections店里能坐多少桌 真正并行執(zhí)行的 -- maxThreads幾個(gè)廚師同時(shí)在炒 一秒吃下的請(qǐng)求 -- QPS 并發(fā)數(shù) / 平均耗時(shí)出菜速度3.1 四個(gè)參數(shù)與帶版本的默認(rèn)值視頻的比喻很好背Web 服務(wù)器是飯店線程是廚師正式 兼職連接數(shù)是店里能坐的桌數(shù)等待數(shù)是門口能排的隊(duì)伍。參數(shù)Boot 屬性名Tomcat 屬性官方默認(rèn)值飯店比喻最大線程數(shù)server.tomcat.threads.maxmaxThreads200正式兼職總數(shù)真正「同時(shí)處理」的量最小空閑線程server.tomcat.threads.min-spareminSpareThreads10常駐正式員工最大連接數(shù)server.tomcat.max-connectionsmaxConnections8192店里能坐的桌數(shù)最大等待數(shù)server.tomcat.accept-countacceptCount100門口能排多少隊(duì)連接超時(shí)server.tomcat.connection-timeoutconnectionTimeout文檔 60000ms發(fā)行版server.xml寫 20000ms排隊(duì)者的耐心默認(rèn)值不是我的印象是查的Tomcat 9.0 與 Tomcat 10.1 的 Connector 文檔四條一致Spring Boot 2.7 屬性附錄 同值。報(bào)數(shù)帶版本是這題的基本禮貌。一條請(qǐng)求的判定順序請(qǐng)求到達(dá) -- ① 連接數(shù) maxConnections 否 -- OS 隊(duì)列(acceptCount)再不滿直接拒 ↓ 是 ② 有空閑線程minSpare 都忙則擴(kuò)到 maxThreads -- ③ 不夠則進(jìn)線程池隊(duì)列 -- ④ 耐心用完 -- connect timeout3.2 視頻的答案和我的不同意見視頻的答法是從 Spring 的配置元數(shù)據(jù) JSON 里查默認(rèn)值得maxConnections8192、acceptCount100于是「8192 100 8292就是這題的答案」。查元數(shù)據(jù)這個(gè)動(dòng)作值得學(xué)但算法口徑我不認(rèn)同8292 是「被接受 排隊(duì)」的連接總量不是「同時(shí)處理」同一刻真正在跑業(yè)務(wù)的線程最多只有 200。只報(bào) 8292被追一句「那你的 200 個(gè)線程在干什么」就露餡。作者隨后壓了一輪視頻口述未復(fù)現(xiàn)演示配maxConnections30、acceptCount10、maxThreads20、minThreads10接口sleep2 秒壓測(cè)線程 100另配連接超時(shí) 300ms結(jié)果 140 請(qǐng)求里 40 成功、60 失敗異常率 60%。這組數(shù)字正好把四參數(shù)演完100 請(qǐng)求 -- 30 桌 10 隊(duì) 40 被接住 -- 其余 60 耐心只有 300ms、業(yè)務(wù)要 2s -- 全超時(shí) 40 里真正并行是 20 個(gè)線程 -- 另 20 個(gè)進(jìn)線程池隊(duì)列等前一個(gè)炒完他的收尾意見很實(shí)在這幾個(gè)參數(shù)在高并發(fā)應(yīng)用里肯定要調(diào)但要「結(jié)合硬件性能、網(wǎng)絡(luò) IO 模型、實(shí)際壓測(cè)與監(jiān)控」才能定最優(yōu)。Q2那這題面試?yán)锏降自趺创鹑?。先糾口徑三個(gè)概念不是一回事再帶版本報(bào)默認(rèn)值Tomcat NIO 連接器maxConnections8192、acceptCount100、maxThreads200、minSpareThreads10所以理論并行度是 200最后給真正的算法并發(fā) ≈ QPS × 平均響應(yīng)時(shí)間一個(gè) 200 線程、單請(qǐng)求 100ms 的服務(wù)理論吞吐就在 2000 QPS 附近而實(shí)際瓶頸通常在下游數(shù)據(jù)庫(kù)連接池、遠(yuǎn)程調(diào)用、GC。收尾一句「我們項(xiàng)目實(shí)測(cè)是……」比背 8292 有效。至于參數(shù)怎么調(diào)到最優(yōu)我的態(tài)度和作者一致點(diǎn)到為止比硬講 IO 模型安全。4. 線程并發(fā)Bean 那半在第 1 篇這半講處理鏈路分工先說(shuō)清第 1 篇 §6 講「單例 Bean 的字段怎么被并發(fā)讀寫」第 6 篇 §2 講「控制器單例的狀態(tài)問(wèn)題」。P16 是緊接著追問(wèn)下來(lái)的——除了把成員變量挪進(jìn)方法還有什么辦法視頻給了四種我按代價(jià)排方案做法為什么就安全了代價(jià)消滅狀態(tài)變量只聲明在方法里每線程一個(gè)棧幀無(wú)共享幾乎為零首選換多例Scope(prototype)線程一、二各拿一個(gè)新實(shí)例操作自己那份每次走完整創(chuàng)建鏈、容器不留引用被單例持有則等于白配ThreadLocal字段包成ThreadLocalset賦get取兩條線程雖共用同一個(gè)單例但值綁在各自線程上必須清理線程池復(fù)用會(huì)串?dāng)?shù)據(jù)同步鎖synchronized方法或代碼塊線程二被擋在外面等前者return釋放鎖才進(jìn)并行變串行影響吞吐量視頻原話要記的是這四種解法暴露的判斷力多例把并發(fā)壓力換成了創(chuàng)建開銷同步鎖把接口吞吐手動(dòng)砍成 1。4.1 線程和狀態(tài)在哪兒相遇這題的深度在這張圖Tomcat worker 線程 -- Filter -- DispatcherServlet -- Controller單例 -- Service單例 -- JDBC / 遠(yuǎn)程調(diào)用 一條請(qǐng)求 一條線程從頭走到尾同步阻塞模型單例 Controller/Service 是全進(jìn)程共享的協(xié)作者而請(qǐng)求級(jí)狀態(tài)本來(lái)就該住在每請(qǐng)求一條線程上。所以 Spring 自己就是ThreadLocal的重度用戶請(qǐng)求上下文RequestContextHolder第 6 篇點(diǎn)過(guò)、事務(wù)與那條連接的復(fù)用TransactionSynchronizationManager第 5 篇 §5、語(yǔ)言區(qū)域LocaleContextHolder、AOP 暴露的當(dāng)前代理exposeProxy第 4 篇。一句話理解框架用線程隔離的上下文放請(qǐng)求級(jí)狀態(tài)用無(wú)狀態(tài) Bean 放協(xié)作者兩者配合才讓單例 Bean 在高并發(fā)下成立。這才是「Spring 怎么處理并發(fā)」的答案。4.2 ThreadLocal 的兩條風(fēng)險(xiǎn)線一是泄漏與臟讀。線程池里線程不銷毀跑完一個(gè)任務(wù)接著跑下一個(gè)上一次的 value 還掛在ThreadLocalMap上既占內(nèi)存連帶其引用的對(duì)象圖又能被下個(gè)請(qǐng)求讀到。JDK 17 文檔 能核到的表述是「線程消失后它的 thread-local 副本才會(huì)被回收除非還有其他引用」——反過(guò)來(lái)說(shuō)線程不死清理只能靠你。寫法沒得商量try { ... } finally { HOLDER.remove(); }或者別自己造用框架給好的上下文。二是異步鏈路踩空。Async方法、DeferredResult、自己提交進(jìn)線程池的任務(wù)都跑在另一條線程上前面那套上下文一律拿不到。這個(gè)坑我在SimpleApplicationEventMulticaster的 javadoc 里看到同一邏輯的官方表述設(shè)了異步 executor 后調(diào)用方不再阻塞但異步執(zhí)行不帶調(diào)用線程的事務(wù)、類加載器等上下文除非 executor 支持。解法是把數(shù)據(jù)當(dāng)參數(shù)傳或用TaskDecorator復(fù)制上下文ThreadPoolTaskExecutor確有這個(gè)字段其余未逐行核對(duì)。5. 工程性能線程池把 100 萬(wàn)條插入從 90 秒壓到 17 秒P08 全程在給數(shù)字均為視頻口述筆者未復(fù)現(xiàn)做法關(guān)鍵配置視頻里的耗時(shí)單線程循環(huán)批量插 100 萬(wàn)無(wú)并發(fā)90 多秒接近 100切 100 份 × 每份 1 萬(wàn)逐份異步批量保存線程池核心 32 / 最大 6616 核17 秒左右繼續(xù)加線程核心 100 / 最大 20016 秒幾乎沒變第三步才是重點(diǎn)作者結(jié)論一句可背「線程并不是越多越好改善不大反而浪費(fèi)資源這些資源該留給別的業(yè)務(wù)」。5.1 抽成可復(fù)用套路造數(shù)/讀源 -- 切片每片 1 萬(wàn) -- 線程池逐片提交 -- 每片一次批量寫 countDown -- latch.await() 收口 -- 統(tǒng)計(jì)耗時(shí)切片大小一片對(duì)應(yīng)一次批量寫。太大容易撞報(bào)文長(zhǎng)度限制和長(zhǎng)事務(wù)max_allowed_packet的具體值未核實(shí)太小則網(wǎng)絡(luò)往返占大頭。用CountDownLatch收口計(jì)數(shù)等于片數(shù)這里是 100每份保存完countDown()主線程await()到全部異步線程跑完再統(tǒng)計(jì)耗時(shí)。我補(bǔ)一句await()不配超時(shí)一個(gè)卡死的任務(wù)會(huì)讓主線程永遠(yuǎn)掛著。線程數(shù)按任務(wù)性質(zhì)定作者先分兩類——IO 密集讀文件、走網(wǎng)絡(luò)會(huì)阻塞、CPU 反而閑與 CPU 密集數(shù)據(jù)處理、排序、分析CPU 滿載并判定操作數(shù)據(jù)庫(kù)是 IO 密集于是核心線程按核數(shù) ×2他補(bǔ) 1 是「防不可預(yù)料的阻塞時(shí) CPU 能切給多余線程」16 核給 32/33。他講最大線程數(shù)時(shí)前后不一先說(shuō)四倍又說(shuō)「也就是核心的兩倍66」我按 66 理解成 2 倍加余量這類公式在面試?yán)镎f(shuō)「按任務(wù)類型定、壓測(cè)收口」更穩(wěn)。Async要配自定義線程池作者口徑是「Async默認(rèn)不推薦直接用但在 Boot 里太方便只要把自定義線程池 Bean 設(shè)成它用的線程池就沒問(wèn)題」。他還點(diǎn)了ThreadPoolTaskExecutor與 JDKThreadPoolExecutor的區(qū)別核心數(shù)、最大數(shù)、阻塞隊(duì)列、空閑等待、拒絕策略都有額外能給每個(gè)線程設(shè)名字前綴——排線上堆棧時(shí)這條特別值。5.2 它和事務(wù)一致性是什么關(guān)系這段必須主動(dòng)交代。任務(wù)丟進(jìn)線程池后執(zhí)行線程變了事務(wù)上下文就斷了這 100 份是 100 個(gè)互不相干的事務(wù)完全可能 99 份成功、1 份失敗。多線程事務(wù)為什么保不了一致、那「兩句代碼」的解法第 5 篇 §7 已成篇P39、P03不重復(fù)。所以套路的定位要說(shuō)準(zhǔn)它適合初始化導(dǎo)數(shù)、離線灌數(shù)據(jù)、報(bào)表落庫(kù)這類「能重跑」的任務(wù)不適合業(yè)務(wù)寫單。真要在業(yè)務(wù)里并發(fā)寫得配三件事——每片冪等重跑不產(chǎn)生重復(fù)、失敗記錄與重試、斷點(diǎn)續(xù)跑或者讓一片要么全成要么全敗靠重跑收斂。別指望線程池替你保住 ACID。Q3為什么開到 100、200 反而不比 32 快因?yàn)槭找鎭?lái)源不是線程數(shù)而是把串行等待的 IO 時(shí)間重疊掉。100 份數(shù)據(jù)、32 并發(fā)已經(jīng)把網(wǎng)絡(luò)和磁盤等待填滿再加線程只是讓更多線程一起去堵同一個(gè)瓶頸——數(shù)據(jù)庫(kù)連接池上限、單條 INSERT 還是 multi-values、MySQL 服務(wù)端的日志與索引維護(hù)。前 32 個(gè)是重疊等待后面的是排隊(duì)等待切換開銷和鎖競(jìng)爭(zhēng)還往上加。筆者補(bǔ)一條常被拿來(lái)同類優(yōu)化的項(xiàng)Connector/J 的rewriteBatchedStatements視頻沒提默認(rèn)值與效果未從官方文檔核實(shí)。作者的落點(diǎn)是對(duì)的參數(shù)靠壓測(cè)加上線后監(jiān)控來(lái)定大項(xiàng)目還要上動(dòng)態(tài)線程池——參數(shù)改了不可能重啟而線上線程池的使用情況對(duì)程序員是黑盒得在用量觸閾值時(shí)告警下發(fā)那套可看 第 8 篇的配置中心如 Nacos。6. Spring 事件機(jī)制進(jìn)程內(nèi)解耦的那一檔作者開場(chǎng)替讀者說(shuō)了實(shí)話大部分同學(xué)不知道事件監(jiān)聽因?yàn)閷W(xué) Spring 時(shí)不講、寫代碼也很少用。但它源碼里出現(xiàn)頻率極高——視頻原話是Spring 集成其他框架大量用事件監(jiān)聽做擴(kuò)展Boot 和各微服務(wù)組件都靠它看源碼繞不過(guò)。6.1 三件套與觀察者角色映射組成你要寫的觀察者模式里的角色事件Event繼承ApplicationEvent或直接用內(nèi)置的被發(fā)布出來(lái)的通知監(jiān)聽器Listenerimplements ApplicationListenerXxxEvent或方法標(biāo)EventListener觀察者發(fā)布者Publisher容器已建好業(yè)務(wù)側(cè)調(diào)publishEvent()被觀察者 分發(fā)器ApplicationEventMulticaster業(yè)務(wù)的例子是「下單后減庫(kù)存」想把減庫(kù)存和下單解耦就發(fā)一個(gè)下單事件監(jiān)聽器做后續(xù)。作者的用途判斷也直白——就是給業(yè)務(wù)之間解耦順帶提高可擴(kuò)展性與可維護(hù)性。發(fā)布路徑可以畫成一條鏈publishEvent(event) -- SimpleApplicationEventMulticaster.multicastEvent -- 按事件類型篩監(jiān)聽器 -- 依次 onApplicationEvent默認(rèn)在調(diào)用線程同步跑完除了自己發(fā)容器在 IOC 加載的多個(gè)位置已替我們發(fā)好了。視頻給的數(shù)字是「內(nèi)置五個(gè)事件」點(diǎn)名了上下文刷新完畢、啟動(dòng)、停止、關(guān)閉以及請(qǐng)求處理那一類想在容器 refresh 完成后擴(kuò)展監(jiān)聽對(duì)應(yīng)事件就行——跟第 3 篇 §5 里ContextRefreshedEvent那個(gè)收尾擴(kuò)展點(diǎn)是同一件事數(shù)量與類名清單我未逐一對(duì)照 API 核數(shù)。6.2 同步是默認(rèn)異步有兩條路最容易答錯(cuò)的就是這點(diǎn)。視頻表述很準(zhǔn)事件默認(rèn)同步發(fā)布——你在這里發(fā)事件必須等監(jiān)聽器代碼執(zhí)行完發(fā)布點(diǎn)后面的語(yǔ)句才繼續(xù)。這點(diǎn)在SimpleApplicationEventMulticaster的 javadoc 里能對(duì)上默認(rèn)所有監(jiān)聽器在調(diào)用線程里被調(diào)用好處是開銷小風(fēng)險(xiǎn)是「一個(gè)失控的監(jiān)聽器可能堵住整個(gè)應(yīng)用」。同一個(gè) javadoc 還給了常被忽略的一條異常處理器默認(rèn)是 none監(jiān)聽器拋異常會(huì)中斷本次廣播并拋回發(fā)布者——所以監(jiān)聽器里必須自己兜異常。改成異步視頻給兩條路給監(jiān)聽加注解或給分發(fā)器設(shè)一個(gè)TaskExecutor——底層判斷到你配了 executor就用它起子線程執(zhí)行監(jiān)聽器這就是「異步事件發(fā)布的核心機(jī)制是多線程」。要注意的正是 §4.2 那句一旦異步監(jiān)聽器就不在調(diào)用線程的事務(wù)上下文里了。事務(wù)綁定事件視頻未展開實(shí)踐最有用的一塊我核過(guò) javadocTransactionalEventListener默認(rèn)階段是AFTER_COMMIT等事務(wù)提交后才觸發(fā)fallbackExecution默認(rèn)false當(dāng)前沒有事務(wù)在跑就把事件丟掉——線上最常見的一類靜默失效就是它。更要緊的是那段警告AFTER_COMMIT/AFTER_ROLLBACK/AFTER_COMPLETION階段事務(wù)已提交或回滾但事務(wù)資源可能仍活躍此時(shí)在監(jiān)聽器里繼續(xù)寫庫(kù)改動(dòng)不會(huì)被提交要接著落庫(kù)得另起事務(wù)REQUIRES_NEW或走異步。Q4事件監(jiān)聽能替掉 MQ 嗎作者取舍很務(wù)實(shí)小型應(yīng)用用事件解耦「大一點(diǎn)的應(yīng)用一般用 MQ 替代事件監(jiān)聽」因?yàn)榉植际綀?chǎng)景下 MQ 性能和能力都更合適。我把「不能替」寫成三條① 事件只在當(dāng)前進(jìn)程內(nèi)傳多實(shí)例部署時(shí)另一個(gè)實(shí)例根本收不到② 沒有持久化和重試進(jìn)程一重啟還沒跑的監(jiān)聽邏輯就沒了③ 沒有削峰同步模式下發(fā)布者線程直接承擔(dān)監(jiān)聽器耗時(shí)。反過(guò)來(lái)它的價(jià)值也明確零外部依賴不必為「下單成功后干點(diǎn)啥」引入 Kafka/RocketMQ 一整套集群、天然貼著事務(wù)邊界、以及它是 Spring 生態(tài)自己擴(kuò)展自己的方式。判斷標(biāo)準(zhǔn)一句同進(jìn)程、允許一起掛 → 事件跨進(jìn)程、要求不丟 → MQ。7. 源碼里的設(shè)計(jì)模式十個(gè)但別說(shuō)十個(gè)作者的開場(chǎng)條件是「你簡(jiǎn)歷寫了熟讀 Spring 源碼」這題就跑不掉。他說(shuō)整理了十個(gè)并給出體現(xiàn)位置轉(zhuǎn)寫里能確認(rèn)的落點(diǎn)我列全模式視頻給的落點(diǎn)我的口徑與核實(shí)狀態(tài)簡(jiǎn)單工廠BeanFactory類名可核按 beanName 定義產(chǎn)出實(shí)例「它就是簡(jiǎn)單工廠」屬模式歸類是口徑工廠方法FactoryBean類名可核容器給外部的是getObject()的產(chǎn)物而非工廠單例單例 Bean / 單例池第 1 篇 §4 已辨析這是容器管的單例不是 GoF 單例模式別混著答代理AOP 底層JDK 動(dòng)態(tài)代理 / CGLIB代理在哪一步創(chuàng)建見 第 4 篇 §5觀察者事件監(jiān)聽就是本篇 §6 那三個(gè)角色能連起來(lái)講最好模板方法「幾乎所有外接擴(kuò)展」各類后置處理器refresh()里一串doXxx、BeanPostProcessor前后兩段第 1、3 篇畫過(guò)標(biāo)簽是視頻口徑責(zé)任鏈AOP 的方法調(diào)用過(guò)程攔截器鏈依次往下調(diào)第 4 篇 §6 那條鏈?zhǔn)欠駠?yán)格算責(zé)任鏈?zhǔn)枪P者判斷適配器Spring MVC作者還沒看 MVC 源碼可以先不說(shuō)常指HandlerAdapter——視頻中提到筆者未對(duì)照源碼核實(shí)裝飾器BeanWrapper視頻中提到筆者未對(duì)照源碼核實(shí)策略把配置類注冊(cè)成BeanDefinition時(shí)用的excludeFilters/includeFilters轉(zhuǎn)寫作 exclude field體現(xiàn)不同導(dǎo)入導(dǎo)出策略視頻中提到筆者未對(duì)照源碼核實(shí)這兩個(gè)數(shù)組與FilterType確實(shí)存在歸類按視頻口徑作者的答題策略建議照搬記住五六個(gè)就夠——工廠、單例、代理、觀察者、責(zé)任鏈這五個(gè)基本白撿模板方法屬于「任何框架都用了無(wú)腦答」真把十個(gè)背滿「面試官已經(jīng)沒耐心聽下去了」。我和他的用法略有不同這題的加分點(diǎn)是模式 具體類名 它解決了什么這三件套。講清兩個(gè)FactoryBean解決「實(shí)例化過(guò)程要我自己控制」SimpleApplicationEventMulticaster解決「發(fā)布方與訂閱方互不知曉」比報(bào)十個(gè)名字有效。本文覆蓋分 P分 P視頻原始標(biāo)題本文對(duì)應(yīng)小節(jié)P07SpringBoot防盜鏈的3種方式1.3三種手段與「只能增加破解難度」P08springboot線程池百萬(wàn)數(shù)據(jù)插入5三段耗時(shí)、切片 線程池 CountDownLatch套路P10SpringBoot解決跨域的5種方式1.1、1.2五種方式對(duì)照表、預(yù)檢與瀏覽器限制P11SpringBoot讀配置的6種方式2六種寫法對(duì)照表與選型P13SpringBoot可以同時(shí)處理多少請(qǐng)求3四參數(shù)默認(rèn)值、飯店比喻、8292 的口徑爭(zhēng)議P16Spring如何處理線程并發(fā)問(wèn)題4四種解法 鏈路上的 ThreadLocal、泄漏與異步P41Spring事件監(jiān)聽的核心機(jī)制是什么6三件套、同步默認(rèn)、異步兩條路、事務(wù)綁定P42Spring源碼用到了哪些設(shè)計(jì)模式7十個(gè)模式對(duì)照表與答題策略最后總結(jié)這八題串起來(lái)是同一類問(wèn)題面試官在驗(yàn)證你有沒有把框架放進(jìn)真實(shí)流量里跑過(guò)。我的判斷分四層。第一跨域與防盜鏈必須一起講跨域是瀏覽器的規(guī)矩、服務(wù)端只是配合防盜鏈?zhǔn)欠?wù)端的判定、得自己攔。五種跨域里真正只剩兩條能用——CorsFilter/WebMvcConfigurer管開發(fā)期Nginx 反代管部署期JSONP 是歷史。第二容量題和并發(fā)題都埋著口徑陷阱。8292 是連接數(shù)不是并發(fā)數(shù)同步鎖是安全但不是方案能立住的表達(dá)是并行度看maxThreads容量看 QPS × RT瓶頸看下游以及Spring 靠「無(wú)狀態(tài) Bean 線程隔離上下文」支撐并發(fā)你寫的 ThreadLocal 只在同一線程內(nèi)成立異步一律踩空。第三性能類題目必須答成「數(shù)字 歸因 收口方式」。17 秒比 90 秒快靠的是重疊 IO 等待不是線程多歸因講清了作者那句「參數(shù)要靠壓測(cè)和監(jiān)控定、大項(xiàng)目上動(dòng)態(tài)線程池」才不是套話。批量插入還要補(bǔ)一條邊界它是能重跑的任務(wù)不是能保整體一致的業(yè)務(wù)寫單——主動(dòng)交代事務(wù)邊界比等追問(wèn)好。第四P41、P42 是源碼收尾。事件機(jī)制一句話同進(jìn)程、允許丟、零依賴 → 事件跨進(jìn)程、不能丟、要削峰 → MQ。設(shè)計(jì)模式別貪多能連著類名講兩三個(gè)比背十個(gè)名字更像看過(guò)源碼的人。事實(shí)說(shuō)明視頻里給的事實(shí)只代表轉(zhuǎn)寫表述錯(cuò)字我已按書面術(shù)語(yǔ)修正跨域異常只在前端發(fā)生后端RestTemplate/HTTP client 請(qǐng)求別的域不報(bào)錯(cuò)五種方案為 JSONP只支持 GET、兩端耦合、CrossOrigin單接口、WebMvcConfigurer按前綴批量、CorsFilter全量、Nginx 反代作者最推薦前后端零改動(dòng)復(fù)雜請(qǐng)求先OPTIONS預(yù)檢、可能請(qǐng)求兩次且需瀏覽器版本支持舉例 IE 不低于 10。三種防盜鏈為 RefererNginx 或過(guò)濾器校驗(yàn)可偽造、Token登錄下發(fā)可合法獲取后攜帶、時(shí)間戳差值舉例 300ms可被「請(qǐng)求前睡一秒」繞過(guò)并建議疊加拖動(dòng)驗(yàn)證碼、大廠再疊行為分析與黑名單。讀配置六寫法為Value、ConfigurationProperties、注入Environment、EnvironmentAware、PropertySource作者稱只吃 propertiesYAML 需PropertySourcesPlaceholderConfigurerYamlPropertiesFactoryBean、JDKProperties手讀流結(jié)論是前三種最實(shí)用Value須是 Bean、key 缺失啟動(dòng)報(bào)錯(cuò)、static/final 不生效。容量題飯店比喻與四參數(shù)含義演示配置 30/10/20/10、超時(shí) 300ms、sleep 2s、壓測(cè) 100 得 40 成功 60 失敗查元數(shù)據(jù)得默認(rèn)值 8192 100 8292。并發(fā)題局部變量、prototype、ThreadLocal、synchronized四種解法作者明確最后一種影響吞吐。批量插入90 多秒 → 切 100 份 × 1 萬(wàn) 線程池核心 32/最大 66CountDownLatch→ 17 秒 → 核心 100/最大 200 → 16 秒Async默認(rèn)不推薦直接用、需自定義線程池 BeanThreadPoolTaskExecutor比 JDK 的多線程名前綴IO 密集可核數(shù) ×21 兜底后續(xù)靠壓測(cè)、監(jiān)控與動(dòng)態(tài)線程池。事件監(jiān)聽三部分為事件、監(jiān)聽器、發(fā)布者核心機(jī)制是觀察者模式內(nèi)置約五個(gè)事件默認(rèn)同步阻塞異步靠加注解或給分發(fā)器配TaskExecutor小應(yīng)用用事件、大應(yīng)用用 MQ。設(shè)計(jì)模式整理十個(gè)轉(zhuǎn)寫能確認(rèn)的落點(diǎn)見 §7 表建議答五六個(gè)即可。官方文檔 / 公開事實(shí)本次親自核實(shí)鏈接見文末① Tomcat 9.0 與 Tomcat 10.1 的 Connector 文檔NIO 連接器默認(rèn)maxThreads200、minSpareThreads10、acceptCount100、maxConnections8192connectionTimeout文檔默認(rèn) 60000ms發(fā)行版server.xml寫 20000ms達(dá)到maxConnections后「接受但不處理」再一個(gè)連接、之后由 OS 按acceptCount排隊(duì)② Spring Boot 2.7.18 屬性附錄 中對(duì)應(yīng)四項(xiàng)同值③ Spring Framework APIcurrent頁(yè)面顯示 7.0.9的SimpleApplicationEventMulticaster默認(rèn)在調(diào)用線程通知所有監(jiān)聽器原文警告失控監(jiān)聽器可堵住應(yīng)用setTaskExecutor可改異步、但異步執(zhí)行不參與調(diào)用線程的事務(wù)/類加載上下文ErrorHandler默認(rèn) none、監(jiān)聽器異常中斷本次廣播并拋給發(fā)布者④ 同版本TransactionalEventListenerphase默認(rèn)AFTER_COMMITfallbackExecution默認(rèn)false無(wú)事務(wù)時(shí)事件被丟棄并警告此階段繼續(xù)寫庫(kù)的改動(dòng)不會(huì)被提交⑤ v6.1.14 源碼ThreadPoolTaskExecutorcorePoolSize1、maxPoolSizeInteger.MAX_VALUE、keepAliveSeconds60、queueCapacityInteger.MAX_VALUEqueueCapacity0時(shí)用SynchronousQueue有taskDecorator字段⑥ 同 tag 源碼CorsConfigurationallowCredentialstrue且allowedOrigins含*時(shí)拋IllegalArgumentException并提示改用allowedOriginPatterns⑦ JDK 17ThreadLocalAPI線程消失后其 thread-local 副本才可被回收除非存在其他引用。源碼原文因raw.githubusercontent.com連接被重置改由 jsDelivr 的 GitHub 鏡像按同一 tag 拉取。筆者判斷 / 未核實(shí)① 「8292 是本題答案」是視頻口徑我判定它混淆連接上限與并行度該反駁屬筆者判斷② P13 的 40 成功/60 失敗/異常率 60%以及 P08 的 90 多秒/17 秒/16 秒與 32、66、100、200 這些線程數(shù)全是視頻口述、未復(fù)現(xiàn)的觀察值不構(gòu)成性能結(jié)論③ 壓測(cè)工具轉(zhuǎn)寫作 “g matter”我按 JMeter 理解屬推測(cè)④ 「CORS 需 IE10 及以上」的兼容矩陣、Nginx 校驗(yàn) Referer 的指令名與寫法、max_allowed_packet默認(rèn)值均未核實(shí)⑤ 時(shí)間戳防盜鏈 300ms 的閾值方向在轉(zhuǎn)寫里含糊我按「間隔過(guò)短判為機(jī)器」理解改用服務(wù)端下發(fā)帶時(shí)效的一次性簽名屬筆者建議⑥PropertySource只支持 properties、YAML 必須靠YamlPropertiesFactoryBean是視頻口徑Value在 static/final 上失效的確切成因、ConfigurationProperties需要哪些開啟方式如EnableConfigurationProperties未核對(duì)⑦Async未指定 executor 時(shí)底層退化成什么執(zhí)行器我沒核到源碼v6.1.14 里該類父類文件的路徑與我嘗試的不一致故只轉(zhuǎn)述作者的「默認(rèn)不推薦直接用」Boot 自動(dòng)配置那個(gè)線程池的默認(rèn)參數(shù)也未核實(shí)⑧ThreadLocalMap「弱鍵強(qiáng)值」這條常見表述我只核到 JDK 文檔「線程消失后才回收」那句Entry 引用強(qiáng)度未看源碼⑨ MySQL 的rewriteBatchedStatements、以及數(shù)據(jù)庫(kù)連接池上限如 HikariCPmaximumPoolSize會(huì)卡住并發(fā)寫都是筆者補(bǔ)充默認(rèn)值與效果未從官方文檔核實(shí)⑩ 「200 線程 × 100ms ≈ 2000 QPS」是我給的分析框架視頻沒有且假設(shè)了純阻塞、無(wú)下游瓶頸? P41「內(nèi)置五個(gè)事件」的確切數(shù)量與類名清單、以及 Boot/Spring Cloud 各組件靠事件集成的具體落點(diǎn)未逐一對(duì)照源碼? P42 表中標(biāo)「視頻中提到筆者未對(duì)照源碼核實(shí)」的三處MVC 適配器HandlerAdapter、BeanWrapper歸裝飾器、excludeFilters/includeFilters歸策略以及把BeanFactory/FactoryBean歸為簡(jiǎn)單工廠與工廠方法、把后置處理器歸為模板方法、把 AOP 調(diào)用鏈歸為責(zé)任鏈都屬模式歸類源碼里不會(huì)有這種注釋? 文中判定鏈與流程示意是我按轉(zhuǎn)寫描述和文檔行為重繪的不代表視頻畫面原圖。參考資料 致謝[1] Spring面經(jīng)-嗶哩嗶哩77 個(gè)分 P 的 Spring 面經(jīng)合集本文取材其中 P07、P08、P10、P11、P13、P16、P41、P42 八段文中一律稱「視頻作者」感謝他每題都配了可跑的例子。[2] Apache Tomcat 9.0 配置文檔 · The HTTP Connector / Tomcat 10.1 同頁(yè)線程數(shù)、連接數(shù)、acceptCount、connectionTimeout默認(rèn)值。[3] Spring Boot 2.7.18 參考文檔 · Application Properties 附錄server.tomcat.*屬性名與默認(rèn)值。[4] Spring Framework API · SimpleApplicationEventMulticaster / TransactionalEventListener同步默認(rèn)、異步 executor 的上下文限制、AFTER_COMMIT與fallbackExecution。[5] Spring Framework v6.1.14 源碼 · ThreadPoolTaskExecutor / CorsConfiguration線程池默認(rèn)值、allowCredentials與*的沖突經(jīng) jsDelivr 鏡像核對(duì)原文。[6] Spring Framework 官網(wǎng) / Spring Boot 官網(wǎng) / Nginx 官網(wǎng) / MySQL 官網(wǎng) / Apache JMeter 官網(wǎng) / Apache Kafka 官網(wǎng) / Apache RocketMQ 官網(wǎng) / Nacos 官網(wǎng) / Oracle JDK 17 API。[7] 同系列前八篇Bean 生命周期、循環(huán)依賴、容器擴(kuò)展點(diǎn)、AOP 與代理、事務(wù)、Spring MVC、Spring Boot、微服務(wù)本篇所有交叉引用只給一句指向不重復(fù)展開。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产尤物在线三区| 国产黄a三级三级三级av在线看 | 久久伊人东京热| 在线播放成人网站| 天天干人人干天天日97| 日韩十八禁| 久久不卡一区二区 | 精品久久久av| 国产AV久久久蜜爱影集| 国产高清成人免费视频| 午夜九九| 欧美大片一区二区三区| 丝袜综合| 亚洲丝袜色| 日本成人A片免费看| 亚洲另类色综合网站| 国产视频一区二区三区久久亚洲天堂| 91精品无码人妻系列| 久久久四区| 亚洲美女色图| 亚洲、日韩、综合、另类| 香蕉人人操tv| 色欲无码人妻日韩欧美精品| 欧美性爱一区二区| 熟女熟妇伦久久影院毛片一区二区| 国产欧美伊人| 精品99999久久久久久| 91麻豆va国产精品| 五月婷婷激情网| 国产女人高潮嗷嗷嗷叫小说| 午夜福利av电影在线| 九九热精品| 少妇精品久久久| 深爱五月婷婷| 成人日韩欧美| 五月丁香综合| 99九九精品| 成年人三级黄色片视频| 色欲三区| 26uuu国产日韩综合在线观看| 久久久啊啊啊| 综合色久欲| 久久综合av| 1204av韩国| 青娱乐av在线| 日韩视频小说在线观看| 精彩久久中文| 国产精品国产| 中字一区| 老熟妇91| 日韩9区| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 日日躁夜夜躁狠狠躁超爽| 久久久精品一区二区| 亚洲影院小综合| 视频二区美腿丝袜制服人妻欧美| 色情综合| 91人妻超碰| 亚洲综合小说另类图欧美视频激情小说色五月天| 一区二区三区在线美女| 国语国产操逼伊人AV网| 麻豆国产原创AV色哟哟 | 日韩内| 久久在肏| 无码高清操逼| 自偷自拍的亚洲视频| 久久久国产三级黄色片| 涩涩五月天| 黑丝内射一区二区三区| 伊人青青一区成人视频在线观看区| 欧亚乱色熟一区二区三四区| 99天天超碰| 国模不卡一本二本三电影| 欧美日韩黄色片一区二区三区四区人与兽做爱| 美女久久久久久久| 久久成人东京热人妻| 97亚洲色图| 国产传媒日韩欧美| 丁香六月东京热| 婷婷啪啪| 97日视频| 国产精品96| 国产特级毛片AAAAAA高潮流水| 亚洲一卡二卡在线免费| 动漫爆乳3D奶水一区在线观看| 亚洲精品精品一区二区| 久热精品色情| 操一操摸一摸| 99亚洲天堂| 久久精品店| 久久精品国产亚洲AV嘿嘿| 成人一级性爱| 亚洲国产一区二区三区四区国产| 亚州操操穴网| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 中文字幕国产在线天堂| 91人妻素女| 亚洲天堂区| 9久久美女首页| 亚洲s色图| 蜜臀久久99精品久久久久久婷婷| 成年女人黄网站| 91青青在线| 精品久久久av无码免费| 熟女被操视频网址| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 青草综合| 国产久久久久久久久一区二区 | 牛牛久久国产精品视频一二三| 后入式福利| 18禁止看精品中文字幕| 日本在线一二| 另类欧美色| 999亚洲国产视频| 成人欧美一区二区三区黑人一| 天天综合网1| 欧色网址| 亚洲天堂久久| 成人九九| 丁香六月婷婷| 日日嗷| 色色香蕉| 中文字幕在线第二页| 最新岛国大片| 日本午夜福利视频| 欧美午夜熟妇黑人精品91| AV不卡在线| 日韩99神马视频播放| 精品97久久| 大色综合网| 加勒比少妇AV婷婷六月天超碰超碰| 夜夜骑夜夜操| 国产女大学生AV| 国产福利影视| 久草老司机| 国产大学生口爆吞精合集| Av色五月| 国产不良强奸视频免费看| 黄页大片在线观看| 国产成人自拍视频视频| 婷婷五月天无码| 五十路六十路七十路熟婆| 亚洲最大的黄色电影网站。| 日本性爱视频一级| 欧美精品偷拍| 超碰在线观看av不卡| 亚洲综合另类欧美久久久| 亚洲欧洲综合成人av一区| 极品一区二区三区免费| 吖在线不卡一区二区国产剧情| 久久粉色| 欧美五十路熟| 国语av最新自产拍在线观看| 亚洲日韩成人性爱视频| 久久久影院| 在线观看精品国产免费| 99综合网| 亚洲视频二区| 九九九九亚洲| 久操网无码在线| 色久桃花影院在线观看| 国产精品久久久久久久黄无码 | 大二网站亚洲| 丝袜熟女一区二区三区| 91久精品| 啊啊在线| 亚洲āv网址在线观看| 性影在线视频| 丁香五月婷婷五月| 超碰97最新人妻| 好湿好紧视频| 久久av一级av少妇av高潮 | 日韩欧美女求操每天更新| 91这里只有精品| 欧美精品自慰系列寂寞少妇| 草b在线| 人妻性爱一区二区| 欧美精品999| 性爱av在线免费观看| 国产丝袜视频| 天堂亚洲精品| 久久亚洲AV无码专区国产精品 | 国内精品a| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 婷婷视频在线免费观看| 丝袜性亚洲| 天天干18禁| 秋霞蝌科网日本一区| 天天看片麻豆| 夜夜嗨视频| 国产日韩在线播放| 国产欧美日产一区二区三区 - 国产欧美日 | 欧美aⅴ99久久黑人专区| 视频在线观看一二三区| 亚洲五月丁香花狠狠干一区二区三区 | 精品人妻一区二区三区夜夜| 另类专区加勒比| 国产免费一区二区在线A片视频| 天天射天天操天天干天天吃2018| 2024黄色视频| 国产 日韩 欧美高清| 99re公开精品免费视频| 亚洲精品一区二区三区在线播放| 色五月激情综合网| 亚洲精品97在线| 极品色www影院| 无码精品蜜桃一区二区三区ww| 亚洲第一免费视频| 久久草大香蕉| 亚洲色性情三级| 青青草在线视频欧美| 久久手机视直播| 久久久不能久久久久| 亚洲成人一二三区| 四虎免费视频| 内射老妇BBWX0C0CK| 日韩精品一区二区日韩| 国产女人高潮视频| 伊人精品国产| 隔壁邻居波多野结衣中文字幕| 婷婷午夜成人色中色| 亚洲男人的天堂亚洲| 国产丰满熟夫69mpp| 夜夜嗨一区二区三区三州加勒比| 国产日韩欧美操逼视频| 久久一区无码| 97在线观看| 中精品一区二区三区| 欧美高清91| 中文字幕二区日韩天堂| 日韩中文9| 亚洲av强奸乱伦| 超碰在线1234区| 国产美女高潮叫床视频| 少妇的嫩逼图片| 国产激情久久| 肏逼视频日本| 中文97国产| 亚洲无码com| 九九久久国产精品| 操逼操逼视频操逼| 色爱综合网欧美| 九九热av| 天天爽天天操| 日韩亚洲欧美中文字幕| 99亚亚热| 日本人妻中文字幕精品| 91高跟美女在线播放| 亚洲日韩电影| 日韩大香蕉AV影片| 久久久精品国产亚洲AV无码| 99re这里只有精品2| 一区二区三区四区免费视频| 国产精品久久久777| 国产AAAAAABBBBB| 91久久久视| 特级毛片特黄久久免费看| 大乔未久88一区| 日韩AC| 一区二区播放| 91精品人妻一区二区三区蜜桃臀| 色狠狠 - 百度| 骚货操死你| n1038 一二三区| 影视综合无码少妇| 26uuu性物| 亚洲国产精品久久久久婷婷青年| 另类亚洲一区二区三区| 丝袜美腿丝袜| 人妻 欧美亚洲| 丝袜夫妻自拍| 91丨九色丨东北熟女| 国产成年女黄特黄| 极品肉射| 97免费在线观看| 天堂亚洲精品| 欧美日韩人妻婷婷一区| 熟妇熟女一区二三区| 日韩亚洲中文字幕在线| 国产午夜精品在线观看| 搡老女人老熟女91老熟女综合网| 欧美黑人91| 一区中文字幕二区日韩| 夜夜嗨AV蜜臀av| 六月色色| 东京热男人的天堂网| 国产精品成人无码av| 国产精品爽爽va在线观看98| 国产自制av蜜乳| 97超碰欧美中文字幕| 人妻熟女一区二区在线视频| 少妇高潮一区二区三区在线| 欧美狠狠操| AV 少妇 人妻 偷拍| 日韩在线观看字幕精品| 蜜臀操逼黄色视频操的好爽| 婷婷操逼| 欧美一区二区三区大综合| 97精品综合| 亚欧成人中文字幕一区| 少妇干B| 欧美自拍偷拍免费观看| 99热日本| 午夜后入| 69一区二区三区 | 91l欧美在线| 国产九九九九九九| 大学生美女口爆| 乱伦色图网址是多少| 五月婷婷六月丁香网址| www.狠狠| 亚洲熟女一区| 波多野结衣之双飞调教在线播放 | 激情视频一二三| 不卡二三区人妻少妇| 婷婷av在线中文字幕| 亚洲导航深夜福利| 久久国产视频性吧 | 九九Av| 国产精品不卡一区二区三区| 欧美色涩| 亚洲国产精品成人无码久久久| 激情接吻视频久久久久久| 91精品国产日韩欧美综合| 色婷婷导航| 久久理论字幕视频| 91 亚欧| 国产精品爱欲| 99热在线播放| 欧美人妖内射| 色色五月婷婷| 后入式免费视频| 熟女突然公开看18禁影片| www.高清无码诱惑一区.com | 色逼综合| 91五月天| 色欧美色交综合| 国产又黄又爽又刺激久久久久久| 69视频福利导航| 国产精品乱码久久久久| 色av中文字| 欧美综合狠| 国产精品网址| 亚洲揄拍网| 一级AV性爱| 色网1| 综合网色| 精品国产一区二区三区香蕉欧美| 中文字幕精品专区搜索结果91| 翔田千里一区二区三区奶水| 国产精品另类| 久热这里| 国产无马在线| 久久中久文96| 好湿好紧好爽 视频| 精品九九九九九九九九九| 伊人性在线视频| 波多野42部激情无码喷潮| 五月丁香色综合| 天美传媒AV在线播放| 欧美大香蕉卡久久| 久久透逼视频| 欧美性性性| 美欧老女人97| 亚洲日本韩国极品一区二区| 成人麻豆av电影网站| 欧美天天| 欧美91变态| 欧亚成人在线视频| 天天干2区3区| 日本在线激情一区二区三区| 啊啊啊好想要| 久久9999| 又大又黄国产| 日本午夜福利影院| 国产成年精品高清在线观看91| 人妻大香蕉| 亚洲97P| 99精品免费| 国产激情av女片自拍| 黄色一区二区秘书性感| 婷婷去俺也去六月色| 伦激情人妻另类人妻| 亚洲欧美不卡线| 伊人宅男大香蕉| 人妻人人操| 综合五月婷婷| 99色热| 日本理论在线| 91精品国产日韩欧美综合| 国产强奸乱伦无码视频| 家庭乱伦麻豆| 无码人妻一区二区三区色欲aⅴ| 免费精品无码一级毛片牛牛影视| 国产精品永久免费10000| WWW操逼| 秋霞久久亚洲精品成人| 亚洲乱码国产乱码精网站| 国产一区二区免费福利片| 老妇女91| 懂色av色欲av蜜臀av| 三级特黄60分钟播放| 国产尤物AV尤物在线观看不卡| 巨爆乳一区二区爆乳区| 亚洲无线码一区国产欧美国| 99久国产精品午夜性色福利| 日小BB小视频| 五月丁香亭亭| 中文字幕诱惑制服人妻丝袜美丝袜美| 日本欧美不卡| 欧美性爱系列| 上床不卡网站| 天天网综合| 天天操天天射天天日| 操逼日批| 操一区| 欧美 亚洲 另类 综合| 国产91 丝袜在线播放| 久久一区二区高清免费| 草b在线| 青青草视频在线观看一区二区| 骚日日av| 91干熟女| 亚洲Av噜噜一区二区三区妖精| 欧美精品黑人猛交高潮| 久久性爱精品一区| 99抽插| 日日操夜夜操天天操免费观看麻豆| 亚洲三级。日韩三级| 快灬快灬 一下爽蜜桃在线观看 | 婷婷五月综合在线| 日韩精品亚洲一二三| 99久久久er直播网址| 日han少妇无码| 日韩欧美成人午夜福利| 久久久久久久久久久久久久久性生活视频| 超碰吊日色| 首页中文字幕中文字幕免费| 五月开心网| 中文字幕av片| 欧美十八禁在线看| 精品一啪| 传媒在线观看一区二区三区| 六月婷婷综合| 欧美日韩啪啪电影| 死我十八禁| 狠狠久久亚洲欧美专区| 97精品视频| 97任你吞精| 99福利社| 内射日韩大臀美女| 国产精品探花色| 91天美传媒在线观看| 国产成人久久久精品免费AV| 成·人免费午夜在线观看| 丝袜综合| 亚洲欧洲小说图片视频 | 久久高清欧美国产| 成人性交免费视屏| 欧美一区二区成人一卡| 色婷婷激情| 精品人妻中文字幕高清| 亚洲欧美日韩有码| 色婷五月天| 美女被啪到深处抽搐视频| 欧美亚洲性爱一区二区| 中文字幕日产av人| 亚洲性爱成人| 亚洲欧美电影| 中文字幕免费在线观看| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 久夜操| 中文字幕丝袜人妻| 插欧洲美女欧美精品| 天天综合91| 国产精品夜夜夜| 天天插天天射| 成人性爱电影网| 人人操人人搞人人草| 另类图片欧美激情综合| 97免费在线观看| 亚洲第一男人天堂| 人妻少妇三级| 九九英色视频| 97色冈| 久久一二三四五六七八九区区区 | 欧美日本天堂| 1204金沙人妻懂旧版免费| 91呆哥人妻| 高潮的A片激情扒开一区| 久久产精品一区二区三区电影| 国产精品69久久久久久久| 日han少妇无码| 嗯……啊…嗯嗯…啊…好舒服| 欧美有码激情视频一区二区三区| 国产精品自拍xxxx| 日本精品高清一二区一本到| 色99色| 国产自产91区13区| 1204人成网站色www| 屁股久久久久久| 久久久久久久久久9| 一区二区高清视频| 9久9久9久9久视频网站| 午夜舔阴达高潮视频免费看| 亚洲精品97| 黄片qw| 亚洲av强奸乱伦| 天色综合网| 综合色久欲| 国产精品美女久久久久久网站| 人人操人人操人人操人人操人人操人人人11.CM | 91美女在线视频| 亚洲丝袜少妇在线| 人、人、摸,人、人、草| 欧美狠狠弄| 亚洲高潮影院| 亚洲欧美一区二区三区一猛片| 婷婷伊人一区| 亚洲在线综合| 一区二区三区精品视频| 色偷偷超碰亚洲| 久久久亚洲Av| 青青伊人加勒比海| 69精品久久久久中文字幕| 精品人妻一区二区乱码一区二区| 免费成人在线观看91| 五月天综合| 亚州高清AV| 日操粉逼逼| 蜜臀久久久国产| 美女视频尤物网在线看| 日韩精品大香蕉伊人在线| 逼操网站| 97色综合中文网| 伊人AAA| 欧美日韩亚洲天堂| 青青11操操操操操操操操| 亚洲美女av无码| 99天天超碰| 图片区小说区| 黑人免费福利视频| 久久精品国产97欧美精品亚洲| 五月婷婷综合激情| av网站国产主播在线| 国产一区二区三区不卡手机在线| 第四色奇米影视777| 欧美男人亚洲天堂| 国产伦精品一区二区三区视频女| 日韩 国产 欧美自拍| 精品无码产区一区二| 99热亚洲天堂| 国产 亚洲 丝袜 制服| 97欧美综合网| 330dv亚洲成年视频网| 3p国产欧美99热| 思思久热在线精品66| 黄页网站成人免费| 97操在线| 中文字幕人妻色偷偷久久皮| 91欧美| 午夜男人av| 亚洲色图 欧美| 性色高清..……| 97AV在线免费观看| 麻豆福利视频导航| 亚洲自拍另类丝袜综合| 97一区二区蜜臀| 色噜噜综合在线| 国产av美女被艹的乱叫| 亚洲自拍天堂| 超碰成人公开| 欧美性爱十八禁| 亚洲午夜福利在线影院| 欧美日韩国产高清在线一二三区 | 东京热av男人的天堂| 久久婷婷色综合一区二区三区| 69人妻精品一区二区绯色| 亚洲欧洲网站免费观看| 成人看片网站| 无码免费一区二区三区啪啪| 色色婷| 六月丁香啪啪啪| 91人人看| 色五月激情AV在线| 香港久久久| 超碰97国产欧美| 9丨久久九九九| 强乱老妇中文字幕| 一区在线精品中文字幕| 先锋激情∨在线视频播放| 国产高清在线观看欧美| 小情侣高清国产在线视频| 校园春色 男人天堂| 亚洲色堂免费视频| 物业黑人 AV一区| 啊啊啊啊啊啊在线| 乱伦a片视频| 九九热免费视频| 精品无码人妻一区二区免费蜜桃| 中文字幕第7页| 日本一区二区中文字幕久久| 久久久久亚洲AV无码专区少妇| 国产A v无码专区| 又黄又爽在线观看视频 | 蜜乳AV免费观看| 九色视频91| 大香蕉宅男伊人| 色五月激情AV在线| 色呦呦国产精品免费看| 国产成人精品无码久久| 欧美激情综合| 青椒国产97在线熟女| 狠狠操狠狠插| 91色射| 高跟丝袜AV专区国产| 熟啊v色欧美热| 久久精品久久久久久久久| 97操操| 99热国产| www.91久久| 国产AV天美传媒一区二区三区 | 色男人色天堂东京热| 国产 日韩,欧美 自拍| 久久99午夜精品一区人妻| 超碰人妻中文在线| 粉嫩粉嫩一区性色AV片| 五十路人妻在线| 综合欧美激情网| 激情文学小说一区二区| 國產尤物AV尤物在線觀看| 加勒比日本在线| 性爱免费视频成人| 日韩欧美麻豆 | 亚洲精品人伦一区二区| 色情成人五月天| 大象AV在线| 磁力99AV| 亚洲欧美国产成人综合不卡| 蜜臀久久99精品久久久久久成人小说| 婷婷综合激情| 免费啪啪av| 加勒比性爱成人在线| 91亚·色| 日韩av影片在线观看| 亚洲AV在线资源| 91中文在线| 日韩免费簧片| 精产品久久| 日本一级不卡一二区| 色婷婷丁香五月| 亚洲色图91| 操91| 熟女色图在线| 美女露胸露奶头| 日韩成人大片在线观看| 国产强奸乱伦xd| 91久久久久| 欧美色图私拍91| 91黑丝露脚| 色婷婷九月天天综合| 久久久国产av美女私房| 2024黄色视频| 骚女天天综合网| 精品无码一区二区三区| 国产自产22区| 涩涩久久精品| 91欧美性| 亚洲清纯唯美| 青青草啪啪网| 殴美牲| 狠狠 91| 亚洲丝袜色| 久久欧美按摩999| 95人妻爽爽人人做人人澡| 亚洲熟女av日韩熟女| 国产最新小视频在线播放下载 | 99久久精品无码一区二区| 久久无码一区二区二三区性色| 99人妻| 明星性猛交ⅹxxx乱大交| 亚洲伊人成综合成人网| 91无遮挡| 翔田千里AⅤHD无码| 中文人妻av高清一区| 一级片视频啪啪| 亚洲欧美日韩二区视频| 丝袜美腿制服人妻二区中文字幕| 免费毛片在线播放| 六月婷婷激情| 中文字幕乱碼在线| 我想要啊 啊 啊| 嗯嗯啊啊好爽| 欧美97在线观看| 成人女人国产| 亚洲 综合 第一页| 日躁天天爽爽| 日日噜噜夜夜狠狠视频无| 久热91| 四虎视频在线观看| 春色91| 2017人人操,人人摸| 五月丁香| 又黄又硬又粗又长国产视频| 韩国三级一线观看久| 色爱三区| 亚洲天堂日本| 少妇久久久| 欧日a| 国外91| 超碰无码加勒比| 亚洲精品男人的天堂| 一区| 国产操逼视频在线观看| 桃色六月天| 91欧美经典| 国产强上视频在线观看| 久久精品一区| 久久精品一区二区三区四区五区| 91干熟女| 91亚洲影视| 大香樵伊人网| 男人的天堂免费| 熟女突然公开看18禁影片| 国产精品熟妇一区二区三| 泰国AV在线观看| 97欧美资源| 99久久久99久久91熟女| 中文字幕熟女人妻丝袜丝| 丝袜美腿制服人妻二区中文字幕| 亚洲 无码 有码 中文字幕| 国产小视频91| 国产亚洲色婷婷久久99精品91 - 百度| 六月激情网| 97精品网| 91中文精品日韩欧美在线 | 天天色黄色影院天天操| 亚州久久9| 人人天天干干| 精品久9| 夜夜人妻爽| 深夜激情无码| 日韩无码视频黄色| 日本黄页视频在线观看| 九九亚洲| 国产懂色精品国产av| 97超碰超碰| 伊人久久亚洲色欲综合网站 | 夜夜影视四色| 九九AV| 国产超碰欧美| 亚洲青色欧美| 欧美啪啪天堂| 精品无码一区二区| 91狼人| 久久这里是精品| 无码不卡八戒| 大奶的诱惑| 强乱老妇中文字幕| 亚洲熟妇综合久久久久久| 蜜桃视频一区二区三区在线观看| 亚洲欧美经典一区二区| 99在线免费公开视频| 亚洲无线观看久久| 中文字幕后石码四区五区| 果冻传媒A片一二三区| 超碰97久久国| 欧美老妇女内射网址| 防屏蔽在线视频| 色综合久| 色综合天天| 色嘟嘟人妻天堂网| 久久精视频美日韩在线视频| 九月丁香综合网| 青青操狠狠撩| 亚洲超碰AV| 亚洲少妇综合在线播放| 久草精品国产99| 精品久久久久久中文字幕三区| 国产精品永久免费10000| 国产精品分类在线观看| 久久性爱视频免费看| 97色碰| 韩国一级婬片A片无码天美| 久久久精品91八戒| 无码高清专| 中文字幕在线日亚洲9| 麻豆天美在线喷水AV| 激情婷婷丁香网| 日韩兔费看黄片| 欧美另类精品xxxx| 亚洲宅男天堂| 91美女视频在线免费观看| 国产精品69久久久久久久| 夜色91| 午夜黄色免费在线观看| 任你爽视频| 9超碰免费| 国色综合天| 操逼国产免费| 97人肏| 蜜臀AV一区二区三区| 精品三级在线专区| 亚洲第一无码播放立川理惠| 久极品在线观看| 久久久久国产精品人妻aⅴ天堂| 清纯唯美综合| 日韩国产成人自拍视频| 九九英色视频| 久久久久97| 天天弄天天操| 欧美九九九| 日本在线播放不卡一区| 精品国产国产AV| 四虎精品永久在线播放| 久热大香蕉| av日韩中文字幕| 亚洲黄色a级片| 四虎永久在线精品免费网址| 亚洲色图A| 五月丁香| 3PAV乱伦视频| 大香蕉 222| 久久久一区二区三区三州| 青青国产精品在线| 国产精品久久久啊| 亚射在线| 国产极品精品美女视频| 9久精品视频在线观看| 亚洲精品性爱片| 亚洲情色图片区| 久久久爆乳翘臀一线天伦理视频| 天天综合麻豆视频| 婷婷综合五月| 成人精品在线免费视频| 中美日韩毛片| 亚川综合视频| 久久精品无码熟妇一区二区三区视频导航| 日本在线视频导航| 一区二区影视| 美欧老女人97| 亚洲精品三| 国产精品视频内谢女人| 操死我了嗯嗯嗯| 欧美性天天影视| 久操com| 美女性91| 狠色婷婷久久一区二区三区_| 亚洲夜夜欢无码一区二区| 欧美亚洲小说| 亚91网| 久久爽爽精品| 天天天天天天天天天天干美女| 国产成人精品网站| 日韩欧美蜜桃精品久久中文字幕久久| 67914亚洲精品| 国产欧美日韩精品中文| 国产精品人妻无码久久久互動交流| 青青青艹在线视频| 国产精品一区人妻精品阁在线| 亚洲蜜乳av| 欧美亚洲自拍另类人妻| 精品少妇999| 操一对老熟妇爽上天视频| 伊人国产视频| 综合网久久| 欧美有码激情视频一区二区三区| 黄片免费久久久久久久| 少妇3P性爱自拍| 日韩熟女乱伦中出| 国语对白露脸XXXXXX| 蜜臀少妇一区二区| 丁香五月成人| 亚洲AV无码| 观看免费区二区三区二| 免費人妻夜夜爽天天爽爽一区| 久久久草成人网站久久久草成人久久久草久久久| 99热免费| 精品国产乱码久久久久久久久1| 人人爱夜夜爱| 欧美美女后入| nuu12国产麻豆精品| 色偷偷超碰亚洲| 激情小说激情视频| 亚洲春色一区二区三区| 国内毛片热久久思思热| 午夜操逼不卡| 99热超碰在线| 都市激情人妻一区二区青青操视频| 91AV天美在线视频| 性一级黄色录像片网站导航| 男女做爰猛烈动高潮A片免费应用| 国产真乱mangent| 强奸乱伦资源| 宅男91视频在线播放| 99999这里都精品| 大香蕉狠狠爱| 黄色区免费观看中文字幕| 超碰人人乐97| 人人九九精| 日韩偷拍一区二区三区| 91五月天| 91美女视频直播| 久久久久人妻二区精品叶可怜| 日本三级韩三级99久久| 久久亚洲色图中文字幕| 精品无码久久久久久久久果冻糖心| 插穴性爱视频在线观看| 欧色综合| 亚洲精品一区二区日本| 日韩AV一区二区三区四四| 麻豆色约约| 极品色www影院| 日韩少妇在线视频| 成人午夜无码视频| 亚洲性感丝袜诱惑在线观看| AAAA级日本片免费视频| 婷婷亚洲天堂| 欧美图片校园春色| 欧美网站免费| 91爱看| 97在线视频观看网站| 欧洲精品一区二区三区| 久久久久亚洲熟妇熟女| 欧美熟爽综合| 亚洲欧洲日本精品中文a∨| 熟女在线视频| 久久久久久久久久久免费精品| AV高清一区| 在线观看亚洲专区| nuu12国产麻豆精品| 91久久99久久91熟女精品| 2017天天拍大香蕉| 日韩乱码Av| 无码免费在线观看黄色片| 久久久久密臀一区二区| 亚洲中文国际强奸字幕| 色婷婷日韩精品一区二区三区| 人人乐大香蕉| 大地资源在线观看中文第二页| 欧美同性恋 的搜索结果 - 91n| 久久久久人妻| 夜夜操美女| 人妻少妇无码| 夫妻四区五区六区| 人妻中文字幕日韩电影| 香蕉人欧美综合| 日韩精品大香蕉伊人在线| 99热在线播放| 三级激情网站| 男人的天堂久久久| 热久久无毒不卡| 国产性刺激| 亚洲超碰AV| 一区二区三区美女超清| 91亚.色| 美女高潮视频91| 国产吹潮女在线观看| 好吊妞转入那个网| 午夜男人av| 日韩成人在线性爱视频| 国产强奸乱伦无码视频| 欧美日韩亚洲少妇寂寞影院正在播放 | 97人人操人人摸| se吧提供国产乱老熟视频胖女人| 91制服丝袜| 久久成人东京热人妻| 精品久久久一本一道| 99热这里只有是精品10| 黑人精品久久97| 中文幕97| 日韩av色图| 久久超碰av在线| 十八禁黄色| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 蜜桃传媒视频第一区入口在线看| 色踪合AV| 后入福利| 激情在线青青操| 国内偷拍精品一区二区| 逼操网站| 国产黄色 A 片免费看| 操逼操逼视频操逼| 男人天堂站| 吻戏激情性巴克| 午夜操一操| 国产精品乱码久久| 乱伦熟女专区| 色情乱伦AV| 天天天天操| julia在线观看久久| 日本人妻天堂网站在线播放| 青青草好吊| 另类图片综合| 欧美一级久久久久久久大片动画| 午夜男人一级A片7777| 天天操天天射青青草| 久久 久久国内精品亚洲| 97超碰日韩| 综合欧美激情网| 天天天天干| 淫骚熟女一区二区三区| 吖在线不卡一区二区国产剧情| 久久亚洲精品成人av| 国产乱婷婷精品二区三区| 在线小说视频一区| 免费AV中文网在线观看| 欧美成人午夜免费福利785| 嗯嗯,啊啊,国产精品| 99热这里只有精品1| 91亚洲色人| 欧美1727免费观看视频| 久久久精品一区二区| 乱性AV| 色丁香久久| 免费久久9999| 无码不卡亚洲成?人片| 丰满的三级少妇欧美久久久| 久草毛片电影怡| 日韩欧美性吧婷婷乱伦大香蕉 | 色色热| 熟女熟妇伦久久影院毛片一区二区| 大象AV在线| 亚洲人妻av| 嫩草 我啊~嗯~在线| 八戒午夜福利理论片| 色av中文字| 天堂综合网| 爱做久久久久久| 超碰在线97国产| 欧美日韩性爱电影在线| 97视频观看| 亚洲在线a| www.久久| 欧美丝袜亚洲| 无码日韩网站| 天欧美在线| 天天操天天干一区二区| 欧美天堂超碰97| 国产亚洲深夜激情| 男人天堂站| 精品美女久久久久| 精品人妻一区二区三区-国产| 91色花堂| 97亚洲综合电影| 色欧洲| 人人喜人人妻| 99无码狠狠久久| 亚洲另类久操网| 人人么人人操| 人人色人人射人人妻| 激情小说图片亚洲首页| 综合国产97| 亚洲一区日韩精品中文字幕| 九久9热| 综合影院永久入口国产| 日韩av熟女一区二区三区成人| 一二三区操逼国产91| 亚洲中文字幕妇伦久久| 欧美十八禁视频| 日本不卡二三区| 欧美αv.com| 99色在线| 五月丁香色色网| 国产精品熟女一区二区三区| 久久久久久久久久久六六| 日本精品五区| 操逼精品视频| 亚洲精美粉嫩嫩泬在线观看| 国产精品动态一区二区三区四四| 亚洲欧美在线观看2021| 亚洲欧美综合网 | 91精品人妻啪啪间| 欧美日韩性爱视屏免费看了| 日夜精品| 成人精品视频一区二区| 午夜偷拍久久熟女| 18精品一二区| 黑丝少妇麻豆| 99久久婷婷丁香| 嗯嗯啊啊啊好爽| 久久久久国产亚洲一区欧美色图日韩 | 久久色激情一区二区三区| 秋霞一级A片黄色视频| 美女网站黄页| 欧美日韩资源| 久久超碰、| 把腿张开老子CAO烂你| 特污精品女优骚货黄色视频在线免费观看| 夜夜操天| 99久久e免费热视| 欧美不在线| 91日产欧美| 丁香五月色情| 久久久久亚洲三级电影| 啊啊啊男女| 欧美亚洲激情小说| 首页中文字幕中文字幕免费| 91精品人妻一品二品三品| 国产a级精品| 日本福利二区视频| 日本韩国国产精品一区| 久热这里| 精品人妻一区二区免费蜜桃| 欧美人人AAA| 亚洲天堂五月天国产| 深夜激情| 日韩视频小说在线观看| 天美传媒国产原创中文字幕亚洲欧美另类 | 日本123区操B视频| 老熟女乱伦一区| 91中出视频| 一区二区三区色综合| www鬼畜国产男人的天堂| 3p国产欧美99热| 黑人美精品 A片| 97免费在线| 极品美女嘿咻| 91女优在线观看| 中文字幕少妇色 | 天天操女人| 99热最新| 殴美在线AⅤ| 欧美成熟性爱精品| 校园春色五月天| 国产2.3.4区| 亚洲综合校园春色| 欧美亚洲影视| 1二区9| 少妇一区二区三区在线观看| 25国产精品免费观看| 人人干人人搞人人摸| 中文字幕一区二区免费在线| 国产呦精品系列在线观看| 亚洲男人天堂手机版| 91模特在线观看| 综合一区二区影视| 久久久久久久六六| 欧美日韩亚洲高清不卡一区二区三区| 国产乱伦亚洲色图高清无码| 亚洲 欧美日韩 另类| 18禁无码永久免费无限制| 日韩中文字墓| 99精品人妻| 91天天综合日韩欧美| 蜜屁av| 夜夜高潮夜夜爽夜夜爱爱一区| 夜夜国自区| 激情文学小说一区二区| 影音资源男人日韩| 日本黄色天堂| 91女优在线观看| 欧美综合网1| 亚洲天堂久| 精品久久久久成人码免| 呻吟 欧美 日本 中出| 激情久久日韩精品中文字幕麻豆| 狠狠爱夜夜干| 欧美人妻另类在线| 熟女熟妇伦久久影院毛片一区二区|