99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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
返回資訊列表
五月色丁香成人| 久久精品天| 亚洲精品操一操、噜一噜、摸一摸、爽 | 五月激情婷婷播播网| 人妻激情综合| 亚洲、热| 欧亚洲在线高清视频| 粉嫩AV久久一区二区三区| 日日夜夜狠狠干| 黄色精品五月婷婷| 久久五月天丁香| 五月天婷婷基地综合网| 五月婷婷激情四月| 婷婷六月婷婷| 丁香五月影院| 色色狼人综合| 久久国产高潮白浆免费观看99| 超碰三级片| 桃色Av色哟哟| 色婷婷操逼| 国产精品18久久久| 色99在线| 996er热| 亚洲成人婷婷| 婷婷月五天在线在线看| 色色狼人综合| 色色网五月激情| 久久精品日| 久久99网站| 久久婷婷五月综合激情国产| 久久激情五月婷婷| 丁香六月婷婷色播| 天天天久久人人人合| 久热一本| 久久久8| 欧洲综合一区| 日欧一片内射VA在线影院| 丁香五月六月综合激情| 亚洲天天操| 六月天丁婷婷| 热成人网| 99色视频免费在线规看| 99A片| 色婷婷丁香五月天激情综合网| 婷婷精品在线| 欧美99热| 狠狠看狠狠| 中文字幕网站在线观看| 超碰无码318604| 五月婷婷综合成人| 伊人影院久久网| 国产精品久久久久久久久久免费| 亚洲亚洲人成综合网络| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 婷色综合| 婷婷伊人五月丁香天堂网| 99久久人妻精品无码二区| 96精品久久久久久久久| 五月综合色| 色播婷婷五月天| 五月婷婷激情日本| 91干| 少妇大叫太大太粗太爽了A片| 性爱久久| 青青草青青草五月天| 精品成人无码A片观看香草视频| 久草婷婷| 99视频在线| 五月丁香激情综合| 五月婷婷久草| 91大屁股精品| 狠色综合网| 无码色色色色色| 色婷婷操逼| 99热在线精品观看| 99爱在线| 99综合视频| 碰97久久| 丁香六月婷婷色XXXX| AV在线不卡播放| 久久一级AV| ..真实国产乱子伦毛片 | 五月天色色激情综合| 五月丁香久久网| 五月天堂色| 五月丁香六月婷婷亚洲天堂网站| 五月天在线视频尤物视频在线看| 五月天激情小说网| 天天天天操| 成人中文网| 丁香六月婷婷基地| 另类激情五月| 色五狠狠| 色婷婷视频在线| 五月综合激情| 大香蕉丁香| 超碰色色综合| 久久这里有精品视频在线免费观看| 婷婷五月天激情网站| 综合五月丁香六月婷婷| 五月丁香婷婷成人网| 丁香婷婷婷| 九九性爱网| 国产欧美日韩性爱| 五月天亚洲综合网| 日本欧美成人片AAAA| avh片在线观看| 九月婷婷综合网| 99在线观看视频| 2020久久婷婷五月| 五月天开心色情网| 色综合色婷色基地| 秋霞影音91人妻久久| 色色网站免费| 伊人热在线大香蕉| 99小精品| 国产67194| 免费看欧美成人A片无码| 开心五月婷婷伊人| 六月色婷婷欧美| 99久久极情精品一区| 中文激情网| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 丁香婷婷偷拍| 九九综合久久| 97热久久五月婷婷| 另类小说激情五月天| 九九激情| 午夜大香蕉| 99re26视频| 一区视频网站| 精品网站:999WWW| 丁香五月婷婷乱| AV在线免费播放| 久久久久久久久月丁| 六月99天天婷婷激情综合| 精品九九视频| 久草热8精品视频在线观看| 97色97干| 五月丁香婷婷爱| 碰碰碰97国产| 26uuu国产精品| 久久资源网五月婷| 色五月激情| 伊人色综在线| 六月丁香AV| 国产伊人五月天| 超碰人人干| av网站免费在线| 好吊操这里只有精品| 91干视频| 久久多色| 青青草成人网| 九九热色视频| 中字幕视频在线永久在线观看免费| 色婷婷久久综合| 大香蕉欧美在线| 99riAV成人在线视频| 六月婷婷成人| 99热在线观看| 丁香五月区| 五月婷婷六月激情| 这里只有精品视频在线观看免费| 粉嫩AV久久一区二区三区| 色综合婷婷| 婷婷成人视频| 91色久| www.久久99热地址发布| www久久99| 狠狠色97| 99免费视频久久| 97人人草| 激情综合激情五月| 亚洲不卡123| 激情五月,色播五月| 影音先锋秋秋五月婷婷| 亚洲五月花| www久久久久久| 五月婷婷六月丁香综合| 午夜激情婷婷| 欧美大肥婆大肥BBBBB| 深爱丁香网| 99久久婷婷| 草美女在线观看视频在线播放 | 天天揷综合网| 丁香五月欧美午夜视频| 夜夜涩涩涩| 五月天丁香网| 在热视频精品| 色玖玖综合网| 99精品偷自拍| 日韩综合久| 香蕉综合在线| 婷婷综合性爱网| 五月天婷婷人妻| 99视频网址| 91久久婷婷| 色五月婷婷五月丁香五月激情五月视频 | 成人电影丁香六月天| 五月精品99综合| 精品人妻一区二区三区四区不卡在| 91干视频| 99惹 精品在线| 99色 色| 久久综合色五月| 啊v视频在线观看| 色婷婷丁香五月天在线视频| 亚洲AV无码成人精品区电影网| 伊人久久大香线蕉av最新| 激情五月天在线观看婷婷| 久久人妻熟女一区二区| 日韩欧美一级大黄网站| 欧美婷婷精品激情| 色婷五月天亚洲| 婷婷综合伊人| 日韩在线看AV| 五月丁香网站| 99狠狠| www.精品99| 激情综合色婷婷啪啪六月天| 91超碰人人操| 人人摸人人干人人做| 91网站黄| 亚洲成人av在线播放| 99热这里只有精品青草| 丁香五月社区| 怡红院精品视频久久久久久久久| 久久这里只有精品久久| 开心五月婷婷综合在线精品素人| 全部老头和老太XXXXX| 99热人人| 午夜少妇在线观看视频| 天天精品视频免费观看| 九九视频这里只有精品在线播放 | 色综合婷婷| 五月丁香六月婷婷国产视频| 五月婷婷这里都是精品| 五月婷五月婷伊人伊人五月婷| 97人人操人人拍| 婷婷五月色播| 玖玖资源站中文| WW婷婷五月天com| 综合在线网| 99精品九九| 五月激情六月丁香| 色偷偷综合| 影音先锋91资源站| 99干视频| www九九热| 思思久久精品| 日本色视| 五月天婷婷色色网| 久久丝袜婷婷| 丁香婷婷色色| 97精品欧美91久久久久久久| 日本美女上人| 在线播放中文字幕| 天天日夜夜爽| 五月婷婷开心网| 五月丁香成人| 色婷婷综合网站| 夜夜谢天天干| 9热在线观看| 五月天久久91| 色色色在线观看| 26uuu在线观看| 香蕉AV777XXX色综合一区| 桃色激情婷婷伊人网| 99成人网一区| 五月婷成人网| 丁香五月婷婷成人网| 婷婷六月丁香1| 99热这里只有精品在线免费| 99热日本| 欧美VA在线| 色婷婷狠狠18| 91九色熟女| 91九色中文字幕女在线观看| 26UUU欧美| 中文字幕在线日亚州9| 婷婷少妇激情| 99色热| av国产精品| 天天干,天天日| 五月激情六月丁香| 伊人久久婷婷五月综合97色| 久久久噜噜噜操操操| 亚洲无码免费看| 五月天丁香花婷婷| 丁香婷婷基地| 亚洲XX日本| 色情一区二区播放| 五月婷婷色综图片| 少妇AB又爽又紧无码网站 | 久久久久婷婷| 97碰碰草| 亚洲中文av| 俺来也综合网精品一区| 婷婷丁香五月亚洲综合网在线视频观看| 婷婷五月天亚洲综合| 高清 码 免费看片短视频| av在线免费网站 | 99久在线观看| 中文字幕网伦射乱中文| 久久日韩婷婷五月| 久久av电影| 五月花丁香婷婷| 色久综合| 少妇熟女视频一区二区三区| 婷婷五月丁香色播| www.sd-xiangsu.cpm| 五月天玖玖狠狠色色| 久久九九免费视频| 国产真实乱对白精彩| 久久人人添人人爽添人人片αV| 97久久五月丁香婷婷| 午夜色婷婷| 久久机只有这里精品| 欧美乱码国产一级A片| 色丁香五月婷婷| 婷婷丁香熟女| 亚洲一个色| 色综合久久88色综合天天| 9l视频自拍9l视频自拍九色学生| 久久五月婷综合| 久久hd| 色婷婷4| 婷婷天天婷婷天天澡| 色婷婷丁香五月| 色天使色综合| 天天激情视频| 色五月激情五月天| 亚洲国产精品VA在线看黑人| 色婷婷888| 婷婷激情丁五月| 婷婷天堂综合| 色女人久久| 婷婷五月婷婷五月天| 久久综合五月天| 亚洲成AV人片在线观看| 26uuu.| 亚洲成人av在线| 97成人丁香| 五月天国产成人| 蜜臀99精品| 婷婷六月丁香五月图区| 五月综亚洲| 欧美色婷婷| 五月婷天堂视频| 都市激情蜜桃婷婷五月天 | 91av视频| 色综合久久88色综合中文字幕| 日本美女上人| 日比视频91| 国产精品久久在线观看技巧| 亚洲激情四射| 色性综合| 成人精品在线| 九九性视频| 99热这里有精品| 亚洲综合网在线| 天天五月香欧美| 色色免费网站| 五月丁香啪啪激情| 五月丁香六月欧美综合网站| 婷婷 丁香 久久| 九九婷婷网五月天| 玖玖99精品视频| va亚洲中文在线| 日韩黄色影院| 五月激情网站| 青青草五月天| 中文AV在线观看| 野外99热| 超级碰碰碰97免费| 婷婷色丁香五月| AV五月丁香| 丁香五月天.com| 五月婷婷激情中文字幕| aa久久| 爆乳熟妇一区二区三区爆乳照片| 久久精彩综合视频| 婷婷成人基地| www.26uuu.com亚洲电影| 99成人| 久久黄色网扯| 蒲京久久无码视频| 亚洲丁香五月天视频| 99热资源在线| 俺去也婷婷| .操區COm| 在线色婷婷| 婷婷五月天亚洲| 九九综舍久久| 国产操碰| 狠狠人人| 永久热91| 久久色情| 夜夜干天天干| 99无码视频| 激情五月天色色| 九月婷婷丁香| www.99精品在线| 色色色色色色色色综合网| 99色6爱9热| 国自产拍偷拍精品啪啪一区二区| 色五月丁香五月天| 日本九九九九| 2050人人操免费工开爱| 久久丝袜婷婷| 欧美综合激情五月| 婷婷五月综合网| 九九热精品| 五月丁香花激情综合网| 激情文学久久| 五月天综合色| 色五月婷婷老师| 久久久精品人妻录| 大香蕉九九| 成人午夜天| 五月婷婷六月色| 激情视频91| 亚洲乱码精品久久久久..| 天天爽天天干天天| 69堂午夜视频最新地址| 日本操片| 九九精品9| 99这里有精品视频| 婷婷伊人五月天| 婷婷伊人綜合中文字幕小说| 日韩av高清| 丁香五月久久| 这里只有精彩视频| 五月婷婷色情| 综合婷婷六月| 九九色色网| 九九一区| 婷婷操逼| 久草大| 婷婷六月天亚州| 丁香五月综合婷婷| 99热久97| 九九99偷拍视频| 五月天丁香| 久青草影院| 婷婷五月天综合蜜桃| 97碰碰视频| 精品夜夜澡人妻无码AV| 五月天久久婷婷| 五月婷婷官网色| 高清无码一区二区三区四区| 99综合视频在线| 密乳Va| 人人操婷婷| 亚洲精品久久久久AV无码| 国产激情av| 老司机伊人| 五月激情婷婷色| 久热久色| 丁香婷婷精品视频| 天天日天天做天天舔| 97综合视频在线| 欧洲第一无人区观看| 色综合久久44| 狠狠爱婷婷爱| 久久激情五月| 五月色网| 337p大胆噜噜噜噜噜91Av| 日韩色色视频| AⅤ色区| 国产婷婷五月中文字幕高清| 婷婷五月天AV激情| 丁香六月高清视频| 激情婷婷五月色| 97五月天婷婷午夜| 激情五月天之五月婷婷| 九九久久五月天综合伊人| 这里都是精品99| 人人操日| 欧美色狠婷久| 中文字幕+乱码+中文字幕在线观看| 91色久| 久久九九网| 天天久久狠狠色综合| 久久久久亚洲AV成人无码电影| 激情五月丁香色色去久久| 日韩婷久| 九洲一级A片| 日本精品99网站| 黄网网站在线播放| 爱性综合网| 五月婷婷色播视频| 天天模,夜夜模夜夜爽| 五月婷婷色丁香| er99免费视频在线| 99re鈥哸鈥唙| 在线播放成人网站| 国产午夜精品AV一区二区麻豆| 五月激情六月宗合| 97在线观视频免费观看| 免费V片在线| 69色婷婷| 五月丁香怕怕综合| 亚洲色A| 久久免片| 五月婷婷综合激情| 激情网五月天| 五月婷婷丁香综合,亚洲天堂| 色婷在线视频| 久久五月视频| 66精品成人免费网站在线观看| 女高怪谈在线观看| www.久久99| 中文字幕丰满孑伦无码专区| 欧美久久久久久久久中文字幕| 九九热婷婷| 操操操操操操婷婷五月天| 婷婷五月天另类视频| 人人视频色| 玖玖资源天天无码| 亚洲色啪| 97久久精品视频| 超碰在线免费9| 色噜噜狠狠色综合伊人| 五月丁香六月婷婷综合网站| 色五月AV| 亚洲成人影视在线| 99视频35精品视频在线观看| 亚洲欧洲自拍图片专区五月天| 九九免费视频| 在线只有精品| 99精品高潮| 久久精彩综合视频| 色五月天综合网| 九九热九九| 亚洲色图啪啪| 99久久思思| 大香蕉久久久| 日本色色视频| 国产密乳av一区二区三区四区| 精品99只有。| 亚洲九区| 五月天婷婷婷| 桃色五月天| 五月天激情啪啪| 婷婷五月天AV激情| 99热免| 丁香五月 激情文学| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | Av在线资源| 久久视屏这里只有久久| 9l视频自拍9l九色9l成人| 国产高清av黄色看片| 色色色99| 亚洲AV网站在线观看| 香蕉视频性爱BB做爱| WWW、日本色丁香co m| 国产在线另类五月婷婷| 丁香六月天之亚州热女| 天天日天天爽| 色10月婷婷视频| 五月天婷婷无码| 国产,欧美,学生妹,视频| 天天色月| 久久久WWW| 久操大屁股女人av| 婷婷五月丁香网| 亚洲精品无人区| 婷婷97狠狠干| 九九av| 狠色综合网| 日韩欧美一级大黄网站| 久久综合伊人77777蜜臀| 日日夜夜狠狠干| 色香蕉精品五夜婷| 天天成人综合视频| 7777国产盗摄农村女人| www狠狠| 无遮羞AV| 五月婷婷亞洲中文| 亚洲天堂玖玖| 婷婷伊人网| 九月色婷婷婷| 99精品热| 综合久久五月天| 人妻aV在线| 伊人网碰碰| 久久久性爱视频| 五月丁香成人| 色日本五月天| 婷婷五月天天| 婷婷五月在线影院| 婷婷五月花西瓜| 一区二区你懂的| 久久这里都是精品| 影音先锋一区| 成年人丁香五月| 久久婷婷丁香五月一二三| 六月色色| 久久AV电影| 婷婷免费视频| 欧美影院婷婷| 婷婷黄色五月天在线视频| 国产成人精品一区二区三区视频| 久久综合天天综合| 91 九色 入口| 激情五月综合| 成人中文网| 97五月天婷婷| 一起草无码| 99亚洲视频| 六月天六月婷| 999久久久国产精品| www.99热视频| 激情婷婷丁香色情五月天| 天天干在线播放| 色五月亚洲| 色婷婷久久综合| 国产精品国产成人国产三级| 色爱五月天| 丁香五月婷婷激情网| 精品无码久久久久久久久| www.婷婷网| 潘金莲AAAAAAAAAA| 五月婷婷啪啪啪| 性小说五月天| www.综合久久| 丁香六月激情| www.五月丁香| 亚洲性色XXXXX| 国产97色在线| 182tv992tv人之初午夜免费观看| 久久综合干| 五月婷婷无码专区| 99自拍网| 色婷婷亚洲综合天堂| 五月婷婷日| 激情五月综合ì香亚洲| 黄网免费观看| 国产特黄色精品一区二区三区精品无广告| 久热人妻| 亚洲第一第二网站| 夜夜天天天天天干天天爽| 五月99久久| 激情五月婷婷| 超碰在线国产| 久久久免费精彩视频| 婷婷另类开心| 狠狠色婷婷7777久| 开心色色五月天综合| 久久97| 亚洲五月婷婷| 丁香六月成人网| 九九热这里只有精品7| 微拍92| 精品一二三区久久AAA片| 久热99热| 天天爽人人爽| 综合激情站| 欧美 日韩 成人 在线| 九九热内射| 噼里啪啦在线观看免费完整版视频| 久久久久久久97| 五月天日日操夜夜操| 欧美日韩中国| 午夜不卡久久精品无码免费| 日夜操B| 久久国产色| 91小黄书网址在线观看| 伍月激情天| 欧洲永久精品| 久久久com| 另类伊人婷婷| 99久久99久久| 色婷婷精品视频| 日本人妻A片成人免费看片| 色五月婷婷网| www.日日夜夜.com| 激情99热| 91久久精品无码一区二区三区| 婷婷激情啪啪| 婷婷六月色播| 乱色色色| 天天摸色吧天天摸色吧| 五月婷婷激情综合视频| 亚洲激情区| 婷婷之六月丁香| 激情五月五月五月婷婷| 久久综合激情五月天| 国产激情久久久| 久热大香蕉| 丁香五月影院| 婷婷五月天最新综合你懂的| 玖热精品综合视频| 久久综合激情五月天| 五月丁香综合啪啪| 精品婷婷五月视| 亚洲开心激情网| 99 这里只有精品| 五月丁香好婷婷A片网| 免费试看小视频 99| 国自产拍偷拍精品啪啪一区二区| 丁香五月AV| 欧美槡BBBB槡BBB少妇| av亚洲国产小电影| 亚洲天堂色| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 九九99免费理论| 婷婷五月av| 蜘蛛女免费观看完整版高清电影| 激情综合激情五月| 第四色首页| 99噜噜| 激情丁香五月| 九月激情婷婷丁香| 色色色色色五月| 99在线精品视频| 色五月婷婷激情综合网| 精品人妻久久久久久久| 婷婷综合在线| 色五月激情网| 五月婷护士| a九九热www| 五月伊人综合| 激情五月婷婷色| 色五月婷婷av| 亚洲成人在线观看av| 九九激情视频| 日本a片网址| 热成人网| 九九热最新地址| 五月丁香久久久| 久久大香蕉同僚| 五月香蕉婷婷| 91人操人人人操人| 影音先锋美国A| 99九九在线视频| 欧美丁香六月在线观看视频| 婷婷综合网| 色婷婷香蕉| 玖玖综合色区在线观看| 26UUU| 婷婷五月色亚洲| 日日夜夜婷婷| 人人操人| 色五月激情五月丁香五月婷婷啪啪综合 | 9 9热这里有精品| 好好干Av| 激情五月婷婷丁香| 黄桃AV无码免费一区二区三区| 99在线视频喷水| 思思99热在线| 人妻九九九九| 日本在线wwww| 五月天色欧美| 欧洲综合一区| 婷婷97狠狠干| 日韩999| 丁香狠狠色婷婷久久无码视频| 大香蕉婷婷丁香天堂AV| 婷婷色五月色| 婷婷色色综合| 九九视频这里只有精品在线播放| 色噜噜97视频在线观看| 欧美日韩一区二区三区四区| 淫视馆AV在线| 五月婷婷在线免费| 日本波多野结衣视频| 五月丁香网av| 国产无套精品一区二区| 成人午夜视频精品一区| 国产超碰在线| 99九无网码| 99在线爽| 亚洲欧美一区二区三区四区爱爱动图| 天天日日夜夜| 天天插天天插天天日| 婷婷激情性爱| 97色永久免费视频| A久久| 丁香五月婷婷五月基地| www,五月丁,com| 五月天色图| 色婷婷丁香综合中文字幕| 天天爱天天吃狠天天透| 激情五月天情色| 五月丁香AV在线| 大香蕉220| 五月天亚洲最大成人| 丁香色五月天| 免费视频舔| 99色天堂| www.99热最新视频8| 日韩啪啪视频| 激情综合网,婷婷| 五月综合视频| 9.1综合网| 日韩啪啪网| 在线,国产,色,热视频| 五月丁香六月婷综合成人综合| 亭亭玉立国色天香| 五月丁香啪啪激情| 亚洲AV成人无码久久精品老人法拉利| 五月婷婷综合网| 99热精品少| 五月天电影网| 婷婷网五月| 天天综合区| 九九99视频| 干一干xxxx| 超碰成人在线观看| 色色吧综合| 五月丁香啪啪网| 婷婷六月丁香色| 五月天丁香婷婷网| 色婷婷社区| 99人人操人人操人人精| 激情AV在线| 久久综合九九| 被男人添B超爽视频| 婷婷五月丁香伊人网| 激情内射人妻1区2区3区| 中文网av| 91凹凸在线| 色综合99| 婷婷五月激情在线| 伊人久久大香天蕉亚洲特级| 日本91在线| 第二色AⅤ| 国模狼狼| Av大香蕉| anquye五月| 久久图色4| 综合网激情| 99re热精品视频国| 天天综合天综合久久网| 性爱久久| 免费精品66| 亚洲天堂有码| 五月综合视频| WWW.桔色成人.COM| 久久五月激情| 热91久| 激情五月婷黄版| 婷婷九月激情| 91丁香婷婷综合资源| 亚洲欧美综合7777色婷婷| 激情网第四色| 色综合大香蕉| 影音先锋91网站在线观看| 停停五月色宗合| 色婷操逼| 91在线97视频| 亚洲婷婷五月天| 亚洲热热视频| 少妇日麻屄| 探花搜索结果 - 黄上黄| 超碰在线国产| 色色色在线观看| 国产热精品| 欧美色99| 第四色色六月色综合| 色欧洲| 涩涩五月天| 日韩av大全| 99er这里只有精品| 9久久精品视频| 91久久久久久| 碰碰女| 亚洲热久久| 爱草视频在线观看| www色婷婷| 69人人操人人爽| 色135综合网| 久久99精品久久只有精品| 五月丁香免费看| 亚洲 日韩色色| 中文字幕AV网址| 97ai婷婷| 大香蕉五月天| 免费婷婷| 九九性爱网| 五月婷视屏在线观看| 色色丁香五月婷婷| 无码地址| 日韩欧美一级大黄网站| 99视频热99| 欧美性色A片免费免费观看的| 婷婷综合网| 天天操综合网| 五月丁香婷婷伊人| 婷婷五月天亚洲色| aaaaaa片| 久久婷婷五月国产色综合激情| 26UUU欧美激情一区二区| 国产人人操| 九久久九精品视频| 91男女视频在线观看| 婷婷亚洲综合| 五月天婷婷综合| 九九碰九九爱97| 99色视频在线| 婷婷金品综合视频| 在线只有精品| 五月天婷婷成人资源站| 色综合五月婷婷狠狠干| 五月婷庭丁香在线| 99热99热在线观看| 丁香五月 六月婷婷首页| 亚洲色色色色| 五月天开心婷婷激情网站| 激情婷婷久久| 人人爱人人草| 免费无码毛片一区二区A片| 天天插操| 亚洲AVwwwwwww| 翔田千里 50岁 无码| 无码se| 精品99网站| 激情婷婷啪啪| 天堂综合久久| 夜夜撸日日操| 久久婷婷五月综合伊人| 日本人妻A片成人免费看片| 99这里都是精品6| 婷婷五月天丁香花| 婷婷五月综合在线| 99色在线| XX色综合| 婷婷成人基地| 免费视频1区| 一起草aV| 色综合激情| 琪琪理论片| 色色色精品无码区| WWW.色婷婷.COM| 五月亭亭狠狠| 成人丁香五月| 久久人妻视频| 五月婷婷色| 久久亚洲婷婷| 伊人在线另类| 久9精品视频| 人妻久久做| 亚洲综合色五月| 天天在线XXX| 99热精品无码| 五月婷丁香久久综合| 伊人久久婷婷| 亚洲视频伍月婷婷| 精品人妻伦一二三区久久| 免费观看日韩成人av| 亚洲成人在线播放| 色五月综合在线| 五月天婷婷基地| 久久久99日本大片| 丁香桃色综合网| 九九热10| 色婷婷精| 丁香六月亚洲| 精品久久久999| 九九九激情网| 五月综合激情久久| 思思热在线观看| 婷婷99视频在线| 日本久久天堂| 婷婷五月激情六月| 大香蕉在九| 激情丁香五月天综合| 99热最新| 久久久99精品免费观看| 99自拍网| 五月天成人综合| 国产黄大片在线观看画质优化| 九九精品自拍| 五月叮香啪| 色.五月综合网| 六月丁香视频网站| 欧美va视频| 五月天AV大香蕉| 武汉美女啪啪视频免费一级片| 五月丁香影视| 五月天成人综合| 五月天com| 99色综合久久| 91啪级电影| 激情五月丁香五月| 337p大胆噜噜噜噜噜91Av| 九九热精品视频在线观看| 狠狠色噜噜色狠狠狠综合色| 可以直接看的av网站| 五月天婷婷小说| 狠狠爱综合| 丁香蜜臀黄色婷婷五月天| 丁香熟女乱| 色婷婷裸体色性在线| 99ER热精品视频| 六月丁香基地| 激情综合网激情五月天| 97成人丁香婷婷| 天天色播| 色五月激情视频在线综合| 成人短视频在线| 婷婷五月天黄色网址| 婷婷六月综合基地| 日本黄色在线观看| 桃色五月天| 第四色五月婷婷| www.狠狠| 99re热在线观看| 超碰人人干| 久99久视频免费观看| 色色色热| 国产探花一片区| 婷婷五月另类网站| 丁香五月 性爱| 五月网在线| 9精品国产在热久久| 亚洲丁香五月| 91九九热| 五月丁香综合中文| 色婷婷五月天成人网| 丁香蜜臀黄色婷婷五月天| 婷婷免费无马| 久久综合99| 婷婷五月色花丁香社区| www.天天干| 色婷婷狠狠色| 亚洲欧美日韩另类| 六月丁香激情| 99ri在线观看视频| 开心五月婷婷| 伊人在线婷婷草| 99热99精品在线观看| 99国产视频网| 久久99久久99精品免观看粉嫩| 日本片日本片祼观看网站在线看中文版网页在线看 | 婷婷精品综合| 99热精品在这里| 激情婷婷亚洲五月| 色综合网页| 亚洲综合在线播放| 婷婷色五月婷婷姐妹| 久草婷婷网 | 婷婷五月天97干| 五月天色影院| 亚洲精品国产成人AV在线| 伊人综合网站| 亚洲最大五月天成人网| 91色噜噜狠狠狠狠色综合| 五月天综合| 丁香 婷婷 亚洲 熟女| 97久人人| 伊人综合网站| 天天日天天干天天操| 99re这里只有精品99| 深夜婷婷 丁香| 婷婷丁香六月| 亚洲丁香五月天在线视频| 久久九九99.www| 操碰97| 婷婷亚洲五月色综合| 丁香婷婷五月色成人网站| 97精品人人A片免费看| 思思热精品在线| 五月色婷婷亚洲| txt五月激情四射网综合俺也来了| 色婷婷大香蕉| 丁香婷婷色五月合集| 亚洲无码成人| 激情综合网激情五月婷婷| 色九月婷婷综合| 五月丁香婷婷婷婷综合网| www.日本91| 99久久66综合| 亚洲操逼片| 婷婷五月色综合| 色婷婷影视| 伊人丁香五月婷婷潮吹| 激情丁香婷婷| 精品99在线| 亚洲久久婷婷| 丁香丁婷五月激情| 丁香视频| 九九色网专区| 亚洲色五月天| 九九色色| 婷婷五月天色综合| 五月天五月色婷婷综合| 午夜丁香 婷婷| 99视频| 五月婷色| 日本狠狠干| 亚艹艹| 五月天自拍网| 伊人春天av| 九九婷婷综合| 激情综合婷婷久久| 国内一级片| 丁香五月天堂网| 色婷丁香| 97色啪| 日韩AAAAAAAAAAA片| 六月婷婷亚洲| 99精品这里只有免费视频| 91精品婷婷国产综合久久| 五月丁香啪。| 婷婷久久色| 九九精品大香蕉| 欧美槡BBBB槡BBB少妇| 思思热精品在线视频| 色爽九九| 99在线精品视频| 99热这里只有精品3| 久久五月婷天天干| 日在线V视频在线播放| 婷婷综合激情五月中文字幕| 四虎成人精品永久免费AV九九| 色婷婷丁香社综合| www.一起草av| 99在线视频喷水| 91成人看| 97成人视频| 丁香五月激情五月色综合| 色综合色香蕉网| 无码91中文字幕| 97caop| 五月婷三级片| 九月丁香婷婷基地| 色吧婷婷五月亚洲| 99丁香五月| www,99视频| 五月婷婷激情啪啪| 九九色video| 色综合久久无码| 碰碰碰91| 精品久久9| 丁香啪啪| 狠狠干,狠狠操| 九九热精品视频在线观看| 久热九九| 丁香五月香蕉| 久久曰曰| 久久久99精品免费观看| 九九综合影音先锋| 操逼电影免费看| 久草视频大香蕉99| 一起肏在线视频| 丁香五月色网| 久/久精品99看9| 秋霞黄色一级久久| 另类丁香五月天区图| 亚洲精品五月| 丁香五月天堂| 五月丁香六月成人| 色噜噜狠狠一区二区三区| 色婷婷成人做爰A片免费看网站| 国产真实乱了老女人视频| 99色在线观看视频者| 哇嘎成人久久| 五月天社区| 五月天天天开心激情网| 五月婷婷之美女图片| 色色色综合色| www.婷婷| 无码激情AAAAA片-区区| 一区操| 狠狠色狠狠| 色婷婷在线视频久| 九九视频这里有精品| 亚洲综合五月天| 韩国中文字幕91| 狠狠干 狠狠操| 天天色天天日天天舔| 超碰93在线观看| 丁香六月啪| 伊人激情网| 色丁香五月天| 色丁香综合影院| 五月婷婷天天| 精品人妻伦一二三区久久| 99se丁香| 久久婷婷五月天蜜桃| 侠女刀之记忆电影在线看免费| 婷婷射图五月天| 国产成人在线精品| 97在线观视频免费观看| 色五月大香蕉婷婷| 天天综合亚洲综合网天天αⅴ| 99综合免费视频| 九九色婷婷| 伊人香大香蕉视频| 网色99| 婷婷五月天首页| 狠狠色成人影片| 日熟女| 国产日批视频免费播放| 婷婷五月天激情五月天网站| 殴美日比视频| 97色 五月天丁香| 亚洲综合视频网| 日韩人妻操逼视频| 婷婷激情小说| 激情丁香五月AV| 婷婷五月激情基地| 99操免费视频| 丁香五月激情图片婷婷| 九九黄色网| 丁香五月成人社区| 国产精产国品一二三在观看| www.97碰碰com| 亚洲成人va| 激情五月婷婷| 色综合中文| 色婷婷五月天视频在线| 人妻丰满精品一区二区A片| …亚洲黄色在线播放日韩、av中文a…| 日日夜夜青青草| 五月激情啪啪| 操日本三片99| 婷婷五月激情视频| 无码激情AAAAA片-区区| 婷婷色中文字幕| 激情影院丁香五月| 97超级碰| 天天成人五月天| 婷婷伊人五月天| 久久五月天色婷婷| 终合激情网| 九月丁香很很色| 99在线免费视| 99国产在线| 热久久91| 91人人操人人爱| 色一情一乱一乱一区9| 五月婷导航| 天堂婷婷综合| 婷婷六月丁香色| 久99| 天天玩天天摸| 大香蕉综合网| 蜜桃婷婷狠狠久久| 婷婷五月在线视频| 91色碰| 五月丁香综合激情网| a毛片二逼wwwwwwwwww| 婷婷五月天日日日干干干| 专区无日本视频高清8| 中文字幕丰满乱孑伦无码专区| 综合大香蕉| 99热碰碰热| 五月婷亚洲精品AV天堂| 精典久久| 欧美久久婷婷| 99在线热| 99热精品中文字幕| 97色干| 婷婷五月天视频| 亚洲中文无码成人| 久操操| 丁香婷婷射| 色婷婷五月综合激情中文字幕| 欧美色色色| 黄色短视频在线观看| 九九热这里| 日韩av在线电影|