免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

謝飛機(jī)面試大廠(chǎng)Java崗:從音視頻到AI大模型,一場(chǎng)“水”與“火”的較量

謝飛機(jī)面試大廠(chǎng)Java崗:從音視頻到AI大模型,一場(chǎng)“水”與“火”的較量 謝飛機(jī)面試大廠(chǎng)Java崗從音視頻到AI大模型一場(chǎng)“水”與“火”的較量面試官端坐在會(huì)議室里面前放著一臺(tái)筆記本電腦屏幕上已經(jīng)打開(kāi)了在線(xiàn)面試系統(tǒng)。他抬眼看了看走進(jìn)來(lái)的年輕人——謝飛機(jī)穿著一件印著“Hello World”的T恤背著一個(gè)雙肩包看起來(lái)還算精神。但面試官隱約感到這位求職者可能不簡(jiǎn)單。“請(qǐng)坐謝飛機(jī)同學(xué)。我們開(kāi)始吧先做一下自我介紹”面試官語(yǔ)氣平淡但眼神犀利。“面試官您好我叫謝飛機(jī)三年Java開(kāi)發(fā)經(jīng)驗(yàn)熟悉Spring全家桶會(huì)用Redis緩存也會(huì)寫(xiě)點(diǎn)JUnit測(cè)試平時(shí)喜歡研究JVM調(diào)優(yōu)比如-Xmx和-XX:UseG1GC這些參數(shù)我都能背出來(lái)。”謝飛機(jī)搓了搓手自信滿(mǎn)滿(mǎn)。面試官點(diǎn)點(diǎn)頭翻開(kāi)簡(jiǎn)歷開(kāi)始了第一輪提問(wèn)。第一輪音視頻場(chǎng)景下的基礎(chǔ)功“既然你提到熟悉Spring全家桶那我們結(jié)合一個(gè)實(shí)際業(yè)務(wù)場(chǎng)景比如一個(gè)短視頻App用戶(hù)上傳視頻后需要轉(zhuǎn)碼、生成縮略圖還要支持彈幕實(shí)時(shí)推送。你會(huì)怎么設(shè)計(jì)后端技術(shù)架構(gòu)”面試官拋出了問(wèn)題。謝飛機(jī)心想這還不簡(jiǎn)單我背過(guò)八股文。“這個(gè)嘛首先用Spring Boot搭個(gè)服務(wù)然后接收上傳用線(xiàn)程池異步處理。轉(zhuǎn)碼的話(huà)可以用FFmpeg不過(guò)我是Java工程師一般調(diào)用命令行。生成縮略圖可以用Java的ImageIO。彈幕推送嘛用WebSocket就行Spring支持得特別好?!敝x飛機(jī)回答得很流暢。面試官追問(wèn)“那如果上傳量特別大比如像抖音那樣每秒有幾千個(gè)視頻上傳你的線(xiàn)程池和單機(jī)服務(wù)扛得住嗎你考慮過(guò)消息隊(duì)列削峰嗎還有視頻轉(zhuǎn)碼是個(gè)CPU密集任務(wù)你怎么做資源隔離”謝飛機(jī)愣住了支支吾吾“啊……這個(gè)……消息隊(duì)列我聽(tīng)說(shuō)過(guò)Kafka但自己沒(méi)真正在線(xiàn)上用過(guò)。不過(guò)我知道Kafka是分布式消息隊(duì)列吞吐量特別高資源隔離的話(huà)……Docker容器算不算”面試官微微皺眉又問(wèn)“那么視頻轉(zhuǎn)碼完成后用戶(hù)要知道狀態(tài)。你打算怎么通知客戶(hù)端是輪詢(xún)還是長(zhǎng)連接”“用……用WebSocket剛才說(shuō)了可以推給用戶(hù)?!敝x飛機(jī)趕緊答道。面試官不置可否繼續(xù)問(wèn)“那如果轉(zhuǎn)碼失敗需要重試。你怎么保證消息不丟失Kafka的ack機(jī)制和offset提交你了解嗎”謝飛機(jī)額頭冒汗“呃……這個(gè)……我大概知道Kafka有ackall能保證不丟但具體怎么配置我得查一下文檔。offset……是消費(fèi)的位置吧我一般是自動(dòng)提交的?!泵嬖嚬俪聊藥酌霌Q了個(gè)問(wèn)題“那緩存方面視頻的元信息、點(diǎn)贊數(shù)這些熱點(diǎn)數(shù)據(jù)你會(huì)怎么設(shè)計(jì)緩存Redis具體用什么數(shù)據(jù)結(jié)構(gòu)”謝飛機(jī)稍稍松了口氣“Redis用String存點(diǎn)贊數(shù)用Hash存視頻元信息。過(guò)期時(shí)間可以設(shè)置成熱點(diǎn)視頻永久不過(guò)期普通視頻24小時(shí)。用Spring Cache的Cacheable注解非常方便?!泵嬖嚬僮穯?wèn)“那緩存穿透、擊穿、雪崩你分別怎么解決”謝飛機(jī)終于來(lái)了精神“緩存穿透用布隆過(guò)濾器緩存擊穿用互斥鎖或者邏輯過(guò)期緩存雪崩就是加隨機(jī)過(guò)期時(shí)間還有限流降級(jí)。這個(gè)我熟”他差點(diǎn)把“九陽(yáng)真經(jīng)”背出來(lái)。面試官點(diǎn)點(diǎn)頭但沒(méi)夸他而是問(wèn)了一個(gè)更實(shí)際的問(wèn)題“好那如果Redis集群中某個(gè)節(jié)點(diǎn)掛了主從切換時(shí)數(shù)據(jù)會(huì)不會(huì)丟你怎么配置Redisson的分布式鎖”“這個(gè)……”謝飛機(jī)卡殼了“主從切換……可能會(huì)丟一點(diǎn)數(shù)據(jù)因?yàn)楫惒綇?fù)制。但Redisson鎖默認(rèn)是用的看門(mén)狗續(xù)期嗯……只要設(shè)置他的主從節(jié)點(diǎn)都加鎖就不會(huì)有點(diǎn)問(wèn)題但我不太記得具體API了?!泵嬖嚬倏戳丝磿r(shí)間說(shuō)“第一輪先到這里。我們進(jìn)入第二輪?!敝x飛機(jī)擦了擦汗心想這面試官怎么總問(wèn)細(xì)節(jié)我那些模板答案怎么不管用了第二輪電商與本地生活服務(wù)的微服務(wù)挑戰(zhàn)面試官調(diào)整了一下坐姿說(shuō)道“我們公司除了音視頻還有電商和本地生活業(yè)務(wù)。假設(shè)你現(xiàn)在要做一個(gè)外賣(mài)下單系統(tǒng)涉及訂單服務(wù)、庫(kù)存服務(wù)、優(yōu)惠券服務(wù)、支付服務(wù)。你如何做微服務(wù)拆分服務(wù)間怎么通信”謝飛機(jī)這次學(xué)乖了先想了想“用Spring Cloud Alibaba服務(wù)發(fā)現(xiàn)用Nacos服務(wù)間用OpenFeign。每個(gè)服務(wù)獨(dú)立數(shù)據(jù)庫(kù)用Seata處理分布式事務(wù)?!彼低悼戳艘谎勖嬖嚬俚哪樕孟駴](méi)剛才那么嚴(yán)肅了?!班潘悸窙](méi)錯(cuò)。那如果用戶(hù)下單時(shí)先扣庫(kù)存再減優(yōu)惠券最后創(chuàng)建訂單但支付環(huán)節(jié)超時(shí)了庫(kù)存已經(jīng)扣了怎么辦”面試官追問(wèn)。“這個(gè)……可以用本地消息表就是先在一個(gè)事務(wù)里更新庫(kù)存和寫(xiě)消息表然后通過(guò)消息隊(duì)列通知其他服務(wù)?;蛘哂肧eata的Saga模式補(bǔ)償性事務(wù)?!敝x飛機(jī)記得這些名詞但解釋起來(lái)有點(diǎn)亂。面試官?zèng)]有深究接著問(wèn)“那高并發(fā)下比如秒殺活動(dòng)瞬間有十萬(wàn)用戶(hù)搶購(gòu)。你的訂單服務(wù)和庫(kù)存服務(wù)怎么扛限流怎么做”謝飛機(jī)來(lái)了勁“用Redis預(yù)減庫(kù)存先把庫(kù)存加載到Redis里請(qǐng)求先走Redis判斷是否還有庫(kù)存有的話(huà)再異步發(fā)送消息到Kafka然后由訂單服務(wù)消費(fèi)創(chuàng)建訂單。限流可以用Sentinel或者Resilience4j支持滑動(dòng)窗口、令牌桶算法?!薄澳荢entinel的限流和熔斷規(guī)則你具體配置過(guò)嗎FlowRule和DegradeRule的參數(shù)怎么設(shè)”“呃……我一般是在控制臺(tái)配的那比如設(shè)置QPS每秒100超了直接拒絕。熔斷就是錯(cuò)誤率超過(guò)50%主動(dòng)降級(jí)?!泵嬖嚬偎坪趺銖?qiáng)接受繼續(xù)問(wèn)“支付結(jié)果通知是異步回調(diào)。你怎么保證冪等性”“冪等性……用唯一訂單號(hào)做唯一索引回調(diào)的時(shí)候先查一下?tīng)顟B(tài)如果已經(jīng)是已支付就不處理?;蛘哂肦edis的SETNX鎖設(shè)置一個(gè)處理中標(biāo)記?!薄澳侨f(wàn)一回調(diào)重復(fù)發(fā)送第一個(gè)請(qǐng)求處理到一半第二個(gè)請(qǐng)求也進(jìn)來(lái)了怎么辦你用的是數(shù)據(jù)庫(kù)唯一約束還是Redis鎖如果Redis鎖過(guò)期了呢”面試官連環(huán)追問(wèn)。謝飛機(jī)有點(diǎn)暈“那……我就用數(shù)據(jù)庫(kù)唯一約束插入一個(gè)支付流水如果主鍵沖突就說(shuō)明已經(jīng)處理過(guò)了。Redis鎖過(guò)期就在續(xù)期用Redisson的看門(mén)狗……但具體源碼我沒(méi)深入?!泵嬖嚬俨恢每煞褶D(zhuǎn)個(gè)方向“我注意到安全方面你們的支付服務(wù)怎么簽名的OAuth2和JWT分別用在什么場(chǎng)景”“JWT是無(wú)狀態(tài)token用在登錄認(rèn)證。OAuth2是授權(quán)框架第三方登錄用比如微信登錄就是OAuth2。簽名的話(huà)我們是用MD5加鹽或者RSA私鑰簽名然后對(duì)方用公鑰驗(yàn)簽?!敝x飛機(jī)這次回答總算沒(méi)太跑偏。面試官終于點(diǎn)了點(diǎn)頭“嗯JWT和OAuth2的區(qū)別你說(shuō)得大致對(duì)。那Spring Security的過(guò)濾器鏈你用過(guò)嗎比如在網(wǎng)關(guān)層的Token校驗(yàn)怎么實(shí)現(xiàn)”謝飛機(jī)遲疑了幾秒說(shuō)“Spring Security的過(guò)濾器鏈……我大概知道有UsernamePasswordAuthenticationFilter、JwtAuthenticationFilter這些但讓我自己寫(xiě)一個(gè)我可能需要查一下。網(wǎng)關(guān)用的Spring Cloud Gateway可以寫(xiě)GlobalFilter去校驗(yàn)token?!泵嬖嚬僬f(shuō)“行那我們就最后一輪吧?!敝x飛機(jī)心里一緊還有一輪第三輪AIGC與智能推薦——面試官終于露出了獠牙“你已經(jīng)扛過(guò)兩輪了。最后一輪結(jié)合當(dāng)前熱點(diǎn)我們做AIGC內(nèi)容社區(qū)。用戶(hù)輸入一段文字后端調(diào)用大模型生成圖片同時(shí)根據(jù)用戶(hù)行為做個(gè)性化推薦。你的技術(shù)選型”面試官眼神中閃過(guò)一絲興奮。謝飛機(jī)深吸了一口氣“這個(gè)我了解最近很火。大模型調(diào)用可以用OpenAI的API或者用HuggingFace的模型。Java的話(huà)調(diào)用Python服務(wù)可以用gRPC或者HTTP接口。推薦的話(huà)……用協(xié)同過(guò)濾算法但我沒(méi)實(shí)際寫(xiě)過(guò)?!薄安豢紤]Python服務(wù)純Java生態(tài)。你了解Spring AI框架嗎或者LangChain4j如果不用這些你怎么實(shí)現(xiàn)和模型交互”面試官步步緊逼。“Spring AI哦好像是一個(gè)新項(xiàng)目。我沒(méi)實(shí)際用過(guò)不過(guò)我們知道它是用來(lái)對(duì)接OpenAI、Azure這些模型API的。LangChain4j也聽(tīng)說(shuō)但沒(méi)深入。純Java的話(huà)我可以直接用RestTemplate調(diào)用HTTP接口把prompt發(fā)過(guò)去然后接收生成的文本或圖片URL?!敝x飛機(jī)勉強(qiáng)擠出幾句?!澳巧傻膱D片用戶(hù)可能會(huì)頻繁生成比如一天幾十次。這些數(shù)據(jù)量怎么存入數(shù)據(jù)庫(kù)圖片的元信息、模型參數(shù)、提示詞你如何設(shè)計(jì)表結(jié)構(gòu)如何做分庫(kù)分表”謝飛機(jī)有點(diǎn)崩潰“這個(gè)……我雖然知道分庫(kù)分表有ShardingSphere但沒(méi)真實(shí)搞過(guò)。就先用MySQL存然后加索引唄。如果量太大再用ES存”他自己都覺(jué)得不靠譜。面試官笑了笑“那內(nèi)容推薦怎么做比如用戶(hù)A收藏了一幅賽博朋克風(fēng)格的圖片用戶(hù)B也喜歡。你怎么在Redis里存儲(chǔ)他們的偏好然后推薦相似內(nèi)容”“可以……用Redis的Set存用戶(hù)偏好標(biāo)簽然后做交集找到相似用戶(hù)再推薦他們喜歡的圖片。用ZSet存圖片熱度按分?jǐn)?shù)排序。還可以用Caffeine做本地緩存減少Redis壓力?!敝x飛機(jī)居然說(shuō)出了一個(gè)可行的思路。面試官追問(wèn)“那把熱門(mén)圖片的詳情放Caffeine冷數(shù)據(jù)放Redis再底層內(nèi)存MySQL你如何保證Caffeine和Redis一致如果后臺(tái)更新了圖片怎么讓Caffeine失效”“用Spring Cache的CacheEvict在更新圖片后調(diào)用一下就會(huì)刪除緩存。Caffeine可以設(shè)置一個(gè)很短的過(guò)期時(shí)間比如幾秒這樣不一致窗口很小。”謝飛機(jī)回答得倒是挺快。面試官點(diǎn)了點(diǎn)頭又拋出一個(gè)殺手锏“大模型生成的Prompt用戶(hù)可能輸入惡意文本。你需要做內(nèi)容安全過(guò)濾。你如何用Java實(shí)現(xiàn)一個(gè)敏感詞過(guò)濾如果調(diào)用第三方審核API超時(shí)了怎么辦熔斷降級(jí)怎么做”“敏感詞……用AC自動(dòng)機(jī)把敏感詞庫(kù)加載到內(nèi)存構(gòu)建Trie樹(shù)匹配效率是O(n)。如果第三方API超時(shí)我可以設(shè)置HttpClient的連接超時(shí)和讀取超時(shí)比如2秒如果超過(guò)就用Resilience4j的TimeLimiter和CircuitBreaker熔斷直接返回默認(rèn)審核結(jié)果或者人工審核?!泵嬖嚬俳K于露出了一點(diǎn)贊賞之色“你居然知道AC自動(dòng)機(jī)。那你能手寫(xiě)一個(gè)嗎”謝飛機(jī)撓了撓頭“手寫(xiě)……我只能寫(xiě)個(gè)大概就是先建Trie樹(shù)然后失敗指針然后匹配。但具體代碼我記不全了。”面試官笑了“好謝飛機(jī)同學(xué)今天的面談就到這里吧。你的知識(shí)面還可以但很多技術(shù)細(xì)節(jié)掌握得不夠扎實(shí)。我們需要一個(gè)能深入原理、解決實(shí)際問(wèn)題的工程師。你先回去等通知吧?!敝x飛機(jī)站起來(lái)心想“果然是大廠(chǎng)問(wèn)得真細(xì)。雖然我涼了但學(xué)到了不少?;厝サ冒袺afka和Redisson源碼啃一遍。”他正要出門(mén)面試官又叫住他“對(duì)了你簡(jiǎn)歷上寫(xiě)的‘熟悉分布式事務(wù)’能說(shuō)說(shuō)Seata的AT模式具體怎么實(shí)現(xiàn)的嗎”謝飛機(jī)愣住了張了張嘴“那個(gè)……就是……通過(guò)全局事務(wù)管理器呃……生成前后鏡像然后……嘿嘿面試官您等著我回去一定把答案整理出來(lái)下次再來(lái)”面試官默默關(guān)閉了面試房間。附完整答案詳解——每一輪的技術(shù)點(diǎn)和業(yè)務(wù)場(chǎng)景梳理為了讓像謝飛機(jī)一樣的小白能真正學(xué)到東西我們把面試中的問(wèn)題一一拆解結(jié)合業(yè)務(wù)場(chǎng)景給出清晰的答案。第一輪音視頻場(chǎng)景場(chǎng)景描述短視頻App用戶(hù)上傳視頻后端需要轉(zhuǎn)碼格式轉(zhuǎn)換、壓縮、生成縮略圖支持彈幕實(shí)時(shí)推送。涉及高并發(fā)上傳、異步處理、緩存熱點(diǎn)數(shù)據(jù)。問(wèn)題1怎么設(shè)計(jì)后端技術(shù)架構(gòu)答案上傳服務(wù)使用Spring Boot構(gòu)建一個(gè)HTTP接口接收multipart文件但不要把大文件直接給后端。通常采用分片上傳斷點(diǎn)續(xù)傳客戶(hù)端把文件切成5MB左右的分片上傳完成后由服務(wù)端合并。分片信息存在Redis中比如用Hash記錄uploadId - 分片序號(hào) - ETag。異步處理因?yàn)檗D(zhuǎn)碼是耗時(shí)任務(wù)收到完整文件后把轉(zhuǎn)碼任務(wù)包括視頻路徑、分辨率、碼率等參數(shù)發(fā)送到Kafka。Kafka的Topic可以叫video-transcode消費(fèi)者端部署獨(dú)立的轉(zhuǎn)碼服務(wù)可以單獨(dú)用Docker容器或K8s Pod資源與Web服務(wù)隔離。轉(zhuǎn)碼實(shí)現(xiàn)Java調(diào)用FFmpeg命令行或者構(gòu)建微服務(wù)用ProcessBuilder執(zhí)行ffmpeg -i input.mp4 -c:v libx264 -preset fast -b:v 2000k output.flv。生成縮略圖可以用FFmpeg的-ss 1 -vframes 1提取某一幀。彈幕推送使用WebSocketSpring Boot支持ServerEndpoint但在高并發(fā)下需要做集群解決連接會(huì)話(huà)在哪個(gè)節(jié)點(diǎn)的問(wèn)題??梢杂肦edis發(fā)布訂閱或Kafka將彈幕消息廣播到所有WebSocket節(jié)點(diǎn)的內(nèi)存隊(duì)列再推給連接在本節(jié)點(diǎn)的用戶(hù)。問(wèn)題2上傳量大消息隊(duì)列有什么用如何資源隔離答案消息隊(duì)列削峰上傳請(qǐng)求先進(jìn)入網(wǎng)關(guān)寫(xiě)入Kafka然后立即返回“上傳成功正在處理”。轉(zhuǎn)碼服務(wù)按自身消費(fèi)能力拉取消息即使瞬間產(chǎn)生十萬(wàn)條轉(zhuǎn)碼請(qǐng)求也不會(huì)打垮轉(zhuǎn)碼服務(wù)。資源隔離Docker容器限制CPU和內(nèi)存比如--cpus2 --memory4g。Kubernetes里給轉(zhuǎn)碼服務(wù)設(shè)置resources.limits.cpu: 4。這樣Web服務(wù)堆積也不會(huì)影響轉(zhuǎn)碼服務(wù)反過(guò)來(lái)轉(zhuǎn)碼服務(wù)高負(fù)載也不會(huì)拖垮Web服務(wù)。問(wèn)題3轉(zhuǎn)碼進(jìn)度如何通知客戶(hù)端答案推薦使用WebSocket主動(dòng)推送??蛻?hù)端建立連接時(shí)帶上videoId后端在轉(zhuǎn)碼的每個(gè)階段已上傳、轉(zhuǎn)碼中、轉(zhuǎn)碼成功、轉(zhuǎn)碼失敗通過(guò)WebSocket發(fā)送消息消息體包含狀態(tài)碼和進(jìn)度百分比。另外可以提供一個(gè)REST APIGET /videos/{id}/status供客戶(hù)端輪詢(xún)但輪詢(xún)有延遲且浪費(fèi)資源。優(yōu)先使用WebSocket若客戶(hù)端不支持則降級(jí)為輪詢(xún)。問(wèn)題4Kafka消息不丟失ack和offset怎么配置答案生產(chǎn)者不丟消息設(shè)置acksall或者-1只有分區(qū)所有ISR副本都收到消息才返回成功。同時(shí)設(shè)置retries3和enable.idempotencetrue冪等性。消費(fèi)者不丟消息關(guān)閉自動(dòng)提交enable.auto.commitfalse在業(yè)務(wù)邏輯處理完成后手動(dòng)提交offset。比如消費(fèi)轉(zhuǎn)碼消息先執(zhí)行FFmpeg命令然后consumer.commitSync()。如果執(zhí)行失敗不提交offset下一條消息拉取時(shí)會(huì)重新消費(fèi)。Broker不丟消息復(fù)制因子replication.factor3min.insync.replicas2避免leader故障時(shí)數(shù)據(jù)丟失。問(wèn)題5Redis緩存設(shè)計(jì)穿透、擊穿、雪崩答案緩存結(jié)構(gòu)視頻元信息用Hash存儲(chǔ)字段如video:123- {title, author, coverUrl, duration}。點(diǎn)贊數(shù)用String存整數(shù)字符串用Redis的INCR/DECR操作。也可以把點(diǎn)贊數(shù)寫(xiě)成video:likes:123。緩存穿透查詢(xún)一個(gè)不存在的videoId緩存和數(shù)據(jù)庫(kù)都沒(méi)有。解決布隆過(guò)濾器把所有存在的videoId提前放入或緩存空值設(shè)置短過(guò)期時(shí)間如5分鐘。緩存擊穿某個(gè)熱點(diǎn)視頻過(guò)期大量請(qǐng)求同時(shí)打到數(shù)據(jù)庫(kù)。解決互斥鎖SET lock:video:123 NX EX 10、熱點(diǎn)數(shù)據(jù)邏輯過(guò)期在value中設(shè)置邏輯過(guò)期時(shí)間異步刷新。緩存雪崩大量key同時(shí)過(guò)期。解決過(guò)期時(shí)間加隨機(jī)數(shù)比如300~600秒之間或使用多級(jí)緩存本地緩存Redis或?qū)?shù)據(jù)庫(kù)限流降級(jí)。問(wèn)題6Redis集群主從切換數(shù)據(jù)丟失Redisson分布式鎖如何設(shè)置答案主從切換丟數(shù)據(jù)問(wèn)題在Redis主從復(fù)制是異步的若主節(jié)點(diǎn)故障未同步到從節(jié)點(diǎn)的數(shù)據(jù)會(huì)丟失。使用Redisson的RedissonMultiLock聯(lián)鎖可以同時(shí)鎖主節(jié)點(diǎn)和所有從節(jié)點(diǎn)只要全部加鎖成功才算成功。配置方法創(chuàng)建多個(gè)RLock然后multiLock.lock()。但實(shí)際生產(chǎn)更推薦使用Redlock算法實(shí)現(xiàn)于Redisson它建議對(duì)5個(gè)獨(dú)立Redis節(jié)點(diǎn)加鎖超過(guò)3個(gè)成功才算獲取鎖。確實(shí)能提高安全性但也不能100%保證存在時(shí)鐘漂移等場(chǎng)景。簡(jiǎn)答時(shí)可以說(shuō)“使用Redisson的聯(lián)鎖并對(duì)關(guān)鍵操作結(jié)合Zookeeper或數(shù)據(jù)庫(kù)樂(lè)觀(guān)鎖做兜底”。第二輪電商與本地生活服務(wù)場(chǎng)景描述外賣(mài)下單系統(tǒng)包含訂單、庫(kù)存、優(yōu)惠券、支付服務(wù)。典型的微服務(wù)分布式事務(wù)問(wèn)題、高并發(fā)秒殺問(wèn)題、支付冪等性問(wèn)題、安全認(rèn)證問(wèn)題。問(wèn)題1微服務(wù)拆分與服務(wù)間通信答案按業(yè)務(wù)域拆分為order-service、inventory-service、coupon-service、payment-service、user-service。每個(gè)服務(wù)獨(dú)立數(shù)據(jù)庫(kù)避免跨庫(kù)關(guān)聯(lián)查詢(xún)。服務(wù)間通信同步調(diào)用用OpenFeign Spring Cloud LoadBalancer或Ribbon異步調(diào)用用Kafka/RabbitMQ。比如下單時(shí)訂單服務(wù)調(diào)用庫(kù)存服務(wù)扣減庫(kù)存同步扣減成功后再向訂單狀態(tài)變更Topic發(fā)送消息由支付服務(wù)監(jiān)聽(tīng)觸發(fā)支付流程。分布式事務(wù)優(yōu)先使用最終一致性方案如本地消息表、事務(wù)消息RocketMQ或Seata的AT/TCC模式。嚴(yán)格一致性場(chǎng)景如支付扣款用TCC或Saga。問(wèn)題2支付超時(shí)庫(kù)存已扣了怎么辦答案本地消息表方案在訂單服務(wù)里將“扣庫(kù)存”和“寫(xiě)消息表”放在同一個(gè)本地事務(wù)中步驟更新庫(kù)存扣減量插入一條狀態(tài)為NEW的消息。然后后臺(tái)任務(wù)把消息發(fā)送給MQ消費(fèi)者處理后續(xù)邏輯如果處理失敗MQ重試重試多次失敗則調(diào)用補(bǔ)償接口如釋放庫(kù)存。Seata Saga模式定義正向服務(wù)扣庫(kù)存、減優(yōu)惠券、創(chuàng)建訂單和反向補(bǔ)償服務(wù)回滾庫(kù)存、恢復(fù)優(yōu)惠券、取消訂單。通過(guò)狀態(tài)機(jī)編排任何一步失敗自動(dòng)執(zhí)行已經(jīng)完成步驟的補(bǔ)償操作。實(shí)際面試時(shí)不能說(shuō)“用Seata就完事”要具體說(shuō)Saga適合長(zhǎng)事務(wù)但無(wú)隔離性需要業(yè)務(wù)層防臟讀。例如扣庫(kù)存時(shí)加“凍結(jié)庫(kù)存”支付超時(shí)后解凍。問(wèn)題3秒殺場(chǎng)景高并發(fā)限流怎么做答案四層防護(hù)前端按鈕置灰、隨機(jī)延時(shí)、驗(yàn)證碼。網(wǎng)關(guān)Sentinel或Spring Cloud Gateway全局限流按用戶(hù)ID限流如每秒1次、按IP限流如每秒10次。Redis預(yù)減庫(kù)存秒殺前把庫(kù)存預(yù)熱到RedisSET seckill:stock:1 100。請(qǐng)求進(jìn)入時(shí)執(zhí)行Lua腳本原子性操作if redis.call(GET, key) 0 then return 0 end return redis.call(DECR, key)如果返回0直接返回“已搶光”。減庫(kù)存成功后再把用戶(hù)ID和數(shù)據(jù)寫(xiě)入Kafka異步創(chuàng)建訂單和扣減DB庫(kù)存。數(shù)據(jù)庫(kù)限流防止超賣(mài)UPDATE inventory SET stock stock - 1 WHERE id ? AND stock 0影響行數(shù)為1才成功。Sentinel配置FlowRule設(shè)置資源名、QPS閾值例如200和拒絕策略直接拒絕或預(yù)熱。DegradeRule設(shè)置熔斷條件如異常比例超過(guò)0.2熔斷10秒。問(wèn)題4支付回調(diào)的冪等性答案支付平臺(tái)如微信、支付寶會(huì)多次異步回調(diào)同一訂單可能最多發(fā)幾十次通知。服務(wù)端必須冪等。方案在payment_notify表創(chuàng)建唯一索引(order_id, transaction_id)?;卣{(diào)處理器首先查詢(xún)?cè)摫砣绻嬖谡f(shuō)明已處理直接返回“SUCCESS”。如果不存在則嘗試插入若插入成功則繼續(xù)更新訂單狀態(tài)若插入時(shí)發(fā)生主鍵沖突并發(fā)重復(fù)請(qǐng)求到了則回滾并進(jìn)行查詢(xún)確認(rèn)已經(jīng)處于處理狀態(tài)后返回成功。也可以使用Redis的SET order:pay:123 1 NX EX 120但Redis鎖過(guò)期可能造成并發(fā)問(wèn)題最好持久化唯一約束作為兜底。問(wèn)題5JWT、OAuth2和簽名答案JWT一種無(wú)狀態(tài)Token由Header.Payload.Signature組成。適合單點(diǎn)登錄但無(wú)法主動(dòng)失效因此需要配合黑名單或短過(guò)期時(shí)間。用于認(rèn)證“你是誰(shuí)”。OAuth2授權(quán)框架解決第三方應(yīng)用如何獲得用戶(hù)授權(quán)。比如微信登錄用戶(hù)跳轉(zhuǎn)微信授權(quán)頁(yè)微信返回code后端用code換取access_token。用于授權(quán)“允許誰(shuí)訪(fǎng)問(wèn)”。兩者關(guān)系OAuth2可以用JWT作為access_token的格式。Spring Security OAuth2里JwtBearerTokenAuthenticationConverter可以解析JWT。API簽名商戶(hù)平臺(tái)對(duì)接支付網(wǎng)關(guān)時(shí)通常用私鑰對(duì)請(qǐng)求參數(shù)按字典序拼接加nonce和時(shí)間戳做RSA簽名支付網(wǎng)關(guān)用公鑰驗(yàn)簽防止篡改和重放。MD5加鹽更弱推薦RSA/SHA256withRSA。問(wèn)題6Spring Security過(guò)濾器鏈和網(wǎng)關(guān)Token校驗(yàn)答案Spring Security的過(guò)濾器鏈核心是FilterChainProxy常見(jiàn)過(guò)濾器有SecurityContextPersistenceFilter恢復(fù)上下文、UsernamePasswordAuthenticationFilter處理表單登錄、JwtAuthenticationFilter自定義解析Token、ExceptionTranslationFilter、AuthorizationFilter鑒權(quán)。可以自己實(shí)現(xiàn)一個(gè)OncePerRequestFilter在doFilterInternal里解析HTTP Header中的Authorization: Bearer xxx把Authentication對(duì)象保存到SecurityContext。在微服務(wù)網(wǎng)關(guān)Spring Cloud Gateway中可以使用GlobalFilterOrdered。實(shí)現(xiàn)思路獲取請(qǐng)求頭token調(diào)用用戶(hù)服務(wù)校驗(yàn)或本地JWT解析如果合法則把用戶(hù)ID寫(xiě)入請(qǐng)求頭轉(zhuǎn)發(fā)給下游不合法則返回401。同時(shí)網(wǎng)關(guān)也可以做白名單校驗(yàn)如/login、/register不用token。第三輪AIGC與智能推薦場(chǎng)景描述AIGC內(nèi)容社區(qū)用戶(hù)輸入prompt后端調(diào)用大模型生成圖片同時(shí)根據(jù)用戶(hù)行為做個(gè)性化推薦。涉及調(diào)用外部AI服務(wù)、內(nèi)容安全、緩存一致性、推薦算法基礎(chǔ)。問(wèn)題1Java如何調(diào)用大模型Spring AI和LangChain4j是什么答案Spring AISpring官方提供的AI框架類(lèi)似Spring生態(tài)的AI客戶(hù)端。支持ChatModel、TextToImageModel等。比如Service public class AiService { private final OpenAiChatModel chatModel; public String generateImage(String prompt) { return textToImageModel.call(prompt); } }通過(guò)自定義RestTemplate或WebClient調(diào)用OpenAI的/v1/images/generations接口把prompt和參數(shù)size、n放進(jìn)JSON請(qǐng)求體解析返回的圖片URL。LangChain4jJava版LangChain支持面向AI模型的可組合能力、RAG、記憶等但實(shí)際生產(chǎn)中也還是走HTTP。如果不用框架可以用RestClient來(lái)發(fā)HTTP請(qǐng)求再配合Jackson解析JSON。需要注意超時(shí)連接超時(shí)2秒、讀超時(shí)30秒因?yàn)閳D片生成慢。為了不阻塞主線(xiàn)程應(yīng)該用異步WebClient調(diào)用或者把請(qǐng)求拋出到消息隊(duì)列由專(zhuān)門(mén)的工作線(xiàn)程池處理再由WebSocket推送生成結(jié)果給用戶(hù)。問(wèn)題2數(shù)據(jù)量大、分庫(kù)分表怎么設(shè)計(jì)答案表設(shè)計(jì)prompt_record提示詞記錄id、user_id、prompt_text、model_name、parameters_json、create_time。image_record生成圖片記錄id、record_id、object_keyOSS地址、width、height、size、status生成中/成功/失敗、audit_status未審核/通過(guò)/拒絕、create_time。分庫(kù)分表用戶(hù)量大后按user_id對(duì)數(shù)據(jù)庫(kù)分片比如32個(gè)庫(kù)每個(gè)庫(kù)64張表庫(kù)號(hào) user_id % 32表號(hào) (user_id / 32) % 64。同時(shí)create_time作為二級(jí)索引的分頁(yè)查詢(xún)?nèi)绻肊S就能避免跨庫(kù)分頁(yè)問(wèn)題。不要用SELECT *盡量只查熱點(diǎn)字段。元信息放MySQL大文本prompt原文、生成參數(shù)JSON可以存到MongoDB或OSSMySQL只存關(guān)聯(lián)ID。問(wèn)題3基于Redis做個(gè)性化推薦答案用戶(hù)偏好標(biāo)簽用戶(hù)收藏圖片時(shí)給圖片打標(biāo)簽如“賽博朋克”、“落日”、“機(jī)械姬”在Redis中維護(hù)一個(gè)Setuser:tags:123里添加cyberpunk、anime等。相似用戶(hù)用SINTER user:tags:123 user:tags:456獲取共同標(biāo)簽定義相似度為交集大小。然后找最相似用戶(hù)的喜歡圖片也存成Setuser:likes:456。候選推薦把相似用戶(hù)喜歡的圖片ID取出來(lái)過(guò)濾掉當(dāng)前用戶(hù)已看過(guò)的可以用SISMEMBER然后給圖片分?jǐn)?shù)排序。分?jǐn)?shù)可以用ZSetrecommend:images:123中每個(gè)圖片的分?jǐn)?shù)按喜歡人數(shù)×0.6 標(biāo)簽匹配度×0.4計(jì)算。本地緩存熱門(mén)的圖片詳情用Caffeine緩存冷數(shù)據(jù)和用戶(hù)行為用Redis底層MySQL落庫(kù)。注意Caffeine緩存和Redis之間的數(shù)據(jù)一致性在更新圖片時(shí)使用CacheEvict刪除本機(jī)Caffeine同時(shí)發(fā)布Redis消息其他服務(wù)監(jiān)聽(tīng)到后刪除各自的Caffeine緩存?;蛘咴O(shè)置Caffeine很短的過(guò)期時(shí)間比如5秒降低不一致窗口。問(wèn)題4敏感詞過(guò)濾和第三方審核API熔斷答案敏感詞過(guò)濾使用AC自動(dòng)機(jī)Aho-Corasick。將敏感詞庫(kù)建立Trie樹(shù)每個(gè)節(jié)點(diǎn)有fail指針指向失配時(shí)跳躍的位置。匹配時(shí)遍歷文本字符根據(jù)fail指針跳轉(zhuǎn)可以在O(n)時(shí)間內(nèi)找出所有敏感詞。Java實(shí)現(xiàn)偽代碼class AcNode { MapCharacter, AcNode children new HashMap(); AcNode fail; boolean isEnd; // 是否為一個(gè)敏感詞的結(jié)尾 int length; // 詞長(zhǎng) } public boolean containsSensitive(String text) { AcNode cur root; for (char ch : text.toCharArray()) { while (cur ! root !cur.children.containsKey(ch)) { cur cur.fail; } cur cur.children.containsKey(ch) ? cur.children.get(ch) : root; for (AcNode p cur; p ! root; p p.fail) { if (p.isEnd) return true; } } return false; }實(shí)際可結(jié)合第三方審核如阿里云內(nèi)容安全做圖片和文本的機(jī)審人工審核。超時(shí)熔斷使用HttpClient時(shí)設(shè)置connectTimeout(2s)、readTimeout(2s)。使用Resilience4jTimeLimiter設(shè)置最大調(diào)用時(shí)間2秒CircuitBreaker設(shè)置滑動(dòng)窗口大小比如10秒內(nèi)50%請(qǐng)求失敗則熔斷熔斷后返回本地默認(rèn)結(jié)果比如auditResultpass低風(fēng)險(xiǎn)場(chǎng)景或轉(zhuǎn)人工審核隊(duì)列。Bulkhead隔離限制并發(fā)調(diào)用數(shù)量比如最大并發(fā)10個(gè)超出就排隊(duì)或快速失敗。問(wèn)題5AC自動(dòng)機(jī)能手寫(xiě)嗎答案面試官不要求你立刻寫(xiě)500行代碼但你需要說(shuō)出構(gòu)建過(guò)程構(gòu)建Trie樹(shù)插入每個(gè)敏感詞路徑上的字符作為分支。構(gòu)建失敗指針BFS遍歷Trie樹(shù)。根節(jié)點(diǎn)的孩子fail指向root其他節(jié)點(diǎn)假設(shè)當(dāng)前節(jié)點(diǎn)為p父節(jié)點(diǎn)為fp是f的孩子字符為c。則看f.fail有沒(méi)有字符為c的孩子有則p.fail f.fail.children.get(c)否則繼續(xù)向上。直到root。匹配從root開(kāi)始遍歷文本字符如果當(dāng)前節(jié)點(diǎn)有該字符的子節(jié)點(diǎn)就往下走否則跳到fail直到找到匹配路徑或回到root。每次到達(dá)節(jié)點(diǎn)從該節(jié)點(diǎn)沿fail鏈檢查是否有isEnd如果有則說(shuō)明命中敏感詞??偨Y(jié)用空間換時(shí)間適用于敏感詞量不大的場(chǎng)景幾千條。如果幾百萬(wàn)詞條則考慮更高效的雙數(shù)組TrieDouble-Array Trie。面試官最后一句“回家等通知”說(shuō)明了什么謝飛機(jī)雖然表現(xiàn)了不少亮點(diǎn)能說(shuō)出AC自動(dòng)機(jī)、Respire4j但總體深度不足。面試官在結(jié)束時(shí)補(bǔ)充的那個(gè)問(wèn)題其實(shí)就是一種含蓄的否決“你簡(jiǎn)歷上寫(xiě)的熟悉分布式事務(wù)但我一問(wèn)細(xì)節(jié)你就答不上來(lái)?!?所以大家在校招或社招面試時(shí)不要背干巴巴的八股文一定要掌握技術(shù)背后的原理并且結(jié)合項(xiàng)目/場(chǎng)景去說(shuō)清楚。否則下一輪謝飛機(jī)就是你。不過(guò)沒(méi)關(guān)系謝飛機(jī)回去之后把這些問(wèn)題都整理成了文檔又買(mǎi)了幾本《Kafka權(quán)威指南》《Redisson源碼解析》開(kāi)始扎扎實(shí)實(shí)地啃源碼。下次面試他一定能挺進(jìn)最后一輪祝他好運(yùn)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九精品在线视频观看| 成人无码精品1区2区3区免费看| 日本超碰在线| xxxx五月激情| 亚洲中字AV电影在线网站| 牛牛澡牛牛爽| 新99思思视频| 亚洲色碰| 久久久全国免费视频| 六月99天天婷婷激情综合| 第五色婷婷| 青青操成人福利| 天天婷婷色六月| 人人摸人人操人人爱| 亚洲色欲AAAAAA| 成人做爰A片免费看网站找不到了| 欧洲亚洲免费视频区| 天天操天天插| 色婷婷狠狠干芒果TV| 超碰成人影视| 成人精品在线| 九九精品视频在线6| 日韩大片艹艹| 久久丁香五月婷婷| 丁香五月婷婷基地| 天天做天天爱天天日| 婷婷亚洲在线| 任你草| 激情涩涩网| 最近中文字幕2019视频1| 97久久香草精品视频| 色综色网| 99久热| 色999;丁香五月| 日韩成人电影av| 色色色成人网| 亚洲va国产va天堂va综合va| 五月天色综合服务平台| 伊人激情啪啪| 人人爽欧美婷婷久久久五月丁香| 天天拍天天操| 婷婷九月色| 婷婷五月天性| 婷婷五月天中文字幕| 丁香九九九九| 狠狠色网| 777久久久| 99日热在线视频| 六月婷婷五月丁香| 中文字幕,综合,91| 色五月天.con| 影音先锋激情网| 色色色婷婷| 99色在线| WW婷婷五月天com| 日日夜夜干| 99热这里都是精品| 狠狠操综合| 五月天涩涩| 天天爽夜夜爽天天爽夜夜爽| 九九草热在线观看| 人人爱人人添| 色五狠狠| 五月色婷婷影院| 国产美女最新VA在线免费观看| 国产精品成人AV在线| 风流少妇A片一区二区蜜桃| 亚洲欧美婷婷五月色综合| www.婷婷五月| 香蕉AV777XXX色综合一区| 五月丁香色综合| 99久久激情视频| 久久婷婷综合五月天| www.狠狠色.com| 国产阿姨日皮艹逼内射视频| 午夜五月天| 六月综合在线| 婷婷九月丁香| 久久综合激情| 日本色色影院| 五月丁香激| 99ri精品在线观看| 激情婷婷综合网| 超级97碰碰| 婷婷五月花.97| 久草网大香视频| 噜噜色五月| 亚洲中文AV| 久操欧美在线观看97| 91精品国产综合久久久不卡电影| 久久久欧美精品sm网站| 91大神操美女| 色色色视频| www.夜夜騎夜夜狠| 久久九九热视频| 丁香成人色情五月天| 五月婷婷中文| 亚洲亚洲人成综合网络| 性欧美日本| 热99精品视频观看| 91九色中文字幕女在线观看| 女同激情久久av久久| av在线免费网站 | 丁香六月五月婷婷| 久久精彩免费视频| av国产精品| 色婷婷91激情小说| 思思视频这里是精品| www.五月丁香av| 久久奄也去色色网站| 天天摸天天日天天舔| 七七色色综合| 婷婷五月天淫荡| 99热热热天天人人人超超碰| 99色色热热| 日本九九热| 九九碰九九爱97超| 无码少妇高潮喷水A片免费| 九九九九九九综合| 国产精品久久7777777精品无码| 激情综合亚洲| 午夜亚洲国产精品av一区二区| 婷婷色日本| av中文网站| 超碰精品在线| 欧美 日韩 成人在线| 五月综合六月婷婷| 五月婷婷成人| 99操不停| 色播丁香五月婷婷操:屄| WWW.开心五月天.COM| 亚洲免费99| 久久综合9| 开心久久xxx色| 99热九九在线| 大香蕉综合视频在线| 另类天堂| 亚洲色优| 天堂网色婷婷| 五月丁香婷婷婷激情爱爱| 久久97久久99久久综合欧美| 99久久99九九九99九他书对| 激情婷婷丁香五月天| 大胆伊人久久| 亚洲人人操| 色婷婷色丁香色欲av| 亚洲日韩人妻操逼| 激情五月黄色| 激情婷婷五月天日本系列| 成人网在线观看视频| 在线观看五月婷婷网| 久热这里精品免费| 黄急一级视频| 丁香丝袜五月| 欧美日韩国产一区二区| 婷婷婷婷色| 色婷视频| 日韩无码专区| 丁香五月婷婷久久久| 久久五月丁香| 国产成人综合在线| 1024人妻| 六月色日韩| 99久久这里只有精品| 久久婷婷六月综合| 任你躁XXXXX麻豆精品| 丁香五月网络网络| 96丁香婷婷九月蜜桃综合久久| 五月丁香伊人网| 中文字幕丰满孑伦无码专区| 六月丁AV| 丁香婷婷婷婷十二月在线观看视频| 超碰renrenai| 精品成人在线| 99啪啪网| 综合久久影院| 亚洲无AV在线中文字幕| 人妻内射视频| 青草性爱视频| 婷婷五月天丁香成人社区| 色五月婷婷影院| 五月天综合在线| 丁香五月天激情综合| 99热九九这里只有精品10| 夫妇交换刺激做爰| 国产97色在线 | 日韩| 色五月婷婷91| 国产超碰在线| 丁香五月激情视频在线| 五月丁香无码| 五月婷婷性爱网| 天天干天天干天天干| 91se在线视频| 人妻Av在线| 狠狠色噜噜狠狠| 亚洲综合另类| 涩丁香| 天天日,天天干,天天操| 色很很96| 99人妻碰碰久久久禁片| 影音先锋一区| 青青草原精品久久| 狠狠看狠狠| 巴基斯坦粉嫩无码视频| 97亚洲色 torrent magnet| 久久综合久色欧美综合狠狠| 色综合激情| 无码人妻一区二区三区四区| 久久婷婷网| 欧美成人精品A片免费一区99| 久久人妻视步| 美女婷婷六月色| 99ER热精品视频| 丁香婷婷情色五月天| 久久久er热| 丁香五月色色婷| 亚洲第一综合| 激情五月深爱五月| 欧洲亚洲免费视频9 | 超碰色综合| 性做爰A片免费视频A片直播| 色色性爱视频| 亚洲va欧美va国产综合久久久| 婷婷午夜综合| 无码动漫AV| 九九成人| 日本三级日本三级99| 99色视频| 草五月| 77799热| 停停综合色色| 怡红院91a√| 国产精品99久久久久久久女警| 亚洲综合色丁香五月天| 五月天婷五月天综合网小说首页-五月天激激婷婷大综合,婷婷亚洲综合五月天小说 | 日韩久久日| 丁香五月电影| 99日本精品视频热| 日本久久人人| 色久女| 亚洲五月天婷婷在线| 天天综合亚洲综合网天天αⅴ| 99久久久久久久| 日日夜夜九九| 久久五月丁香综合| 色色色丁香| 五月激情小说| 亚洲第一成人无码A片| 五月综合视频| 欧美一级色| 九九自拍网| 狠狠干在线| 激情综合五月激情XXXX| 中文字幕婷婷五月天| 99狠狠| 婷婷激情四射五月天| se色婷婷视频| 色播激情| 大香蕉久久婷婷| 国产综合丁香五月天| 97五月婷| 成人人操| 99re热在线视频| 综合久久影院| 亚洲 成人 电影av在线观看| 色婷婷影视99| 26uuu精品一区二区| 六月丁香中文字幕| 五月天婷婷黄色视频| 综合欧美五月婷婷| 激情五月,深深爱五月| 99热的无码| 丁香六月亚洲综合| 伊人网啪啪| 激情六月天婷婷| 婷婷丁香激情综合色情| 色婷婷AV在线| 天天插天天插| 五月色亭丁香| 婷婷欧美综合| 婷婷五月天激情在线观看| 久久er这里只有精品| 99热九九这里只有精品10| 99热成人精品| 五月天婷婷成人| 五月天伊人| 亚洲综合久| 开心五月网| 婷色五月天| 日本在线播放97| 国产女人十八水真多1| 久久伊人婷| 久久狠狠干| 99思思在线视频| 日本va欧美va精品发布视频| 激情图片五月天| 久久色天堂| 伊人综合网站| 91chinese 在线| 啪啪色激情五月天| 俺也去婷婷五月天第五色| 丁香五月婷婷色五月| ss五月天激情| 天天日综合| 日本欧美在线| AⅤ在线播放网| 九九久久精品| 五月六月丁香激情| 国产精品人人做人人爽人人添| 人人综合色| 五月婷在线观看| www.五月婷婷| 国产无套精品一区二区| 免费观看全黄做爰的视频| 香蕉99网| 深爱五月天 开心网| 丁香五月天啪啪| 久久丁香五月天| 亚洲色婷婷| 99热欲| 噜综合| 色久五月天| 欧洲亚洲精品| 97久久精品| 国产精品久久久60086| 大香蕉天堂| 亚洲性爱AV在线| 天天色播| AV在线大香蕉| 亚洲免费电影2| 激情六月丁香综合| 色婷婷色99国产综合精品| 婷婷色狠狠| 丁香丁香激情网| 激情综合国产| 91天堂网综合| 99er精品视频| 人人操人人妻| 色五月婷婷五月久久| 大香蕉久久| 99久操| 亚州激情在线视频| 五月丁香啪啪| 五月丁香综合| 这里只有精品2| 成人毛片在线免费观看| 99色色视频| 热久久这里只有三级视频| 亚洲夜五月| 日韩99视频| 热久久这里只有三级视频| 日操五月婷| 亚洲操逼网| 120分钟婬片免费看| site:pnnrt.com| 九色视频入口91| 伊人深爱综合| www九月婷婷| 操啊操av| 人人干人人操外国| 99色视频| 婷婷五月深情丁香深爱日韩| 狠狠干夜夜干| 99热99思午夜精品| 丁香婷婷九月在线| 亚洲aV写真天天综合网久久| 超碰中文字幕在线| 九九热精品99| 久操婷婷| 国产精品人成A片一区二区| 人人人人人人人人人草| 亚洲黄色网址| 精品人妻久久久久| 小色小蛇伊人婷婷色香五月| 99热碰碰热| 日本精品99| 狠狠综合| 丁香花五月天| 激情文学 综合 九月| 99精品免费欧美小视频| 国产熟女大叫受不了| 99福利导航| 五月婷婷天堂| 亚洲第一成人无码A片| 五月婷婷狠天天色综合| 九九爱精品网站| 激情99在线视频| 七七色色综合| 久热无码| 色狠狠色噜噜AV天堂五区消防| 色婷婷啪啪| 婷婷色色丁香五月天| 草草视频91| 亚洲国产精品VA在线看黑人| 26uuu精品一区二区| 艹天天射| 丁香激情网| 热99只有里视频| 亚洲av成人电影在线观看| 久超超碰| 亚洲九九99精品视频在线播放| 亚洲性爱AV| 国产综合色婷婷精品久久| 色视频2025| av不卡网站| 天天日天天爽| 婷婷深爱五月亚洲综合| 色狠狠999综合| 被男人添B超爽视频| 九九精品在线网| 美女黄频aⅴ视频| 丰满女老板BD高清A片| 开心五月天激情网站| 色婷婷国产精品综合在线观看| www超碰| 骚。com| 99操视频| 91操屁股| 97人碰人操| 婷婷丁香五另类网站| 日日操,夜夜撸| 久久婷婷五月天蜜桃| 大战熟女丰满人妻AV| 91九色在线视频| 人人添人人| 99热综合在线| 99资源人人| 99视频自拍| 97色色综合| 婷婷成人综合五月| 精品在线| 中文字幕成人| 超碰成人av| 1级欧美日韩| 久久婷婷视频| 九九久久五月天| 丁香五月天天高清在线| 综合色五月天| 日本天天综合| 婷婷开心深爱五月天| 久久国产高潮白浆免费观看99| 日本综合色图| 激情五月婷婷视频一区二区三区| 91免费看片| 性天天中文网| 天天xxxxxx天天日| 激情www.98com| 激情色中文| 91se在线视频| 色五月首页| 任你擦免费视频| 手机在线视频观看9| 亚洲亚洲人成综合网络| 日日爽夜夜爽| 婷婷丁香在线| www.99热| 在线观看国产高清视频免费网站| 色五月综合| 五月天色不卡| 久久99热这里只频精品6学生| 大香蕉天堂| 色婷婷69| 久激情网| 五月婷婷之综合激情| 五月婷婷co.m| 九九热思思热| 欧美色色色| 日韩婷婷五月天| 色婷婷成人丁香| 婷婷香香五月| 五月天六月丁香| 中文人妻主播久久| 五月丁香婷婷啪啪综合网| 五月丁香六月激情狠狠| www色五月天| 中文国产五月天| 久热网站| 亚洲网站999| 99成人| 色老久久| 精品乱码久久久久| 超碰9799| 香蕉中文在线| 天天色月| 情涩婷婷五月天| 五月婷婷二月丁香| 成人网站免费在线播放| 五月丁香影院| 日韩国产AV播放| 日韩成人综合| 久久激情五月| 99性爱无码| WWW五月| 91日日日| 99性爱视频| 五月婷婷丁香日韩在线| 伊人玖玖网| 色色色99| 99视频这里只有久久精品| 婷婷六月花| 久色大| 成人av免费观看| 天天做天天爱天天高潮| 玖玖爱导航| 综合婷婷| 新精品99| 色色色色网| 亚洲日韩成人三级av| 激情五月天婷婷丁香| 婷婷少妇激情| 丁香久久| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 91热在线| 色婷婷精| 丁香五月情色| 亚洲五月婷婷| 欧美色男人网站| 欧美在线视频免费播放| 九九久久99| 亚洲旡码| 丁香五月天堂亚洲社区| 电影蜘蛛女| 九九热在线观看视频| 久久人人妻| 免费观看日韩成人av| 婷婷五月色| 色五月婷婷内射| 丁香九月婷婷| 五月丁香久久丝袜啪啪| 日本AAAAAAAAAAAAAA片| 五月丁香综合| 五月婷婷六月丁香综合| 五月婷婷在线播放| 亚洲精品V天堂中文字幕| 青青草轻轻操| 日韩视频99| 噼里啪啦完整版中文在线观看| www.99视频| 99碰视频| 精品亚洲VA网站| 九九成人视频| 99在线观看| 99视频这里有精品| 99在线看视频| 乱抡小BB| 少妇高潮A片无套内谢麻豆传| 日韩另类在线观看| 欧美黄色韩日网| 狠狠婷婷综合| 五月开心啪啪| 亚洲日韩乱码一区二区三区四区| 桃色五月婷婷| 九九成人视频| 99在线观看| 亚洲免费99| 六月婷婷视频| 丁香婷婷六月男男| 六月婷婷青青青视频| 思思久日精品视频| 色婷婷av综合网| 激情网 五月天| 色色五月婷| 色五月婷婷中文字幕| 亚洲六月婷婷| WWW免费视频碰碰碰碰| 五月天婷婷在线播放免费| 99色爱| 五月婷婷色丁香| 天天干,天天日| 九九色热| 97人妻碰碰中文无码久热丝袜| 色五月婷婷色| 亚洲色五月| www.五月天婷婷.com| 久久ab| 91久久久久久| 激情五月综合网| 99热香港| 涩丁香| 色色cOm| 无码字幕中文| 思思热在线精品视频| 日韩成人综合| 97人人干人人操| www色婷婷| 丁香六月婷婷色XXXXX| 狠狠干五月天婷婷网| 97人人草| www.色擼擼.com| 97ai婷婷| 欧美一级色| 久久久妻人人人| 99精品成人无码A片观看金桔| 日日操夜夜爽天天天| 婷婷丁香日韩五月| 天天玩夜夜操| 日木狠狠干| 国产精品久久久爽爽爽麻豆色哟哟| 99秘 在线| 婷婷五月综合社区在线| 99色中文| 成人五月天在线视频在线观看| 97caop| 久久久久这里只有精品| 99re66热这里只有精品| 五月婷婷啪啪啪啪| av在线激情| 综合丁香婷婷五月天| 操B无码视频国语| 久久天天| 97丁香五月天| 天天综合网~91| 激情五月影院| 玖玖资源站中文| 久久三级视频| 色吊操色妞| 九九这里都是精品| 欧美日韩AAAA| 五月花婷婷在线精品视频| 91女人18毛片水多国产| 激情五月天电影| www.亚洲激情| 色婷婷丁香五月| 97超级碰人人| 五月激情视频| 六月婷婷色色色| 开心五月婷婷六月丁香| 91婷婷色| 九月婷婷人人操人人舔人人爱| 九月激情网| 欧美性爱5月天天天看| 久久五月激情综合| 日噜噜色| 专区无日本视频高清8| 天天天干夜夜夜操| 狠狠色综合网站| 99爱视频精品| 四季AV综合网| 亚洲成人电影在线免费观看| 嫩草AV久久伊人妇女超级A| 99亚洲精品视频| 一个色的综合| 天天日综合网射| 99re久热只有精品6在线直播.com| 成人综合网站| 99久久婷婷国产综合精品草原| http://www.sd-xiangsu.com/| 五月丁香婷婷综合在线| 日本色道视频网站| 99啪啪网| 伊人九九综合| 色99无码| 色噜婷婷| 蒲京久久无码视频| 成人精品视频99在线观看免费| 国产成人av在线| 夜夜谢天天干| 99热.com| 99热手机在线精品| 97色色色色色| 婷婷五月激情在线视频| 午夜婷婷五月天在线| 色久婷婷网| 伊人久久激情图区五月| 亚洲精品乱码久久久久久按摩观| 91超碰在线观看| 色婷婷色情| 国产精品人妻在线网址| 欧美日韩五月婷婷| 丁香视频| 激情图片99| 九九九九成人| 9久久久| 丁香花操逼| 婷婷五月天你懂的| 五月婷婷七月丁香| 99九九玖玖| 中文字幕,综合,91| 色婷婷丁香综合中文字幕| 大香蕉婷婷丁香| 国产成人AV在线播放| 日韩色色一区| 91丨九色丨熟女| 欧美天堂久久| 操91| 337p午夜影院| 国产精品视频久久99| 久久这里有精品视频| 5月婷婷五月天| 婷婷激情五月天激情| xxx.色婷婷| 天天干,夜夜爽| 色婷久| 日本综合久久| 色九区| 丁香激情综合| 五月色亚洲| 九九热av| 久久只这里有精品| 色色色9| 天天弄天天操| 九九av| 9久热精品在线视频| 亚洲日比视频| 日本色久| 五月丁香婷婷激情在线视频| 夜夜爽天操| 亚洲免费观看高清完整版AV线| 丁香婷婷性爱| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 婷婷综合网伊人| 99视频精品全部观看10| www99热| 国产肥白大熟妇BBBB视频| 伊人天堂婷婷| 婷婷五月天堂网| 婷婷五月AV| 操逼六区| 国产AV一区二区三区最新精品 | 综合色99| 亚洲噜色| 久久激情网| 婷婷五月天A V| 久久婷婷网| 亚洲性色XXXXX| 亚洲午夜电影| 激情性爱五月天网页| 91超碰在线播放| 六月婷婷七月丁香| 日韩成人综合网| 91操黄| 婷婷五月天最新综合你懂的| 俺去也五月天婷婷| 思思热在线视频精品| 色色五月天com| 天天粽合合合合| 色婷另类| 色呦呦在线| 成久综合视频| 五月综合色| 9久热精品在线视频| 亚韩在线视频| 色色性爱视频| 91午夜婷婷狠狠久久综合9色| 成人亚洲精品| 九九激情| 九九精品9| 这里只有精品视频国产| 91婷婷搞| 9 9热这里有精品| 亚洲色婷婷激情| 91超碰在线播放| 丁香六月天婷婷| 免费久久这里只有精品99| 激情综合网五月激情| 大香蕉欧美在线| 国产日日操夜夜操的肉棒视频| 天天做夜夜爽| 五月丁香六月综合基地| 五月亭亭开心网| 亲子乱AV-区二区三区| 色婷五月天亚洲| 亚洲av骚货| 婷婷激情六月综合| 色天五月天在线观看视频| 中国无码av| 99精品视频免费观看,| 天天艹夜夜艹| 国产激情综合五月久久| 久久久久亚洲AV无码网影音先锋| 色涩影院六月丁香| 五月综合婷婷五月| 碰人人97| 99综合色| 亚洲精品中文字幕成人片| 99热这里只有的精品视 | 婷婷亚洲在线| 激情综合色婷婷啪啪五月天| 欧美一区二区三区不卡影视| 亚洲色综合| 亚洲激情无码久久| 久久五月视频| 狠狠草婷婷| 中文字幕无码人妻少妇免费视频| 天天插天天插天天日| 亚洲精品色| 69堂午夜视频最新地址| 六月丁香网| 色婷婷激情小说网| 97在线观视频免费观看| 深爱激情五月天色婷婷| 婷婷色五月91啪啪| 婷婷五月中文在线视频| 色月丁| 九九色图| 色色色999| 色综合色综合网| 亚洲一色色色色色色色色| 亚洲V国产V欧美V久久久久久| 六月婷婷色五月| 日韩精品一区二区三区,四区,五区视频| 伊人国产婷婷五月天 | 超碰在线超碰| 久久激情网| 狠狠色婷婷| 白天AV月月| 超碰成人影视| 色色色五月婷| 99色色热热| 亚洲乱码日产精品BD| 色丁香久久久| 五月久久网| 五月丁香成人网| 亚洲 精品 综合 精品| 91在线观看九区| 欧美色性色好| 天天爱天天日| 草榴视频黄色网| 欧美日韩成人在线观看| 国产成人精品一区二三区熟女在线| 丁香六月色情| 国产人人操| 成人av在线网站| 亚洲AV激情五月综合网| 墨西哥毛片内射精| 久久久久久丁香五月| 九九色婷婷| 99热这里只有精品一区| 九九色综合网| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 爱草人视频| 久99热| 丁香激情综合| 玖玖婷婷五月天| 激情 婷婷 丁香五月天| 婷婷丁香花五月天| 大伊香蕉精品视频在线| 五月狠狠| 玖玖九九99| 欧美日韩成人免费在线| av大片在线| 欧美久久婷婷| 26uuu另类亚洲欧美日本一| 美欧日韩国产成人在战| 激情五月黄色| 一起草性爱不卡视频| 五月婷婷AV| Av性爱网站| 91人人操人人爱| 六月五月天婷婷涩播在线| www超碰| www,av好吊操| 五月丁香婷婷在线综合蜜桃| 狠狠爱夜夜| 久久久久久久11111111111| 色九网| 天天久| 蜜臀九九九九| 欧洲激情网站| www.henhenl| 婷婷日本在线| 少妇真实被内射视频三四区| 97视频91| 日本婷婷五月天| 天天夜夜操| 久久激情综合| 九九av| 1024婷婷综合久久五月天| 九月丁香婷婷网| 疯狂做受XXXX高潮A片动画| 黄色AV日韩| 天天综合五月天| 桔色成人在线| 99精品久久久久久久婷婷久久| 人妻久久久久| 碰超99| 91九色 婷婷| 18久久| 色欲色香综合网站| AV片在线观看| 久久久久亚洲AV综合| 日本三级韩三级99久久| 日日天天干| 97人人超| 久热久| 久久九区| 超碰99在线观看| 丁香久久综合| 婷婷久久五月丁香| 免费婷婷| 色婷婷综合网| 操一区| 超碰亚洲天堂| 色播五月丁香| 色综合色色| 久青草影院| 亚洲激情久久| 欧美交换配乱吟粗大25P| 啪啪综合网| 国自产拍偷拍精品啪啪一区二区| 久久久久久久人妻| 午夜少妇在线观看视频| .精品久久久麻豆国产精品| 超碰免费在线| 嫩草AV久久伊人妇女超级A| 99精品视频在线观看| 丁香婷婷天堂| 99人人干人人操| 日本在线99| 九九久久五月天综合伊人| 色五月激情网| 99精品视频在线6| 色婷婷最爱五月| 久久视频九九视频| 99操逼| www热久久yy9| 免费黄色片子| 疯狂做受XXXX高潮A片动画| 丁香婷婷老熟女综合网| 超碰免费电影| 日本久久视频| 五月婷婷五月丁香综合| 五月婷婷综合色拍| 婷婷五月色播放| 女婷久久| 99热在线播放| 国产性爱大片久久| 亚洲AV中文在线| 777.色色| 99乱视频| 120分钟婬片免费看| 精品一二三区久久AAA片| 丁香五月天堂婷婷| 99亚洲视频| 99热99热在线观看| 激情五月,激情综合网| 91ncm视频| 婷婷五月丁香五月| 狠狠色婷婷丁香五月| 99九九热在线观看| 婷婷五月天视频在线观看| 婷婷五月天久久| 婷婷金品综合视频| 亚洲99热| 五月丁香大香蕉| 丁香5月婷婷| 1024国产| 婷婷五月丁香亚洲| 99热免费精品| 婷婷夜夜夜夜| 色婷操逼| 五月丁香亭亭激情操逼网| 日韩精品一区二区亚洲AV观看| 热九九在线| 五月六月婷| 色墦五月丁香| 色婷婷综合影院| hd五月婷婷在线| 五月天伊人综合| 最新无毒无码AV| 成人片在线播放| 六月婷婷九月丁香亚洲综合| 色五月婷婷在线| 99热久久日本| 手机激情网| 九九色图| 激情五月天第四色| 欧美性爱特黄一级aaaassss| 五月丁香色综合| 超碰人人摸人人操| 99热九九这里只有精品| 99热激情| 射婷婷中文字幕| 五月天无码| 天天色99| 五月婷无码| 丁香六月天婷婷色| 99在线观看| 日本乱论99| 亚洲aV写真天天综合网久久| 丁香六月婷婷综合| 97在线碰| 婷婷六月天| 丁香五月婷婷影视先锋| 97丁香五月天| 久久一热| 五月婷婷色综图片| 中文av网| 久久日本wwww色| 色色亚卅| 精国产品一区二区三区A片| 久久精品视频99| 九九热在线视频| 丁香五月激情欧美| 成人超碰Av| 青吴乐视频| 天天操,天天插| 欧美在线视频99| 五月婷婷综合激情| 九九色99| 婷婷99视频精品| 欧美久久网| 九九综舍久久| 五月丁香在线观看| 六月丁香啪| 天天做天天爱天天要| Www.sesese丁香| 色色色色色色综合| 老美AA片| 狠狠操.COM| 久久caop| 偷拍视频五月天| 欧美性生交xXxX久久久| 26uuu激情五月天| 国产肥白大熟妇BBBB视频| 亚洲射激情| 亚洲国产精品二二三三区| 久久五月人人摸| JAPANRCEP老熟妇乱子伦视频| 五月丁香久久网| 色综合色综合网| 亚州激情在线视频| 精品一二三区久久AAA片| 九九爱看亚洲| 91色综合久久| 99精品色| 99人人干人人| 婷婷综合色色| 久久视屏这里只有久久| 白人荫道BBWBBB大荫道| 99er在线观看| 9色操| 婷婷六月综合基地| 丁香激情网| 永久精品| 三级成人网站| 色婷狠狠| 中文字幕精品在线观看| 丁香五月影院| 国产精品久久久久久久久久| 色六月天| 色综合狠狠色| 99久久久久| 99er免费在线观看| 69人人操人人爽| 五月婷婷人人人操| 中文字幕丰满乱孑伦无码专区| 欧美色综合天天久久综合精品 | 激情又色又爽又黄的A片| 色婷婷先锋| 亚洲一级AV在线免费播放| 男女99免费视频| 久久婷婷五月草视频在线播放| 国产性爱大片久久| 伊人婷婷综合| hd五月婷婷在线| 久久99久久久久久久噜噜| 丁香五月色情| 蜜乳国产网站| 怡红院91a√| 五月天激情图片| www.激情五月天com| 九色无码| 疯狂做受XXXX高潮A片动画| 激情五月婷婷丁香综合网| 大香蕉久艹| 亚洲免费综合一区| 9999三级片| 99秘 在线| 色碰碰| 万月丁香狠狠爱| 亚洲综合九九| 六月丁香影院| 噜噜噜噜噜在线| 亞洲自怕| 五月天色影院| 五月天亚洲综合网| 九九九九九无码| 色九九七七| 欧美婷婷色| 五月天天天色| 久草热视频在线观看| 狠狠色婷婷7| 成人人操| 日韩艹比| 五月激情影视| 噜噜视频| 婷婷色五月情| 色婷婷基地在线| 激情婷婷黄色五月| 亚洲国产精品VA在线看黑人| 九九婷婷综合| 五月情色天| 欧美黑人巨大猛烈cuckold| 日韩AV片| 美女xx不卡| 国产av一区二区三区| 99性视频| 99视频网址| 日日舔夜夜操| 最新精品视频99| 久这里只有精品99| 久久久欧美精品sm网站| 5Www色5夜| 无码少妇高潮喷水A片免费| 人妻啪啪啪| 99久久久久久www| 五月婷婷六月丁香综合| 丁香五月天激情小说| 婷婷,五月天,丁香,第一| 久久3p| av最新在线| 欧美性爱专区| 97久久久久久久久久久| 亚洲激情四射| 人人摸人人摸| 六月婷婷综合| 99热在线观看精品| 久久久久激情网| 99热精品无码| 色色色色色色色色网站| 色婷婷六月天在线| 色婷婷五月天成人网| 婷婷五月天无码视频| 久久婷婷五月国产色综合激情| 婷婷天堂综合| 99热青青草| 人妻AV在线观看| 日韩日比视频| 67194中文字幕| www.婷婷.com| 六月丁香婷婷综合狠狠爱夜夜爱| 五月婷婷,狠狠操| 2022久久婷婷| 欧美久人人| 98永久精品| 另类激情五| 香蕉久久六月| 99热在线精品观看| 中文字幕黄色片| 精品99这里有| 欧美狠狠草| 久久杏爱视频| xxx日本东京热| 涩涩婷婷五月| 可以免费看AV网站| 激情文学五月丁香六月婷婷| 91婷婷五月天嫩女| 亚洲精品色| 91在线日| 五月天成人综合| 免费看欧美成人A片无码| 婷婷五月激情欧美大胆视频| 人人妖人人97| 玖玖激情网| 在线观看av网站| 久碰视频| 激情涩涩网| 丁香五月 六月婷婷首页| 99日这里只有精品| 91色在线 | 日韩| 五月婷婷天| 成人国产欧美大片一区| AV色色天堂中文| 91精品国产综合久久蜜芽解析速度| 色综合久久88| 另类在线| 五月丁香在线国产| 亚洲狠狠干| A在线观看| 99无码视频| 婷婷黄色网| 六月婷久久| 婷婷丁香五月天综合网| 丁香婷婷成人在线播放| 天天干天天干天天干| 五月丁香啪啪| 刘玥精品一区| 好看的国产精品| 丁香五月日啪| 亚洲最大五月天成人网| 色噜噜97视频在线观看| 色色综合网站| 99久久色| 久久免费精品小视频| 99成人无码| 99热1| 久久视频在线视频| 麻豆精品| 国产精品在线视频| 久久人妻伦理| 婷婷酒色网| 99热这里只有精品青草| 亚洲操逼网| 97色 五月天丁香| 综合久久五月天| 色婷婷伦理| 日本色婷婷| 色婷婷成人做爰A片免费看网站| 亚洲9久久精品| 久久99免费视屏| 99热这里只有精品18| 久久久免费精彩视频| 自拍视频在线观看9| 狠狠看狠狠| 99热这里只有精品8| 第九色区av天堂| 久久婷婷色综合| 视色综合| www.婷婷五月| 亚洲另类毛片| 日本五月丁香| 99激情在线| 婷婷成人av| 五月婷伊人| 97人人干人人操| 秋霞av不能| 日日操夜夜爽天天天| 丁香花色色网| 激情五月瑟瑟| 91婷婷五月天综合视频| 丁香六月啪| 亚洲激情五月| 五月天婷婷深深爱| 97av在线视频| 狼友视频在线观看18| 亚洲婷婷免费| 操操操97| 欧美日本综合网| 99久久婷婷五月综合| 第四色色六月色综合| 深爱激情九九五月天 | 亚洲操B视频| 色婷婷先锋| 无遮挡国产高潮视频免费观看 | 激情丁香淫荡婷婷| www.99色| 午夜爱爱网站| 舔色婷婷| 丁香99| 欧美综合丁香网| 婷婷激情四射| 精品五月视频婷婷在线观看| 在线中文亚洲| 五月天激情网址| 天天操天天操天天操天天操天天操| 操碰色一区就去操| 亚洲视频色色| 婷婷色色五月天| 亚洲色涩视频| 99热精品中文字幕| 色婷婷久久综合久色综| 丁香五月综合| 狠狠干在线| 丁香五月天堂网| 欧美日韩国产一区二区| 九九热最新地址| 五月色婷丁香| 99热无码| 亚洲色五月婷婷| 婷婷五月天天天| 五月天婷婷久草丁香| 天天爱天天做天天操| 一起草av在线观看| 久久婷婷五月综合激情国产 | 五月天开心网|