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网站| 强壮的公次次弄得我高潮A片日本 | 五月丁香五月丁香| 五月婷婷偷拍| 艹天天射| 一级内射毛片| 国产肥白大熟妇BBBB视频| 色五狠狠| 五月丁香少妇网| 婷婷丁香综合| 天天檫天天爽| 色婷婷五月天视频在线| 五月天天丁香婷婷在线中| 99精品视频播放| 三级三久久线久久99久目本WW| 五月丁香999| 激情五月丁香色色去久久| 欧美日韩aaa| 亚洲欧州色情在线观看| 狠狠干激情五月| 狠狠爱婷婷爱| 一区二区乱码视频| 另类激情码| 久久久天堂国产精品女人| 高清无码网址| 激情文学五月丁香六月婷婷| 欧美激情综合色综合色| www.俺去也com| 99久99久| 五月婷婷人人人操| 色久婷婷五月| 黄色大片又大粗又爽| 五月丁香A∨在线| 五月天精品| 99狠狠操一| 久久久久久丁香五月| 99,色| 黑人熟妇一区二区三区| 婷婷色五月激情强奸四射| 成人五月天。COM| 中文字幕在线免费观看视频| 色婷婷电影网| 精品夜夜澡人妻无码AV| 久久久国产精品黄毛片 | 婷婷激情六月综合| 91色噜噜狠狠狠狠色综合| 91精品国产色猫| 亚洲激情四谢| 欧美在线视频9| 亚洲中文字幕AV在线| 婷婷综合网| 婷婷五月天亚洲| 99在线观看视频| 天天插天天射| 99热这里只有精品3| 在线播放中文字幕| 亚洲乱码精品久久久久..| 亚州操人在线视频| www,奇米影视| www.com.色色| 人妻精品一区二区三区| 天天干夜夜b| 91丨九色丨大屁股| 色综合色欲综合天天免费| 亚洲成人综合在线| 婷婷丁香高潮了| 亚洲在线激情婷婷五月| 久久久久思思热| 丁香婷婷影院| 五月天啪啪| 91成人看片| 综合激情sV| 99热精品超碰| 丁香五月婷婷激情网| 五月婷婷激情久久| 色婷婷五月天激情在线播放| 婷婷色五月综合| 天天狠狠干| 久久久性爱视频| 99精品免费| 婷婷 伊人 久久| 无码人妻电影| 国产精品成av人在线视午夜片| Aaa久久| 激情婷婷激情在线不卡| 九色视频91| 丁香五月天激情婷婷丁香六月| 婷婷丁香五月视频| 久久综合影院| 超碰免费人| 色吊丝99| 五月天五月色| 五月天激情久久| 九九黄色网| 玖玖综合色区在线观看| 综合在线网| 五月天婷婷三级黄| 久草婷婷网| 色色综合激情| 婷婷五月天免费99| 久久机热这里只有精品免费视频| 成人视频婷婷| 99热精品在线| 九色七七| 5月婷婷6月六月丁香| 色老久久| 九九色影视| 六月婷婷综合| 99re热视频这里只精品| 五月丁香六月婷综合成人综合| 91无码一区人妻A片蜜| 九九九午夜视频| ss五月天激情| 婷婷的99视频网站| 人妻丰满精品一区二区A片| 五月丁香六月婷婷综合免| 激情欧美丁香五月| 天天日色情| 成人亚洲精品| 4399人妻无码久久久| 激情五月婷婷| 六月丁香婷婷网| 六月天婷婷| 99色热| 九九激情视频| 这里只有精品在线视频在线观看| 婷婷在线中文字幕| 9999色色色色| 天天操天天干天天射| 色一情一乱一乱一区91| 婷婷操超碰| 欧美情色一区| 婷婷激情丁五月| 天天看A片| 最新婷婷五月丁香| 色J香五月天| 专区无日本视频高清8| 婷婷丁香五月天影院 | 日韩九区| 成人在线视频网| www.com亚洲网站在线免费| 久久婷婷五月天激情唯美| 五月婷婷综合网| 男女99免费视频| 婷婷 丁香 精品| 九月婷婷在线视频| 婷婷色基地| 99se丁香| 99色亚洲| 久久总和99| 丁香六月婷婷色XXXXX| 五月天丁香婷婷网| 丁香五月婷久久| 国产精品A成V人在线播放| 91久久婷婷| 99精品久久久久久久婷婷| www、丁香五月天| 五月丁香色| 欧美,日韩成人在线| 桔色成人官方网站| 肏日网在线看| 九九AV在线| 色婷婷综合综合网| 亚洲国产精品VA在线看黑人| 6月丁香婷婷激情| 夜夜爽77777妓女免费下载| 伊人五月天日日夜夜久久久天天| 狠狠色综合五月人人| 婷婷五月天伊人网在线观看视频| 欧美精品狠狠色丁香婷婷| 日本激情五月天‘| 婷婷综合五月| 天天操天天插| 人人操人人爱丁香五月| 欧美天天搞| 丁香伊人综合| 五月婷婷六月丁香| 人妻在线中文字幕久久| 丁香九色不卡aaa| 婷婷激情五月色综合| 免费碰碰视频久| 婷婷色av| 丁香大香蕉| 亚洲色婷婷五月天| 丁香婷婷基地| 久久婷婷资源| 99re视频精品| 成人中文网| 色婷婷激情五月天在线观看| 久久新| 激情综合99| 亚洲免费观看高清完整版AV线| 亚州操操| 六月婷婷激情小说网| 激情婷婷22月间| 桃色五月天| 婷婷色女| 91丨九色丨熟女丰满| 色婷婷婷婷| 热久久视频99| 色热久资源| 校园春色亚洲色| 欧美在线视频免费播放| 天天干肏夜夜| 婷婷亚洲色| 天天操比比| 婷婷六月天亚州| 久久刺激网| 这里只有精品久久| 91avse| 五月的丁香六月的婷婷| 香蕉国产2013| 婷婷成人在线| 大香蕉 婷婷| www.婷婷,com| 精品久久艹| 5月丁香婷婷| 狠狠综合久久综合| 丁香五月激动深爱欧美| 五月色综合| 婷婷天天色| 激情综合色五月六月婷婷| 日韩av网站在线观看| 99热| 国产精产国品一二三在观看| 99色在线| 色婷婷免费观看| 婷婷五月天堂一本在线| 淫荡工a| 亚洲1区| 九色在线观看91av| 久久码久久无清| 日本精品人妻无码77777| 色婷婷大香蕉| 色玖玖爱| 五月综合视频在线| 2017狠狠干| 99精品网站| 五月婷婷六月丁香| 成人免费va| 97干免费视频| 精品一区久热| 六月丁香激情| 无码激情AAAAA片-区区| 丁香五月婷中字幕| 色婷小说| 九九热9| 美女五月狠狠| 色五月婷婷影视| 激情五月丁香五月色| 丁香六月激情| 婷婷五月18永久免费视频| 色五月av| 婷婷色在线| 97色婷婷| 91超级碰碰碰| 国产日韩精品SUV| 青青草成人网| 国产偷人爽久久久久久老妇APP| 激情综合网五月婷婷| 五月天婷婷色色| 婷婷五月大香蕉| 91免费看片| 天天摸天天舔| 97热视频| 在线观看国产高清视频免费网站| 中日韩美欧成人一区二区精品在线| 99热官网| 先锋影音男人的天堂AV| 久久亚洲天堂| 日韩欧美颜射| 狠狠做五月婷婷| 五月www| 99久久成人| 婷婷五月深深爱| 人人人操B超碰| 俺也去在线视频| 亭亭五月色男人| 91人人爽久久涩噜噜噜| 99在线视频精品| 国产精品久久..4399| 色综合综合色| 夜夜穞天天穞狠狠穞AV美女按摩| 99欧美精品99日本精品| 色综合香蕉| 影音先锋毛片网站| 丁香六月婷婷高清| 99这里都是精品| 国产成人网站在线观看| 色五月丁香A欧美com| 久久九九亚洲| 青青草性爱视频| 欧美色六月婷婷| 夜夜操激情| 婷婷午夜综合| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 热久久精品视频网站| 国产精品热搜丁香五月婷婷| 五月综合激情| 丁香五月五月婷婷欧美大香蕉 | 色欲影香| 婷婷九月丁香久久| 久久97| 国产69久久久欧美黑人A片| 超碰成人影视| 人人爽人人爽人人爽人人爽| 日亚二欧美| 亚洲国产99| 亚洲狠狠色丁香婷婷综合久久| 任你搞在线观看视频| 99热综合在线| 婷婷婷婷婷开心无码播放| 婷婷在线综合| 日韩美女在线视频19| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 婷婷精品综合| 欧亚成人A片一区二区| 日韩无码人妻一区二区| 婷婷免费无马| 玖玖婷婷免费| 五月天激情综合网站| 亚洲狠狠狠| 狠狠草狠狠草| 国产精品色婷婷久久久精品| 婷婷五月色亚洲| 九九热黄色| 99热99日天天干| 婷婷五月69| 五月天激情小说欧美激情| 97色色网| 久久人妻久久久久| 99热在线观看精品| 久久日韩婷婷五月| 人。妻久久| 国产毛片欧美毛片久久久| 久久免费9| 色人妻五月| 九久9精品| 九九热自拍| 99er热精品视频| 丁香六月综合激情| 色色永久| 91久热| 久久9久久| 日日日日操| 国产精品日本一区二区在线播放| 成人婷婷色五月天| 婷婷综合| 丁香久色| 丁香五月a| 这里只有精品日韩精品| 欧美电影在线观看| 亚洲永远av在线播放| 日韩成人五月天| 淫视馆aV二区一区| 丁香五月亚洲AV| 六月撸婷婷| 五月婷婷色白丝| 成人精品99| 亚洲av综合在线| 99久久精品网| 五月丁香婷婷狠狠操| 天天综合五月| 七月丁香婷婷 色色| 午夜 外网 精品 在线| 亚洲激情AV| 九九99精品视品| 桃色成人网| 亚洲激情 久久| www婷婷| 99综合| 777色色色| 99性视频| 九九99九九精品免费| 日 日干 日日做| 国产日韩欧美| 婷婷五月天成人网站| 蜜臀综合久草| 99亚洲精品| 色色色在线观看| 五月婷婷中文字幕| 美女五月激情| av五月天婷婷丁香| 射区导航| 激情综合播播| 热久免费视频9| 五月婷婷激情中文字幕| 色丁香五月天射婷婷爱婷婷| 日韩成人影片网站| 麻豆雪千夏| 操人91| 1024人妻| 五月天播播| 久久九九@| 婷婷综合激情| 婷婷丁香激情综合色情| 久久99综合| 青草视频在线观看视频| 日日夜夜天天| 色噜噜,噜噜色| 丁香亚洲色综合| 夜色综合网| 婷婷激情丁香五月天综合| 99精品偷自拍| 国产熟女一区二区三区五月婷| 国产噜一噜天天噜| 久久大香免费| 国产五月视频| 91seav| 五月丁香六月婷婷综合伊人| 五月丁香六月婷婷啪啪| 丁香五月婷婷激情97| 91人操人人人操人| 亚洲婷婷激情888精品久| 小骚穴电影| 欧美在线| 日本99热| 九九热免费视频| 丁香五月婷婷呀| 国产资源在线视频| 黄色片avv| 99热综合| www.99热精品| 天天色色天天| 思思re99视频在线观看| 99热这里只有在线播放| 五月天婷婷色播综合在线| 成人综合AV| 免费无码毛片一区二区A片| 五月丁香六月欧美综合网站| 伊人干练久| 久久草中文日韩欧美| 爱99干99| 色综合99| 夜夜躁爽日日| 中文字幕AV在线播放| 伊人五月成人| www色中色综合| 色五月丁香五月激情五月激情| 亚洲无码AV片| 亚州欧美黄色电影| 日日噜噜夜夜狠狠久久丁香五月| 婷婷久久大香蕉| www,色婷婷| 99爱视频| 婷婷综合六月| 米奇激情婷婷| 天天拍夜夜撸| 五月丁香六月婷婷精品| 婷婷五月天黄色| 婷婷色五月天色| 婷婷色五月91啪啪| 天天色中文字幕女优AV| 国产成人综合电影| 91在线操逼视频| 五月激情在线| 农村熟妇高潮精品A片| www.五月天婷婷| 色私五月婷婷| 香蕉综合在线| 天天婷婷综合亚洲亚洲| 99色在线| 五月丁香久久| 日韩ww| 中文字幕按摩做爰| 精品无码久久久久久久久| 1024人妻| 丁香五月婷婷天激情| 国产成人精品一区二区三区视频| 五月丁香婷婷成人网| 91日韩在线| 激情五月综合| 国产肥白大熟妇BBBB视频| 婷婷五月天丁香| 成人电影一区| 亚洲婷婷性爱| 香蕉中文在线| 久久精品4| 色婷婷操逼| 九九综合精品| 六月婷婷狠狠色在线观看| 亚洲色欲欧美一区二区三区| 天天操夜夜爱| 狠狠的日| 婷婷免费视频| 精品久久久91久久影视网| 超碰婷婷色| 大香伊人婷婷影院| 51成人| 色欲色香综合网| 青青草成人网| 日本啪啪网| 色色吧综合| 亚洲色五月| 黄色国久久| 久久婷婷综合色丁香| 久久精品夜色噜噜亚洲a∨| 天天射美女| 婷婷久久欧美| 色激情五月| 99精品无码视频| www.狠狠干com| 九九色婷| 国产67194| AAA久久久| 这里只有精品视频| 久久久色情| 久99视频在线观看| 激情综合网亚洲色图| 六月丁香六月婷婷欧美| 97在线精品| 激情五月天福利| 九九久久五月天综合伊人| 天堂婷婷五月色| 婷婷亚洲欧美丁香五月| 日本久久天堂| 日韩久久日| 国产 亚洲 在线| 五月婷色丁香| 五月天丁香综合| 免看黄大片AA | 婷婷性爱视频在线| 五月天久久成人| 99无码| 欧美美女视频| 99精品自拍视频| 丁香五月婷婷欧美成人色图| 九九亚洲视频| 五月丁香综合影院| 五月开心啪啪| 色色a| 97色五月丁香婷婷| 亚洲视频丁香网va| 五月婷婷中文字幕| 在线不卡中文字幕| 五月播播| 亚洲AV在线免费看| eeuus五月婷| 99re这里只有| 五月天色欧美| 99热精品一| 操一操干一干| 嫩草视频在线观看| 色五月婷婷大香蕉| 久热99热| 久99久热只有精品国产99| 99色区| 日韩精品一区二区亚洲AV观看| www.五月天婷婷.com| 五月99久久| 九九热视频精品999| 电影《战争与艾拉》免费观看| 大香蕉久久婷婷精品综合| 337久久| 婷婷五月天直播| 9久视频| 99九九热视频| 五月激情小说| 91肏| 九色91视频| 99亚洲天堂| 日日躁夜夜躁狠狠久久AV| 91男同| 久久99热免费最新版| 日韩欧美成人一区二区三区| 色 五月俺去也| 亚洲色婷婷| 看婷婷五月天网| 久久久99久久| 99热老网站| 色情五月综合婷婷| 激情宗合网激情五月天| 久久一级AV| 先锋男人99资源| 婷婷丁香五月亚洲| 丁香五月天成人| 久久se 综合网| 午夜九九电影| 久久婷婷免费| 欧美色色网| 久久五月天丁香花| 综合网激情| 激情丁香九九五月综合网| www.色综合.com| 99ri精品视频在线观看| 久久九九综合| 5月丁香六月婷婷| 91热在线观看视频| 五月天激情网站| 9热视频在线观看| 亚洲操操| 亚洲mm色| 婷婷五月天性爱视频| 五月天婷婷成人网| 日本三级大片| 婷婷中文字幕网| 97婷婷五月| 五月婷五月婷伊人伊人五月婷| 伊人在线视频| 五月天在线视频尤物视频在线看| 激情综合婷婷久久| 操97| 婷婷成人五月天一区| 九九在线视频| 日韩精品一区二区亚洲AV观看| 9l视频自拍9l九色9l成人| 久久丁香五月天| 色丁香在线视频| 久久香视频| 91人人操.COM| 亚洲激情色色| 99久久www| 久久婷婷六月综合| 天天综合中文| 美女天天久久| 黄色毛片精品| 婷婷久久五月| 五月婷婷天天| 丁香六月视频| av在线中文| 日韩一区二区A片免费观看| 日本熟女二区| 天天操夜夜夜拍拍拍| 九九超日本| 伊人色综合网| 琪琪色五月天| 激情五月天激情综合网| 天天爽夜夜爽夜夜爽精品| 久久婷五月影院| 婷色五月| www.99热这里精品| 精品色色网| 久久九九99| 欧美综合激情| 中文av网站| 99re这里| 丁香五月婷婷激情123| 五月天丁香成人社| 久久ri精品视频| 91五月天| 香蕉综合网| 久久精品性爱| 天天插天天插天天插| 亚洲视频a| 草榴视频网| 91大屁股在线| 99免费超碰在线| 婷婷五月天电影网 | 日本久久天堂| www.五月天色色色| 人妻六月天| 色婷婷8| av大香蕉| 人妻久久久久久久| 激情久久五月天| 亚洲国产婷婷色五月| 五月婷婷啪啪啪啪| 久草婷婷网| 久久久97| 丁香六月激情综合啪啪| 人人操婷婷| 亚洲精品国产精品乱码不99| 在线亚洲综合网| 青草激情在线| 99精品网站| www.狠狠操.con| 五月天激情综合网站| 久色网| 激情综合五月天| 日本三级中国三级99| 色婷婷超碰| 国产精品人妻在线网址| 久久婷婷东京热| 97婷婷丁香五月天激情图片| av第一二区| 久久超级碰视频| 日本三级毛片| 久久看婷婷| 婷婷性爱网| 五月丁香六月婷综合成人综合 | 天天操屄网| 午夜五月天| 五月丁香六月婷婷国产视频| 丁香婷婷基地| 91视频精品99| 99热这里有精品| 91久热| 亚洲无AV在线中文字幕| 婷婷在线网| 99热伊人综合| 91狠狠色丁香| 亚州精品色情无码A片| 久久这里这里有精品免费视频| 色色热99| 五月丁香另类网| 色婷婷综合视频| 欧美日比视频| 久色网| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 五月婷婷免费| 久草婷| 色色婷婷色色| 人妻22p| 五月天亚洲最大成人| 思思热99在线| 播五月开心婷婷欧美综合| 97人人干| 狠狠久久婷五月综合色| 大香蕉免费9| 色婷婷五月影视| 色婷五月| www.婷婷六月天| 大香蕉久操| 拍色综合| 色色色综合网| 亚洲激情97五月天| 婷婷激情五月综合| 亚洲AV久久久久久久久久久久久久久久 | 91ncm视频| 99热精在线九九久久保| 五月婷婷官网色| 亚州色色色| 久久久久久久91| 日韩在线9| 激情丁香五月激情婷婷| 亚洲视频操| 国产精品久久久久久久久久免费| se99热久久一本| 六月婷婷六月天天在线免费| 色五月婷婷在线观看| 天天综合色| 色欧美日| 婷婷五月丁香色情| 欧美精品99| 2050人人操免费工开爱| 97干在线| 激情综合激情综合| 岛国在线观看91| 婷婷久久五月| 丁香五月六月综合欧美| 99久久人妻精品无码二区| 99九无网码| 无码人妻一区二区三区免费九色| 五月天激情亚洲| xxxx五月天色色| 狠狠色丁香婷婷基地| 激情久久综合| 久婷自拍视频| 婷婷射图五月天| 国产激情综合五月久久| 五月婷婷三级| 色五月五月婷婷| 欧美 色婷婷| 婷婷色五月综合丁香| 欧美在线操| www.色色com| www.夜夜騎夜夜狠| 中文幕无线码中文字蜜桃| 超碰人人干| 丁香五月天电影| 色激情网| www.六月丁香看AV| 无码少妇高潮喷水A片免费| 97香蕉久久超级碰碰高清版| 色婷婷久久| 色五月激情综合网站| 久久加勤综合| 七七色综合| 久久99久久99精品免视看婷婷| 色五月丁香网| 久久婷婷色| 97狠狠色| 99色网站| 超碰99久久| 9有码中文| 五月天激情婷婷| 青青草婷婷久久| www激情婷婷com| 久久蜜臀婷婷| 五月天激情图片| 热九九九九| 久久人妻人人| 色天使色婷婷| 久久精品视频99| 五月丁香免费视频| 99热这里只有精品3| 伊人婷婷青青cao| 色婷婷六月天| 色五月aV| 99久| 丁香色婷婷| www91在线| 婷婷中文无码| 久久这里只精品66| 午夜成人片400| 操丝袜视频影院导航| 久草五月丁香婷婷综合| 99热这里全都是精品| 99九九玖玖| 小视频久久久aaa| 高清无码.com| 中文字幕一色哟哟哟哟| 五月丁香无码| wwww.色婷婷| 色情综合网| 综合丁香婷婷五月天| 国产美女精品| 精品成人a v无码内射| 成人国产网站| 另类专区在线| 久久综合网免费视频| 99久久国产宗和精品1上映| 这里只有精品在线免费视频| 婷婷五月激情综合啪啪| 五月天综合久久| 婷婷五月天激情偷拍| 色九九综合色| 婷婷日欧美在线观看| 欧美日朝成人| 三级毛片视频| 久热69| 欧美噜噜免费观看| 啪啪啪丁香五月| 国产免费AV网站| 五月www| 国产色视频网站2| 俺去也综合| www,婷婷五月天,com| 噜噜色五月| 北京熟妇搡BBBB搡BBBB| 丁香婷婷情色五月天| 婷婷久久午夜网| 婷婷免费视频| 五月婷在线| 丁香激情综合| 快乐婷婷五月天| 国产三级在线播放| 二色av| 激情五月影院| 激情五月天综合图片小说网站| 综合久久8| 午夜色婷婷| 99热97| 婷婷深爱五月天在线| 九九99热久久精品66中文字幕| 蜜桃人妻无码AV天堂三区| 五月婷婷婷丁香播| 婷婷五月天99| 久久五月丁香| 日韩无码系列| 九九综合影音先锋| 很很干天天干| 99精品无码| 丁香六月天婷婷开心综合| 亚洲mm免费| 久九色| 婷婷五月天亚洲综合网| 五月婷婷丁香| 99在线视频播放| 99re最新地址| 亚洲激情电影五月天色婷婷丁香一起草 | 五月丁六月香av| 99热国产精品| 婷婷九九视频| 中文AⅤ大全| 国产做A爰片毛片A片美国| 久久综合干| 婷婷激情六月| 五月婷婷网五月在线| www。88热在线视频免费观看| 怡春院久操| 久久激情婷婷| 岛国AAAV| 天堂成人A片永久免费网站| 五月天久久婷婷| 超碰色综合| 丁香五月天狠狠| 99热久久这里只有精品2010| www.五月天婷婷姐姐| 3pAV| 天天做天天爱天天摸| 综合啪啪| 五月激情综合网| 99热国内精品| 亚州操操| 日韩在线9| 五月天婷婷伊人| 五月丁香久久综合色| 青青艹b| 丁香五月ⅤA久久久| 中文字幕丰满乱孑伦无码专区 | 久色中文| 99在线看片| 91dy.av| 九九热在线观看视频网站| 色天天久婷婷| 色婷婷五月网| 热99热9| 亚洲aV写真天天综合网久久| 五月丁香龟婷婷| 五月丁香激情六月| 色色 亚洲| 亚洲热视频在线| 26uuu成人网| 久久艹99| 天天色播| 在线不卡视频| 色伦专区97中文字幕| 东京热五月婷婷| 久热伊人91| 亚洲人成网站999综合| 夜夜AVV| 久久免费丁香| 99re热在线视频| 天天开心婷婷丁香五月| 五月夜丁香| 五月天色视频| 天天天在线观看| 67194成I人在线观看线路1| 婷婷五月天成人| 精品一二三区久久AAA片| 国产婷婷婷| 人人干人人操外国| 五月丁香啪啪激情| 丁香桃色综合网| 秋霞三及片| 亚洲午夜电影| 久草婷婷| 欧美人人草草| 影音先锋一区| 色狠狠六月| 五月六月伦理| 婷婷大香蕉| 怎么样可以看免费的一级av| 人人操人人添人人摸97| 中文无码婷婷| 五月丁香六月婷婷玖玖| 少妇综合网| 九九亚洲| 九九久久偷拍| 色色五月婷| 天天擼久久擼在线| AV在线免费播放| 国产片XXXXA片国语对白| 超碰激情五月| 亚洲VA欧美VA| 色色色色av色色色色| 综合婷婷| 91热在线观看视频| 五月丁婷香| 五月丁香啪啪伦理电影| 丁香五月综合福利视频导航| 婷婷丁香第一页| 色婷婷五月天中文字幕| 婷婷五月天,影院| 玖热精品综合视频| 激情99| 五月丁激情| 182TV大香蕉| 中字幕视频在线永久在线观看免费| 色九九一二| 九九sese| 六月婷婷色色色| 婷婷五月综合国产精品| 中文色婷婷| 日日夜夜狠狠干| 日本色婷婷| 亚洲热久| 夜夜骑日日夜夜| 久久久久9| 婷婷五月娱乐在线| 情婷婷五月天在线| 日本五月天一页| 五月丁香在线观看| 欧美日韩大黄| 91视频综合网| 97人人干视频| 五月婷六月综合在线观看| 噜噜视频| 丁香五月开心七月| 欧美大奶熟女噜噜噜噜| www.久久爱.com| AV变态另类一区二区| 色五月激情五月丁香五月婷婷啪啪综合| 狠狠高潮精品亚洲1| 1024操逼| 少妇激情五月婷婷| 久久九九色| 九九精品综合| 久狠狠狠| 久久免费干| 五月婷婷六月奇米网丁香| 婷婷五月成人| 99在线观看视频免费| AV在线资源| 亚洲天堂啪啪| 久久精品人妻| 91男同| www,天天干| 五月天另类小说久久小说网| 五月丁香六月婷婷免费| 日日干日日| 色色激情五月天| 亚洲综合久| 久久婷婷五月丁香网| 久久久27操| www.97干视频| 国产伦理精品高清在线观看网站一区二区 | 久久香蕉影院| 婷婷欧美偷拍综合| 狠狠五月天| 丁香五月天在线视频| 激情五月婷婷五月| 婷婷五月四狠狠| 思思久久99| 在线国产精品色| 在线99热| 激情六月五月婷婷综合网| 五月丁香久久| 亚洲日韩人妻操逼| 无码激情AAAAA片-区区| 另类图片五月天婷婷| 天天爽天天做| 丁香六月婷婷五月婷婷| 色婷婷操逼网| 99在线热视频| 国产成人av在线| 天天爽天天日| 丁香五月婷婷丫| 极骚大香蕉伊人| 激情五月婷婷色播网| 91九九精品| 大香蕉欧美在线| 97在线综合| 五月激情视频| 五月天自拍视频| 五月色婷婷夜色| 综合色影| 丁香五月天欧洲在线| 搡BBBB搡BBB搡五十| 激情婷婷五月基地| 久久婷婷五月综合啪| 久久久中文| 午夜青草资源| 岛国资源站| 97干在线| 激情www.98com| 欧美婷婷九月| 婷婷色综合| 99热这里只有精品96| 亚洲视频久久| 久久久18| 五月婷婷六月激情网| 99九九热视频免费| AV性爱在线| 丁香六月亚洲综合| 五月丁香综合在线| 噼里啪啦在线观看免费完整版视频| 五月丁香婷婷人体| 99亚洲精美视频在线观看| 99热一区| 播五月丁香六月| 亚洲婷婷91丁香| 国产精产国品一二三在观看 | 五月天丁香成人| 开心五月婷婷| 久色五月丁香视频| 久久国产精品乱子伦_靑青草…| 天天日P天天射P| 欧美一级色| 天天色官网| 超碰超碰在线| 人操综合| 91狠狠色丁香婷婷综合久久精品| 五月丁香婷婷啪啪综合网| 综合激情肏逼网| 精品无码久久久久久久久| 五月天婷婷丁香导航| 色的色综合| www久久艹| 日韩黄在免| 爱射综合| 天堂草在线看www| 狠狠色狠狠干| 99啪99| 久久se 综合网| 99啪啪视频| 99久久综合| 丁香五月瑟瑟| 久久伊人婷婷| 91在线观看www| 中文字幕欧美日韩VA免费视频| 五月婷婷九九热| 99热这里只有精品无码| 亚洲无码成人网| 五月天综合久久丁香91| 狠狠一日| 婷婷香蕉| 成人av免费观看| 可以看的av网站| 激情婷婷六月| 色五月久久成人婷婷| 色丁香五月婷婷| 午夜丁香六月婷| 大香蕉丁香婷婷| 日韩中文字幕| 婷婷久久五月| 婷婷丁香六月| 婷婷激情视频| 五月丁香婷婷基地| 99re热在线视频观看| 亚洲va在线| 欧美A级网站| 五月天激情久久| 婷婷伊人五月天| 天天综合亚洲综合| 九热视频在线精品15| 激情色情五月天| 久久ri精品| 97在线观看| 精品夜夜澡人妻无码AV| 亚洲第一综合| 久机视频这只有精品| 九九精品综合| 99啪啪网| 五月丁香影院| 日日操天天操| 亚洲激情五月天| 五月丁香五月婷婷在线观看| 淫水导航| 99思思热只有在这里看| 色噜噜在线| 天天檫天天爽| 思思热在线免费视频| 成人色色视频| 99愛国产| 五月激情天天干| 天天爽免费视频| 色五月色五天免费视频| 天天精品视频免费观看| 九九视频这里只有精品| 五月丁香六月激情欧美综合| 玖玖资源站中文| www激情| 亚洲婷婷五月天| 五月激情偷拍婷婷| 色情激情五月婷婷| 久久婷婷艹| 婷婷五月天性爱视频| 婷婷丁香五月天熟女丝袜| 99免费青青蜜臀| 大香蕉伊人爱在线| 亚洲天堂热| 538在线| 天天综合五月| 97婷婷五月| 丁香婷婷九月| 婷婷六月色| 欧美成人精品A片免费一区99| 国产精品美女久久久久AV超清| 日韩丁香涩| 去色色五月天| 久久五月天视频| 中海油常州环保涂料有限公司| 99在线观看视频精品| 99热这里只有精品50| 丁香色五月天| 婷婷激情综合| 午夜性做爰电影| 99re视频在线精品| 性天堂久久| 天天综合激情| 色婷婷先锋| 久re热视频| 99ri精品| 亚洲成人电影在线免费观看| 亚洲色夜| 热久久成人| 五月丁香六月婷婷在线| 久久HD| 人与禽A片啪啪| 五月天基地| 色之综合网| 国产婷婷色综合AV蜜臀AV| 色综合久久88色综合天天99| 色五月首页| 伊人成综合五月婷婷| 亚洲激情网| 天天操天天草天天草天天| 99热新网址| 白人荫道BBWBBB大荫道| 成人在线高清| 侠女刀之记忆电影在线看免费| 婷婷激情五月色综合| 97人妻碰碰中文无码久热丝袜| 久久一级AV| 一级性感黄色内射视频| 丁香涩涩五月天| 丁香五月婷婷啪啪啪| 婷婷射图五月天| 99精品在线播放| 久热精彩视频98| 五月婷婷色| 亚洲av骚货| 亚洲乱码精品久久久久..| 97碰碰碰| 狠狠干在线视频| 亚洲精品视频在线播放| 久久久久9久无码视频| 九九热在线观看6| 色久天| 国产露脸150部国语对白| 99玖玖免费视频| 亚洲色无码| 国产精品涩涩涩视频网站| 色色色精品无码区| 激情美女五月天| 五月丁香色综合| 操操操97| 色婷婷电影网| 天天日综合| 国产精品91抖高| 色婷婷黄色网络| 天天天天干| www.91五月| 久久五月婷婷电影| 激情久久丁香| 蒲京久久无码视频| 欧美色色色色色色色色色色影视| 99在线精品视频| 亚洲丁香婷婷| 色欲丁香久久| 婷婷金品综合视频| 大香蕉大香蕉在线影院| 99热久久这里只有精品2010| 亚洲亚洲人成综合网络| 五月婷婷综合激情网| 五月婷婷婷丁香播| 五月色情婷婷| 五月婷婷啪啪网| 亚洲熟妇AV乱码在线观看| 99热最新地址在线| 综合色情网| 99爱99操| 天天日天天色| 大香蕉懂9| 热99精品视频| 69凹凸成人综合网| 五月青青草综合| 色情综合| 色愛综合网| 99热免| 日韩操人| 99久久6| 五月天天丁香婷婷在线中| 色五月婷婷色| 激情婷婷久久| 天天肏天天肏天天肏| 色青五月天| 26uuu国产| 日韩在线成人电影| 天天日 天天草| 色综合久久88色综合天天看| 久久99久久99精品免观看粉嫩| 天天肏高清在线|