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

ARTICLE DETAIL

資訊詳情

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

蒼穹外賣項(xiàng)目實(shí)戰(zhàn):Spring Boot + Redis 構(gòu)建完整O2O訂單系統(tǒng)

蒼穹外賣項(xiàng)目實(shí)戰(zhàn):Spring Boot + Redis 構(gòu)建完整O2O訂單系統(tǒng) 做這個(gè)項(xiàng)目之前我在本地跑過不少零散的接口demo但真正動(dòng)手把“蒼穹外賣”這套完整項(xiàng)目從頭到尾捋下來之后才感受到一個(gè)線上級(jí)業(yè)務(wù)系統(tǒng)涉及的東西遠(yuǎn)不止CRUD那么簡單。這套外賣系統(tǒng)很像一個(gè)濃縮版的商業(yè)中臺(tái)用戶端小程序、商家端后臺(tái)、管理端控制臺(tái)外加一整套訂單流轉(zhuǎn)、購物車、支付回調(diào)、配送提醒、數(shù)據(jù)統(tǒng)計(jì)的鏈路。無論你是準(zhǔn)備畢業(yè)設(shè)計(jì)、想寫進(jìn)簡歷的練手項(xiàng)目還是想搞明白“一個(gè)真實(shí)業(yè)務(wù)系統(tǒng)怎么從零搭起來”這個(gè)項(xiàng)目都能給你很完整的參照系。主后端用的是Spring Boot持久層用了MyBatis也有一版是MyBatis Plus緩存交給Redis登錄鑒權(quán)走JWT前后端分離管理端用Vue構(gòu)建。整個(gè)開發(fā)過程里最難的部分不是某個(gè)算法而是“多個(gè)模塊之間怎么把狀態(tài)同步好”——訂單狀態(tài)怎么變、庫存什么時(shí)候扣、超時(shí)單怎么處理、WebSocket怎么把配送狀態(tài)推給用戶。這篇文章我會(huì)把你需要關(guān)注的模塊設(shè)計(jì)、關(guān)鍵實(shí)現(xiàn)、部署細(xì)節(jié)以及我實(shí)際調(diào)試過程中踩過的坑全部拆開講盡量做到你照著往下走就能復(fù)現(xiàn)。1. 項(xiàng)目全貌與技術(shù)選型拆解1.1 為什么叫“蒼穹外賣”它在解決什么問題“蒼穹外賣”是一個(gè)典型的O2O外賣平臺(tái)項(xiàng)目名字本身是代號(hào)你可以把它理解成一套“小美外賣”或“某外賣系統(tǒng)”。它模擬真實(shí)外賣平臺(tái)的核心閉環(huán)用戶瀏覽菜品、加入購物車、下單支付模擬、商家接單、騎手配送、用戶確認(rèn)收貨同時(shí)管理端還承擔(dān)分類管理、菜品管理、套餐管理、員工管理、訂單查詢和數(shù)據(jù)統(tǒng)計(jì)等功能。這個(gè)項(xiàng)目最大的價(jià)值在于覆蓋面廣它不是簡單的“增刪改查”而是把真實(shí)的業(yè)務(wù)狀態(tài)機(jī)、并發(fā)控制、緩存策略、權(quán)限模型都融入進(jìn)來了。比如用戶端需要處理購物車勾選的一堆菜品下單時(shí)要同時(shí)考慮起送價(jià)、配送費(fèi)、訂單總金額和結(jié)算明細(xì)商家端要能看到新訂單并執(zhí)行接單/拒單管理端要能按時(shí)間段查詢營業(yè)額和用戶下單趨勢。任何一個(gè)環(huán)節(jié)如果只寫表面接口都會(huì)在聯(lián)調(diào)時(shí)出問題。對(duì)于開發(fā)者來說它解決了“只會(huì)寫CRUD不知道業(yè)務(wù)怎么串聯(lián)”的痛點(diǎn)。你會(huì)真實(shí)地感受到一個(gè)訂單從創(chuàng)建到完成需要哪些表需要哪些狀態(tài)字段什么時(shí)候用Redis存購物車什么時(shí)候必須落到MySQL什么時(shí)候用定時(shí)任務(wù)去處理超時(shí)未支付訂單。這些經(jīng)驗(yàn)在面試和實(shí)際工作中都非常關(guān)鍵。1.2 技術(shù)棧清單與選型理由先列一份我在項(xiàng)目中實(shí)際使用的技術(shù)棧集合方便你對(duì)照環(huán)境層次技術(shù)選型說明后端Spring Boot 2.x主框架快速搭建RESTful服務(wù)持久層MyBatis含MyBatis Plus封裝靈活編寫SQL應(yīng)對(duì)復(fù)雜報(bào)表緩存Redis緩存店鋪營業(yè)狀態(tài)、購物車數(shù)據(jù)存儲(chǔ)JWT黑名單鑒權(quán)JWT Spring Interceptor無狀態(tài)登錄校驗(yàn)數(shù)據(jù)庫MySQL 5.7/8.0存儲(chǔ)持久化業(yè)務(wù)數(shù)據(jù)前端用戶端微信小程序原生或uni-app貼近真實(shí)C端場景前端管理端Vue Element UI管理后臺(tái)界面接口文檔Knife4j / Swagger前后端聯(lián)調(diào)必備部署Linux Nginx Docker可選模擬線上環(huán)境選型背后的邏輯我需要多說幾句。Spring Boot在Java生態(tài)里就是“約定優(yōu)于配置”的代言人起步快并且社區(qū)資料極其豐富。MyBatis和JPA的爭論一直存在但這個(gè)項(xiàng)目里我選MyBatis是因?yàn)楹芏嗖樵兩婕岸啾黻P(guān)聯(lián)、動(dòng)態(tài)條件、金額統(tǒng)計(jì)MyBatis的SQL可控性更強(qiáng)出現(xiàn)慢查詢時(shí)可以直接在XML里優(yōu)化。Redis在這里不是裝飾品而是真實(shí)承擔(dān)了高頻讀寫業(yè)務(wù)外賣系統(tǒng)里的店鋪營業(yè)狀態(tài)每天被看好幾次購物車數(shù)據(jù)用戶改來改去寫在MySQL里不僅要頻繁建會(huì)話表壓力也大放在Redis里天然帶過期時(shí)間數(shù)據(jù)結(jié)構(gòu)又支持Hash和List非常契合。JWT則解決了分布式場景下的會(huì)話共享問題。雖然單體項(xiàng)目用Session也可以但JWT更接近現(xiàn)在的主流架構(gòu)習(xí)慣登錄后服務(wù)端不保存用戶會(huì)話只需要在攔截器里校驗(yàn)Token的簽名和有效期這樣后續(xù)如果要把服務(wù)拆成多實(shí)例也無須額外同步Session。1.3 系統(tǒng)角色與模塊劃分我從實(shí)際開發(fā)的角度把整個(gè)項(xiàng)目拆成三大塊用戶端小程序/移動(dòng)H5登錄、瀏覽分類與菜品、購物車、下單、支付結(jié)算模擬、查看訂單狀態(tài)、催單。商家端管理后臺(tái)一部分主要是商家或店員視角管理菜品、接收新訂單、訂單狀態(tài)流轉(zhuǎn)比如接單、配送中、完成。管理端平臺(tái)運(yùn)營視角員工管理、分類與菜品管理、套餐管理、訂單綜合查詢、營業(yè)數(shù)據(jù)統(tǒng)計(jì)、工作臺(tái)運(yùn)營概覽。為什么要把商家端和管理端分開真實(shí)外賣平臺(tái)中商家只能管理自己的店鋪平臺(tái)運(yùn)營可以查看全量數(shù)據(jù)。這個(gè)項(xiàng)目里Model劃分雖然沒有搞微服務(wù)那么重但Controller層的包結(jié)構(gòu)、權(quán)限攔截、角色判斷還是要提前設(shè)計(jì)好。我一開始就是把所有接口都堆到同一個(gè)Controller里后面發(fā)現(xiàn)要么是權(quán)限混亂要么是字段輸出到前端時(shí)互相干擾所以項(xiàng)目里凡是標(biāo)識(shí)了admin的路徑都統(tǒng)一管理凡是/user路徑都走用戶身份判斷形成約定后代碼好維護(hù)很多。2. 數(shù)據(jù)庫設(shè)計(jì)與核心表結(jié)構(gòu)解析2.1 業(yè)務(wù)實(shí)體拆解做任何項(xiàng)目數(shù)據(jù)庫設(shè)計(jì)都是地基。我最初設(shè)計(jì)這張表清單花了兩天時(shí)間來回調(diào)整了三版。最終的核心表大概包括員工表employee管理端登錄賬號(hào)包含賬號(hào)、密碼加鹽加密、狀態(tài)。分類表category類型區(qū)分菜品分類和套餐分類名稱、排序、是否刪除。菜品表dish菜名、圖片、價(jià)格、描述、所屬分類、狀態(tài)啟售/停售??谖侗韉ish_flavor很多菜品需要選辣度、規(guī)格一對(duì)多。套餐表setmeal包含套餐價(jià)格、分類、狀態(tài)。套餐與菜品關(guān)聯(lián)表setmeal_dish多對(duì)多關(guān)系。用戶表user微信端用戶信息openid模擬、昵稱、手機(jī)號(hào)。地址簿表address_book收貨人、手機(jī)號(hào)、詳細(xì)地址、標(biāo)簽家/公司。購物車表shopping_cart其實(shí)可以用Redis但落庫版本能把購物車持久化到MySQL表里存用戶ID、菜品ID、口味JSON、數(shù)量、金額。訂單表orders訂單號(hào)、用戶ID、地址快照、金額明細(xì)、狀態(tài)、下單時(shí)間、支付時(shí)間、預(yù)計(jì)送達(dá)時(shí)間。訂單明細(xì)表order_detail一個(gè)訂單對(duì)應(yīng)多個(gè)菜品記錄菜品快照信息。工作臺(tái)相關(guān)統(tǒng)計(jì)表一般實(shí)時(shí)計(jì)算不單獨(dú)建表。這里想強(qiáng)調(diào)兩個(gè)容易被忽略的設(shè)計(jì)點(diǎn)。第一訂單表里一定要存地址快照和菜品快照而不是通過外鍵去關(guān)聯(lián)用戶地址表和菜品表。否則用戶以后改了地址或者菜品下架改名歷史訂單的數(shù)據(jù)就全部亂掉了。第二金額字段要用decimal(10,2)不能用float或double這個(gè)面試?yán)锊戎懈怕蕵O高——二進(jìn)制浮點(diǎn)數(shù)在累加時(shí)會(huì)出現(xiàn)0.10.2不等于0.3的問題訂單金額錯(cuò)了可沒法交代。2.2 訂單狀態(tài)流轉(zhuǎn)與關(guān)聯(lián)設(shè)計(jì)訂單是這個(gè)系統(tǒng)的核心我們把狀態(tài)機(jī)設(shè)計(jì)為狀態(tài)值含義對(duì)應(yīng)的用戶操作1待付款用戶下單后未支付2待接單已支付等待商家確認(rèn)3已接單商家已接受制作中4配送中騎手正在配送5已完成用戶確認(rèn)或自動(dòng)完成6已取消用戶取消或超時(shí)取消7退款售后狀態(tài)模擬狀態(tài)之間絕不能亂跳比如待付款狀態(tài)下是不能直接改成配送中的。我代碼里在Service層寫了一個(gè)統(tǒng)一的狀態(tài)校驗(yàn)方法不允許非法狀態(tài)躍遷。在訂單表里還設(shè)置了一個(gè)字段區(qū)分是用戶取消、商家拒單還是超時(shí)取消便于后續(xù)統(tǒng)計(jì)取消原因。和訂單關(guān)聯(lián)最緊密的就是明細(xì)表。明細(xì)表不需要和菜品表做強(qiáng)關(guān)聯(lián)因?yàn)椴似繁碜侄慰梢噪S便改但明細(xì)要保留當(dāng)時(shí)的價(jià)格。如果你在管理端改了菜品價(jià)格然后回頭查歷史訂單發(fā)現(xiàn)金額變了那就是關(guān)聯(lián)設(shè)計(jì)出了問題。這是我實(shí)際開發(fā)中遇到的真實(shí)問題所以快照思路要嚴(yán)格執(zhí)行。2.3 數(shù)據(jù)庫設(shè)計(jì)的幾個(gè)坑第一個(gè)坑是時(shí)間字段的時(shí)區(qū)問題。MySQL里如果連接參數(shù)沒有設(shè)置serverTimezoneAsia/Shanghai入庫的時(shí)間會(huì)和本地時(shí)間差8小時(shí)。訂單的統(tǒng)計(jì)是按天來的時(shí)區(qū)一亂營業(yè)額統(tǒng)計(jì)就大概率偏移。第二個(gè)坑是邏輯刪除。很多表都加了deleted字段但查詢時(shí)稍不注意就把已刪除的分類也查出來了。我采取的方案是MyBatis配置全局的邏輯刪除字段并在業(yè)務(wù)層通過構(gòu)造查詢條件強(qiáng)制過濾。第三個(gè)坑是索引設(shè)計(jì)。訂單表數(shù)據(jù)量一旦上來如果沒對(duì)user_id和status建聯(lián)合索引按用戶查歷史訂單、按狀態(tài)列訂單都會(huì)走全表掃描。我的建議是order_no做唯一索引user_idstatus做聯(lián)合索引訂單創(chuàng)建時(shí)間的范圍查詢也要考慮到。3. 核心功能實(shí)現(xiàn)與實(shí)操要點(diǎn)3.1 用戶登錄與JWT鑒權(quán)流程外賣項(xiàng)目的用戶端登錄一般走微信登錄真實(shí)場景需要調(diào)用微信的code2session接口換取openid。做模擬項(xiàng)目的時(shí)候不需要真實(shí)的AppID所以我在項(xiàng)目里封裝了一個(gè)類似的登錄服務(wù)前端把模擬的code傳過來后端通過固定的配置類生成一個(gè)openid真實(shí)場景就是請求微信接口獲取再根據(jù)openid查用戶表不存在則自動(dòng)注冊新用戶最后生成JWT返回給前端。代碼層面JWT我用的是jjwt庫核心操作就是三塊生成Token、解析Token、校驗(yàn)過期時(shí)間。實(shí)際項(xiàng)目中我會(huì)自定義一個(gè)攔截器或者HandlerInterceptor對(duì)所有除登錄接口之外的路徑進(jìn)行校驗(yàn)。攔截器里從Header中取token解析成功就把用戶ID放到ThreadLocal或RequestContext里后續(xù)Controller直接取。這里有個(gè)關(guān)鍵點(diǎn)ThreadLocal用完后一定要remove否則線程池復(fù)用時(shí)會(huì)帶來數(shù)據(jù)串臺(tái)的隱患。我踩過的坑是第一次設(shè)計(jì)Header字段時(shí)叫“Authorization”但管理端和用戶端用了同一個(gè)攔截器導(dǎo)致用戶Token被當(dāng)成管理員Token用。后來我給兩個(gè)端分別定義了不同的鑒權(quán)攔截器且路徑前綴區(qū)分開/admin/**走管理端校驗(yàn)/user/**走用戶端校驗(yàn)。這個(gè)設(shè)計(jì)影響到后面所有模塊的聯(lián)調(diào)提前理清很有必要。3.2 購物車與下單鏈路購物車是這個(gè)系統(tǒng)中“高頻寫”的代表。用戶加購時(shí)前端把菜品ID和口味組合傳給后端后端先判斷Redis里有沒有對(duì)應(yīng)數(shù)據(jù)如果有數(shù)量加一如果沒有初始化一個(gè)新的購物車條目。用Hash結(jié)構(gòu)存儲(chǔ)時(shí)key可以用userIdfield用“菜品id_口味hash”這樣同一個(gè)菜加不同辣度可以分開計(jì)數(shù)也方便前端回顯購物車列表時(shí)聚合。下單鏈路我更想強(qiáng)調(diào)“一致性”。下單涉及的操作包括校驗(yàn)購物車非空、計(jì)算總金額、校驗(yàn)余額或模擬支付結(jié)果、生成訂單主表和明細(xì)表、清空購物車、扣減庫存如果做了庫存。這些操作必須放在同一個(gè)事務(wù)中否則一旦中途異常訂單表和庫存表就出現(xiàn)不一致。我在做庫存扣減時(shí)一開始用的是先查庫存再更新結(jié)果并發(fā)下單時(shí)出現(xiàn)超賣問題。后來改了SQL直接通過UPDATE語句“庫存購買數(shù)量”這個(gè)條件來扣減update dish set stock stock - #{num} where id #{id} and stock #{num}。受影響行數(shù)為0說明庫存不足需要回滾。這是我在實(shí)際項(xiàng)目中記憶很深刻的一個(gè)教訓(xùn)雖然蒼穹這套項(xiàng)目有些版本沒有做庫存字段但加上這個(gè)點(diǎn)會(huì)讓項(xiàng)目含金量更高。3.3 訂單狀態(tài)變更與消息推送訂單狀態(tài)變化之后用戶端需要實(shí)時(shí)看到。這里我沒有引入MQ做異步推送而是用WebSocket建立一個(gè)長連接商戶或管理端修改訂單狀態(tài)后服務(wù)端主動(dòng)把最新狀態(tài)推送給對(duì)應(yīng)的用戶端連接。實(shí)現(xiàn)步驟大致是后端引入WebSocket依賴編寫一個(gè)WebSocketServer的單例管理所有在線連接當(dāng)用戶登錄成功后前端通過握手請求把token傳上來服務(wù)端解析出userId后把Session映射到userId的Map中訂單狀態(tài)變更時(shí)根據(jù)訂單里的userId找到對(duì)應(yīng)連接并推送JSON消息比如推送訂單號(hào)、最新狀態(tài)、預(yù)計(jì)送達(dá)時(shí)間。如果不想引入WebSocket也可以前端定時(shí)輪詢訂單接口但這樣實(shí)時(shí)性差且壓力大。WebSocket的難度主要在于連接管理和心跳保活。我在本地測試時(shí)發(fā)現(xiàn)瀏覽器和服務(wù)器之間存在網(wǎng)絡(luò)代理時(shí)會(huì)自動(dòng)斷開連接所以寫了Ping/Pong心跳機(jī)制每30秒發(fā)一次心跳包維持連接。這個(gè)機(jī)制如果你不做線上環(huán)境很容易出現(xiàn)用戶那邊已經(jīng)斷開了服務(wù)端還不知道的情況。3.4 管理端數(shù)據(jù)統(tǒng)計(jì)與報(bào)表管理端有一個(gè)比較亮眼的功能是數(shù)據(jù)統(tǒng)計(jì)按時(shí)間區(qū)間展示營業(yè)額、訂單量、平均客單價(jià)、新增用戶數(shù)同時(shí)畫出訂單趨勢曲線。這里不需要額外引入復(fù)雜的BI工具用SQL聚合即可。我以營業(yè)額為例說明思路篩選條件包括訂單狀態(tài)已完成的訂單才計(jì)算營業(yè)額不能把待付款和已取消算進(jìn)去然后根據(jù)下單時(shí)間或支付時(shí)間所在日期進(jìn)行分組按天求出訂單金額總額。注意MySQL的DATE_FORMAT函數(shù)可以把datetime轉(zhuǎn)成yyyy-MM-dd的字符串再配合GROUP BY就能得到每日的營業(yè)額列表。類似的訂單趨勢統(tǒng)計(jì)是按天統(tǒng)計(jì)訂單數(shù)新增用戶數(shù)是按用戶表create_time日期分組訪問趨勢可能涉及UV/PV統(tǒng)計(jì)這時(shí)候Redis的HyperLogLog就派上用場了PFADD和PFCOUNT可以非常省內(nèi)存地去重計(jì)數(shù)。當(dāng)然如果只是為了演示效果用SQL直接做也行但你能說出HyperLogLog的原理面試官對(duì)你的工程認(rèn)知會(huì)明顯加分。4. 部署與環(huán)境搭建實(shí)錄4.1 本地開發(fā)環(huán)境準(zhǔn)備我先說本地跑起來的必要環(huán)境配置。JDK建議用Java 8或11Maven用3.6以上MySQL用5.7或8.0都可Redis用5.0以上。如果你的電腦還沒裝這些我建議用Docker一鍵跑MySQL和Redis可以省去很多環(huán)境變量的煩惱。比如執(zhí)行docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7Windows上記得檢查端口占用本地開發(fā)時(shí)3306端口很容易被另一個(gè)殘留MySQL進(jìn)程占著連接不上時(shí)先netstat查一下。項(xiàng)目配置文件中需要修改的核心項(xiàng)是數(shù)據(jù)源和Redis地址。Spring Boot里我傾向于用application.yml統(tǒng)一管理。需要注意的一點(diǎn)是密碼和敏感信息不要寫死在git里至少應(yīng)該通過環(huán)境變量引用spring.redis.host${REDIS_HOST:localhost}這樣既方便本地跑也方便上線時(shí)用環(huán)境變量注入。4.2 前后端聯(lián)調(diào)中的協(xié)議約定這個(gè)項(xiàng)目涉及到小程序端和管理端前后端聯(lián)調(diào)是重頭戲。聯(lián)調(diào)之前必須先統(tǒng)一數(shù)據(jù)格式。我用的統(tǒng)一響應(yīng)結(jié)構(gòu)是{ code: 1, msg: success, data: {} }code為1表示成功0表示失敗。有人喜歡用200/500這種HTTP狀態(tài)碼來代表業(yè)務(wù)成功與否但我不太建議因?yàn)镠TTP狀態(tài)碼應(yīng)該表達(dá)傳輸層狀態(tài)而業(yè)務(wù)層狀態(tài)需要code字段來細(xì)分。前端拿到res.code后判斷是否等于1再?zèng)Q定拉取data還是彈出錯(cuò)誤信息。另外一個(gè)非常容易踩雷的是日期格式。后端返回的LocalDateTime默認(rèn)是一長串帶T的格式小程序端直接展示很難看。我在全局配置里加了Jackson的日期格式化統(tǒng)一為“yyyy-MM-dd HH:mm:ss”。還有金額字段返回時(shí)要小心精度丟失不能轉(zhuǎn)成double再傳給前端而是要保留字符串或整數(shù)形式比如以元為單位保留兩位小數(shù)或者前端用整數(shù)分單位解析避免浮點(diǎn)數(shù)精度問題。4.3 打包部署的常見問題本地運(yùn)行成功后要把后端打成jar包部署到Linux服務(wù)器。執(zhí)行mvn clean package后在target目錄下生成xxx.jar。部署時(shí)我用的是systemd服務(wù)或者直接nohup java -jar xxx.jar logs/log.log 21 。最常見的三個(gè)問題第一打包時(shí)test報(bào)錯(cuò)導(dǎo)致打包失敗可以在pom中跳過測試spring-boot-maven-plugin配置maven.test.skiptrue或者命令行加-Dmaven.test.skiptrue。第二端口沒開服務(wù)器安全組或防火墻擋住了8080端口導(dǎo)致前端請求連接超時(shí)檢查firewalld或者iptables規(guī)則。第三靜態(tài)資源路徑問題。管理端打包后的dist文件一般放在Nginx里Nginx配置api反向代理到后端的8080端口前端和后端之間不會(huì)跨域但如果你前端直接用devServer代理本地跑時(shí)也要確認(rèn)proxy表配置正確。5. 問題排查與避坑指南5.1 常見異常速查表我在做這個(gè)項(xiàng)目時(shí)整理過一張異常排錯(cuò)表現(xiàn)在直接分享出來異常表現(xiàn)常見原因解決方案登錄接口返回401JWT過期或簽名不匹配檢查token是否帶Bearer前綴再確認(rèn)攔截器排除路徑是否配錯(cuò)MySQL連接報(bào)CommunicationsException數(shù)據(jù)庫地址/端口/賬號(hào)錯(cuò)誤或連接池耗盡檢查yml配置注意時(shí)區(qū)參數(shù)重啟時(shí)確認(rèn)服務(wù)已啟動(dòng)Redis連接失敗Redis未啟動(dòng)或密碼錯(cuò)誤本地執(zhí)行ping檢查生產(chǎn)環(huán)境用redis-cli -a 密碼 ping驗(yàn)證中文亂碼數(shù)據(jù)庫連接字符集未配置UTF-8URL加useUnicodetruecharacterEncodingutf-8金額對(duì)不上使用了float/double全面改為BigDecimal并配置保留兩位小數(shù)前端報(bào)跨域后端未允許跨域或代理配置錯(cuò)誤開發(fā)環(huán)境用async的proxy線上用Nginx同源解決定時(shí)任務(wù)沒執(zhí)行未啟用EnableScheduling或cron表達(dá)式錯(cuò)誤檢查啟動(dòng)類注解和Cron表達(dá)式注意6位還是7位最隱蔽的問題是數(shù)據(jù)庫連接池連接泄露。如果有長連接查詢特別慢或者偶發(fā)無法獲取連接多半是事務(wù)沒提交或者連接未歸還。我會(huì)在yml里配置連接池監(jiān)控參數(shù)例如maximum-pool-size20minimum-idle5并開啟日志排查的時(shí)候能看清誰拿了連接不還。5.2 我踩過的幾個(gè)坑第一個(gè)坑是事務(wù)失效。在同一個(gè)類里調(diào)用帶Transactional的public方法時(shí)事務(wù)不會(huì)生效因?yàn)镾pring的代理對(duì)象調(diào)用的是this方法而不是代理方法。解決辦法是把需要事務(wù)的邏輯拆到另一個(gè)Service類中或者通過注入自身的代理對(duì)象調(diào)用。為了排查這種問題我會(huì)在配置里加上事務(wù)日志輸出到控制臺(tái)觀察異常后是否有rollback記錄。第二個(gè)坑是JSON序列化循環(huán)引用。菜品類里包含分類對(duì)象分類對(duì)象又包含菜品列表結(jié)果返回JSON時(shí)直接棧溢出。后來把關(guān)聯(lián)屬性用JsonIgnore或設(shè)置DTO只返回需要的字段。經(jīng)驗(yàn)就是實(shí)體類不要直接作為API響應(yīng)體一定要轉(zhuǎn)VO/DTO這既安全又靈活。第三個(gè)坑是MyBatis的動(dòng)態(tài)SQL字段里出現(xiàn)了下劃線映射問題。表字段是create_time實(shí)體屬性是createTime如果沒開啟mapUnderscoreToCamelCase查詢字段時(shí)為null。在配置文件里加上mybatis.configuration.map-underscore-to-camel-casetrue即可這個(gè)點(diǎn)能幫你省半小時(shí)。5.3 性能優(yōu)化與后續(xù)擴(kuò)展方向項(xiàng)目基本跑通后我又做了幾個(gè)方向上的優(yōu)化讓整個(gè)項(xiàng)目的完成度更高。緩存優(yōu)化方面店鋪營業(yè)狀態(tài)、分類列表這些讀多寫少的數(shù)據(jù)可以在每次查詢后寫入Redis并設(shè)置合理的過期時(shí)間例如5到10分鐘。新增或修改時(shí)主動(dòng)刪除對(duì)應(yīng)緩存保證緩存與數(shù)據(jù)庫最終一致。頁面端會(huì)出現(xiàn)數(shù)據(jù)短暫延遲但通??梢越邮?。接口優(yōu)化方面菜品分頁查詢時(shí)如果數(shù)據(jù)量大可以考慮用PageHelper分頁或者在SQL里做limit分頁。管理端訂單列表查詢使用了比較多的時(shí)間范圍篩選我建立了復(fù)合索引避免臨時(shí)文件排序。擴(kuò)展方向上可以給項(xiàng)目加入MQ來處理訂單超時(shí)消息比如用延遲隊(duì)列實(shí)現(xiàn)下單后15分鐘未支付自動(dòng)取消。還可以引入Elasticsearch做菜品搜索提高分類和菜品的查詢速度?,F(xiàn)在很多微服務(wù)架構(gòu)把蒼穹項(xiàng)目拆分成多個(gè)模塊比如認(rèn)證服務(wù)、訂單服務(wù)、商品服務(wù)這其實(shí)也是很好的學(xué)習(xí)路徑但先把單體項(xiàng)目吃透更重要。一點(diǎn)私人總結(jié)做完這個(gè)項(xiàng)目之后我最大的收獲是建立了對(duì)完整業(yè)務(wù)系統(tǒng)的認(rèn)知閉環(huán)。以前寫CRUD只是照著接口文檔填方法體而蒼穹外賣讓我真正思考了訂單在什么時(shí)機(jī)生成、購物車數(shù)據(jù)放在哪里、什么時(shí)候要加鎖、什么時(shí)候要用快照。從數(shù)據(jù)庫設(shè)計(jì)到鑒權(quán)攔截再到WebSocket推送鏈路完整每個(gè)環(huán)節(jié)都不是孤立的。如果你正在動(dòng)手做這個(gè)項(xiàng)目我建議你不要只滿足于“能跑起來”。把每一個(gè)狀態(tài)變更的日志打出來把每一次調(diào)用鏈路梳理清楚甚至可以自己畫一張時(shí)序圖。只要你把訂單主流程的所有細(xì)節(jié)都吃透了下次再去接觸分布式事務(wù)、消息隊(duì)列、微服務(wù)拆分這些主題會(huì)發(fā)現(xiàn)基礎(chǔ)已經(jīng)打好了。最后再分享一個(gè)小經(jīng)驗(yàn)這個(gè)項(xiàng)目做完記得用真實(shí)體驗(yàn)的心態(tài)去測試每一個(gè)按鈕你自己就是最好的測試人員。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
麻豆啪啪啪视频| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 精品一区二区三区蜜桃臀赵总 | 在线观看日韩av不卡| 97天天日| 骚日日av| 中文字幕精品亚洲熟女| 欧美图片校园春色| 97超碰伊人| 性生活久久久久久久久久| 大香蕉520| 尤物黄色在线观看网站| 亚洲欧美首页| 久久久久久久97| 日韩八十路老熟女| 97亚洲欧美日韩| 97视频网站在线观看| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 一区二区三区四区五区高清无码永久视频 | 日韩人妻丝袜美腿中文| 第四色色综合91| 免费看毛片操穴| 亚洲操逼视频网站| 91人人臊| 午夜丁香婷婷| 亚洲AV无码乱码在线观看性色| 中国一级操逼视频| 色五月激情综合网| 丁香五月综合| 99re8超碰| 旡码电影特区| 91狠狠狠| 91香蕉国产尤物视频| 久久精品国产亚洲粉嫩| 欧美的精品的视频| 无遮挡男女激烈动态图| 亚洲最大成人a毛毛片| 国产91亚洲精品一区二区三区| av中亚| 国产精品com| 97天天综合| 夜夜爽夜夜高潮夜夜爽| 无码高清少妇久久| 在线免费观看日韩一区| 中文字幕交换人妻| 成年女人18级毛片毛片免费观看| 精品久久久九九九孕妇| 免费人人搞97| 97在线观看免费视频l| 美女高潮视频91| 少妇一区二区三区在线观看| 天美传媒在线一区| 夜夜国自区| 又黄又硬又粗又长国产视频| 亚洲色欧| 精品九九| 2019天天干天天操| 超碰 另类 欧美| 丝袜狠狠草尤物人妻av91| 中文字幕丝袜美腿| 国产精品久久久九九九| 欧美丝袜亚洲| 中国农村熟妇毛片视频| 中国大陆国产高清AⅤ毛片| 熟女人妇一区二区三区| 亚洲s在线观看| 热热色色综合| 亚洲色图 欧美| 精品人妻av在线播放| 国产精品自在自拍视频| 中文字幕人妻色偷偷久久皮 | 99e久久国产精品| 国产高清26uuu| www色色com| 国产精品 亚洲情色| 青青草视频在线观看一区二区| 天美精品一区二区三区四区在线观看| 99re99在线视频| 91AV入口| 91操操| 亚州精品丝袜-不卡成人免费| 国产一区二区三区,在线观看观看| 国产精品日日摸天天碰| 影视综合无码少妇| 一区二区三区精品黑丝白丝酒店对鸡| 成人天天爽| 天美传媒AV在线播放| 亚洲欧洲精品视频发布| 玖玖97综合| 男人的天堂在线| 国产97免费视频| 国产操逼逼网| 青青草色情网站视频| 99re99在线视频| 日韩性爱1级片视频| 美女诱惑爱爱| 国产三级片在线观看| 欧美性爱中文字幕无线码| 久操黄色视频| 97色操| 爽极品影院| 乱日视频| 亚洲欧美黄| 福利在线观看一区二区| 日夜久久久九九九久| 97这里只有精品| 白嫩国模丰满一二三区| 99999亚洲另类| 欧美日韩性爱视屏免费看了| 性色av一区二区| 国产区日韩区在线观看| 欧美夜夜狠| 97操97干| 伊人色综合超碰| 天干天干天干天天做| 国产乱色国产精品免费视| 亚洲AV资源| 东京热天堂网| 91网亚洲| 日韩性爱免费观看视频| 蜜桃久久久久久久| 国产9 9在线 | 亚洲| 久超碰在| 国产视频人人网| 亚洲熟妇乱女区二区三区| 超碰97COm中文| 欧美日韩性爱视屏免费看了| 无码78| 久久国产三区| 国产一区免费午夜视频| 亚洲日韩少妇一道本视频| 国产隔壁老王影院在线| 亚州色图片在线色| 91美女丝袜诱惑视频| 深爱伊人影院| 97天天搞在线| 亚洲国产精品成人综合| 精品欧美日韩在线观看| 尻女朋友一夜| 欧美成人四级在线播放| 91精品国产91久久久久久久久久久久| 欧美亚洲综合色| 日韩97| 国产女同性恋视频| 99久久综合网| 无码久久亚洲高清,| 青青草手机在线免费观看| 精品无码不卡视频| 97网色| 欧美老妇综合网| 久久色一区| 成人无码电影在线观看网| 国产精品一区二区后入| 91校园春色长篇| 绯色一区二区三区不卡少妇| 加勒比久久av| 国产自产91区13区| 99久久久无码国产精品性男| 成人国产视频在线观看| 女上位精品在线| 67914亚洲精品| 一级黄色性爱A级片| 中文字幕一二三av| 今日头条成人一区二区三区四虎精品| 日韩黄色成人性爱| 国产亚洲精品美女久久久| 精品久久艹| 九色 人妻 大香蕉| 全球成人中文在线| www.久久制服糖| 啪啪啪综合| 超碰 av 女人天堂| 国产蜜臀精品一区免费尤物| 大香网伊人久久综合| 中文字幕一区二区三区字幕| 97av在线观看| 精品对白久久不卡| 国色综合天| 91 国产丝袜在线播放-百度| 国产农村妇女精品一二区| 欧美极度丰满熟妇hd| 无遮挡一级毛片视频免费的| 最新无码国产| 欧美不卡五十路| 久久有码视频| 九九九九九精品| 日本97久久| 日韩懂色网| 激情露脸爱| 99在线免费视频| 色色香蕉| 国产一区二区精品久久99| 久久的免费性爱视频| 超碰97综合在线| 亚洲怡春院| 青青草久草AV| 免看60秒涩涩视频| 久久有码视频| 久久9999| 色与欲影视天天看综合网| 亚洲色悠悠久久88| 熟妇高潮精品一区二区三区下载| 韩国女主播青草在线| 久久久久久夜夜夜夜夜| 蜜桃久久久久久久| 超碰97资源大奶| 亚洲在钱| 亚洲综合射| 好爽免费视频,| 丁香婷婷激情五月天无毒不卡| 宅男91视频在线播放| 日本天天吊| 黄色网址久久精品欧美喷水| 乱伦1色页| 97视频在线播放| 日韩av影片在线观看| 亚洲αv一区二区三区| 影音先锋乱伦资源| 一个色导综合| 日本人妻中文字幕 | 丝袜综合| 风月影院男女十八禁| 99久久9| 精品乱码在线观看| 夜夜骑日日| 超碰在线日韩一区| 97爱爱爱| 国产不卡免费在线视频| 人妻熟女一区在| 亚洲……91| 日夜干射色啊| 久操免费电影| 中文字幕乱在线伦视频中文字幕乱码在线| 日韩欧美成人性爱在线| 91日韩在线| 久久久com| 日韩美女,国产传媒,视频一区| 97视频www| 欧美中字不卡| 亚洲加勒比| 亚洲欧洲自拍图片专区满春格| 无码国产Av| 成人国产精品三级A片| www鬼畜国产男人的天堂| 欧美色66| 男人的天堂VA| 国产精品久久久久中文字幕| 不卡码视频| 蜜臀av网址| 亚洲欧美日韩激情不卡| 草草影院最新网址| 91蜜臀在线久久久久| 夜夜福利| 国产品精品自在在线午夜免费| 天天色黄色影院天天操| 亚洲午夜免费狠狠干| 性爱欧美五月| 乱伦强奸区日韩| 亚洲九月丁香| 最新av在线| 国产视频第二页| 欧美性爱日韩性爱| 综合激情97 | 激情AV| 国产后入内射| 中文字幕一二三| 韩日无码在线观看| 欧美超碰96| 成人小电影网站tex| 日韩久久.一级黄色片| 95精品在线| 亚洲不卡一| 中文字幕一区二区日韩网| 日韩素人无码一区二区三区三州| 天天影视综合色| 日本东京热加勒比久久| 欧美一二三区四五区| 色欲久久99国产精品久久久久久| 尤物国产一区在线观看| 97视频www| 久久精品国产AV一区二区三区| 午夜天堂精品久久久久91| 四虎免费视频| 99久久精品国产高潮| 成人一区二区三区四区| 偷拍三区| 久草精品一区| 亚洲第一狼人丝袜美女另类| 青女在线| 激情视屏国产乱伦强奸| 欧洲性人爱视频| 亚洲成?V人片在线观看福利| 激情小说亚洲图片| 亚洲欧美日韩综合在线尤物| 97亚洲自在精品在线观看| 久精品无码av一区二免费国产在线观看 | 嗯~啊~快点 死我视频| 激情小说亚洲色图| 97一区二区蜜臀| 99人妻碰碰碰久久久久禁片| 怡红院成人av| 福利在线黄片| 亚洲情色 自拍| 五月色网| 中文字幕三四区| 人妻日日夜夜精品| 亚洲精品尤物yw在线影院| 精品无码人妻一区二区免费蜜桃| 天天操天天射天天日| 97自拍一区| 国产51色综合久久免费| 97综合激情| 免费精品99| 久久区| 青青青国产| 国产亚洲性生活视频播放| 青青草色情网站视频| 国产91啪| JuliaAnnXXX888| 日产狠狠干| 七月丁香婷婷| 91美女视频在线免费观看| 中文字幕一区电影在线观看| 99久在线精品99re8| 婷婷丁香在线| 豆花视频操逼网址| 欧美高清在线| 果冻传媒A片一二三区| 美国一区二区三区视频| 蜜臀99久久国产| 亚洲情色第一页| 国产精品国产自产高清AV| 蜜臀va69| 国产传媒美日韩av| av资源在线播放天堂| 网友自拍第一页| 欧美 综合 亚洲| 成人短视频在线观看| 国产呦精品系列在线观看| 日本男人插女人的逼黄色| 国产精品久久久三级无码| 97精品网| 麻豆 美女 丝袜 人妻 中文| 一牛一区二区三区久久| 99性爱视频| 黄色av网站在线播放| 亚洲欧洲日韩中文字幕一区| 欧美日韩亚洲高清不卡一区二区三区| 日本护士高潮| 日本欧美一区二区三区免费| 国产区日韩区在线观看| 东北女人性交| 97超碰中文字幕| 欧中日成人免费影视| 欧美综合区| 国产精品点击进入在线影院| 精品一级毛片在线观看| 亚洲性天堂| 欧美激情亚洲情色| 日本天天干天天搞一区| 97超碰无码网| 久久欧洲| 婷婷国产精品九区| 久草成人福利导航| 国产这里只有精品| 99热日本| 九九激情网| 亚洲一区二区精品福利| 国产欧美日韩一区二区三区| 国产男女边吃边摸视频网站| 91麻豆天美| 国产精品福利视频| 精品人妻一区二区三区鲁大师| 成人一级二级| 久久9免费视频| 伊人久久亚洲色欲综合网站| 97超碰中文| 国产肏屁眼视频| 婷婷色香| 在线观看A啊啊啊| 极品内射| 精品一区二区三区四区女 | 男人的天堂 在线一区| 久艹免费| 日韩熟女精一区二区三区不卡| 素人伊尹大香蕉免费下载视频| 欧美在线色| 欧洲精品一二三在线| 一区二区三区色综合| 99色婷婷中文字幕乱色| 国产第二页| 色综合1991| 亚洲在线A| 亚洲色阁| 国产最新小视频在线播放下载| 亚洲无码国产精品久久| 91人妻超碰| http://qxhbdz.com| 亚洲精品一二三四区| 91在线限制级| 操淫穴亚洲五月丁香 | 天天澡天天爽日日AV| 久久色网| 精品人体无圣光凹凸| 欧美性爱视频免费一区一A| 欧美成人一区二区三区在线播放| 成人精品在线观看| 色女网日韩| 老司机久久| #NAME?| 人妻三级在线中文字幕| 99re热有精品视频国产| 亚洲AV无码国产精品久久久久| 色婷婷导航| 久久理论字幕视频| 国外91| 日韩人妻无码不卡网站| 中文字幕一区二区三区字幕| 久久欧美性爱视频| 国产性刺激| 亚洲涩图欧美| J?P?NESEHD熟女熟妇伦| 亚洲图片欧洲图片aⅴ| 91久久婷婷| 精品国产99| 蜜桃午夜视频一区二区| 中文字幕第9页萱萱影音先锋| 乱伦av国产| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 久久成人午夜狠狠| 亚洲国产丝袜熟女av| 伊人网综合在线视频| 中文字幕在线24| 六月婷婷一区二区三区| 日韩欧美加勒比| α√在线| 97超碰天天| 精品免费囯产一区二区三区 | 91在线视频免费中出| 蜜桃臀一区二区三区久久| 国产亚洲色停停久久99精品91| 日韩午夜精品一区二区三区电影| 99综合自拍| 性色A∨91| 国人欧美精品一区二区| 亚洲在高跟鞋自慰久久在色线| 9久久久久| 国产又色又爽又舒服的三级视频| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 333kkkk·亚洲com久久| 中文字幕免费观看| 永久免费观看的毛片的网站| 天天插天天插| 蜜臀久久99精品久久久久久成人小说 | 岛国人妻少妇av在线观看| 九久9精品| 插欧洲美女欧美精品| 北京美女一区二区| 家庭乱伦国产精品| 欧美熟爽综合| 97视频免费播放| 日韩中文欧美| 中韩中文字幕在线观看| 狠狠激情综合狠狠操中文字幕| 试看福利| 天天色综亚洲91污| 综合色久欲| 天天做日日爱夜夜爽| 欧美激情黑人| 久久久免费一级黄片| 99re在线视频国产| 一区二区三区激情在线观看| 国产超碰97| 人妻av在线| 精品欧美乱码久| 超碰人人妻| 性91| 国产专区路线| 久久久久久日韩| 97超碰免费人人性爱| 国产黄色影片在线观看| 亚洲色图伊人网| 抽插无码高清一区| 精品视频一二三中文| 亚洲色图激情小说| 国产成人 综合亚洲 天堂| 欧美日韩精品国产91| 欧美精品成人在线播放| 欧美综合自拍亚洲综合图| 欧美综合区| 600国产精品视频| 国产suv精品一区二区四| 欧州一区二区三区四区| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | w w w.久久精品| 色婷婷婷五月天激情四射| A V视频日本| 日日躁狠狠躁天天躁精品| 五月婷婷六月色| 欧美岛国精品在线观看| 国产视频大全| 日本久久99| 久久无码一区二区二三区性色| 超碰这里只有精品| 丁香五月大香蕉| 奇米四色网| 夜夜免费视频| 欧美激情亚洲色图| 一起草精品人妻| 中文字幕97| 99精品丰满人妻无码| 久久久久久午夜男人的天堂| 天天干天天燥| 欧美日韩亚洲天堂| 欧洲精品欧洲精品| 久久9精品视频| 在线强奷到舒服的无码视频 | 国产av美女被艹的乱叫| 18禁看网站一区| 亚洲第一男人天堂| 青青操在线亚洲视频观看欧美在线 | 亚洲人妻色图| 日日噜噜夜夜久久亚洲一区二区| 久久国产精品一级二级三级| 国产一级作爱毛片| 乱抡国产91| 嗯嗯不要视频| 日本2020一区二区| 好爽免费视频,| 日本午夜福利视频| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 欧美日韩妖精91com| 国产传媒日本欧美专区| 色五月婷婷在线| 久久亚洲AV无码专区国产精品 | 97啪啪| 国产成人一级av88| 人妻无一区二区三区| 超碰久超碰久| 蜜桃久久一区| 大但人体久久久久| 91欧美性| 亚洲伊人久久精品影院| 爱啪精品一区| 亚洲免费日韩在线一区二区| 2020中文字幕| 91oumei| 91九色网| 口爆综合网| 99热这里是精品| 欧美亚洲中文字幕| 久久久免费一级黄片| 免费一级特黄特色大片在线观看看 | 18禁止看精品中文字幕| 91综合色噜噜| 97超碰人人模人人拍人人| 老熟女91视频| 日本一级真人黄色性爱视频| 欧美亚洲综合高清在线| 伦理第一页| 久 久无码人妻AV| 日本媚薬中文字幕在线| 欧美 亚洲 在线| 天天综合~91| 亚洲中文字幕在现观看| 欧美极品美女aaaaaa级黄片| 性爱视频免费网址| 久久久久免费看少妇A片特黄| 黄片免费视频2019| 久久精品国产亚洲AV嘿嘿| 东京热男人的天堂精品| 蜜乳AV色欲AVAV无码| 性爱1区| 人妻精品综合中文字幕在线 | 超碰97亚洲区| 极品出轨视频网站| 国产97亚洲| 亚洲 小说 欧美 激情 另类| 国产日韩在线播放av| 中国女人内射6XXXXX| 免费看日产一区二区三区| 一区二区日韩欧美久久| 91女神在线视频| 九九国产热| 91 亚欧| 日韩欧美日韩| 日韩色| 91色色色| 97在线欧洲| 乱操9999| 亚洲中文字幕精品一区| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 成人日韩中文字幕| 本道在线| 极品销魂美女一区二区| 亚洲成?V人片在线观看福利| 伊人综合色网| 欧美激情亚洲情色| 91久久久亚洲| 5月婷婷6月六月丁香| 北条麻妃99精品青青久久| 人人操人人射人人干| 91成人无码| 99re公开精品免费视频| 亚洲欧洲小说图片视频| 国产91专区| 日韩免费在线观看不卡| 乱老女人一区二区视频| 国产25页| 极品销魂美女一区二区| 国产高清成人传媒影视| 久久久熟妇熟女国产| 天天躁日日躁狠狠狠躁| 国产一区在线观看无码AV| 吻戏激情性巴克| 超碰97首页| 爱妃国产亚洲视频中文字幕| 99热官网| 国产自偷| 免费在线黄片视频| 久久中文色图| 91美女在线观看| 91干熟女| 人澡逼| 一级黄色视频网| 久热久一区二区三区| 少妇色欲综合网2| 最新中文字幕在线亚洲| 97国产天堂岛| 人人看人人插| 99国产在线绯色一区| 中文久久久| 91精品综合久久久久久五月丁香| 青久久| 久久一级无码精品毛片6| 中文字幕十五区| 牛牛AV人人夜夜澡人人爽| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 97频视在线| 久操网无码在线| 午夜欧美精品久久久| 久久国产对白激情浪潮| 99久久久久| 国产一级137片内射麻豆| 五月情色天| 职场同事知名国产国产精品久久欧美日韩| 精品人妻一区二区三区-国产| 国产人妻天天干精品| 先锋影音av先锋一区| 国产精品一区二区密臀| wuyechaopeng| 亚洲色图欧美另类在线| 欧美熟妇视频| 99性视频| 狠狠激情综合狠狠操中文字幕| 国产AAAAAABBBBB| 超碰97网站| 日韩本不卡视频在线观看 | 91麻豆va国产精品| 深夜国产一区二区三区在线看| 亚洲欧洲成人在线电影| 天堂成人网| 国产一区二区精品久久久不卡蜜臀| 密臀视频一区二区三区| 午夜精品久久久99| 国产青一二三| 久久婷婷国产一区二区色| 色香蕉影院| 国产尹人在线视频免费| 国产精品免费美女视频| 一,爱啪啪,在线免费视频| 26uuu欧美日韩| 黄色操人| 五十路六十路素人熟女| 国产91会所女技师在线观看| 人人搞人人插人人操| 人妻三级在线中文字幕| 中文字幕一区二区视频在线观看 | 啊啊啊啊操死我了| 91黑丝美女| 操b网站亚洲无码| 欧美久久久15P| 熟女欧美日韩综合婷婷| 日韩人妻无码精品系列| 亚洲视频,小说| 97碰碰日本乱偷人妻中文的| 九九九九免费高| 九七毛片九九毛片| 啊啊啊轻点在线观看| 9久9久9久9久视频网站| 日本黄色精品| www国产精品| 亚洲欧美不卡线| 性色AV网站| 操操吧亚洲乱伦视频| 国产一区二区a毛片| 丁香六月东京热| 丁香六月啪| 999在线电影香蕉| 女一区二区| 伊人991| 视频在线中文字幕| 日韩天天综合| 青娱乐国产剧情av一区| 免费av在线播放二区| 国产精品呦一区二区三区| 在线啊v一区| 天天狠| 欧美日韩国产电影| 色97综合中文字幕| 蜜臀久久99精品久久久久久-DVD| 伊人网免费视频| 91社操逼| 精品一区二区三区蜜桃臀赵总 | 性色中出| 一二三卡欧美日韩人妻免费精品| 超碰97 线线 在现| 欧美Aⅴ| 国产女人成人精品视频| 五月久久HDAV| 加勒比性爱成人在线| 东京热毛片177b2viP| 高潮毛片无遮挡高清免费| 日本精品成人无码| 日韩中文字幕熟妇人妻 | 国产婷婷一区| 熟妇人妻一二三区免费| 性色AV蜜色av色欲av| 粉嫩不卡一区二区性爱| 操人妻少妇中文 | 91+欧美| 国产嫩草精品A88AV| 涩综合导航| 狠狠综合网| 品亲网欧美品亲网| 天天综合亚洲综合| 日韩女模中文造逼| 西西美女视频网| 亚洲97超碰| 五月丁香社区婷婷日韩欧美精品影院| 熟妇人妻一区二区三区| 超碰色美女| 国产av强奸美女| 国产最新AV| 91大香蕉伊人| 国产操操日韩三级黄| 高潮内射在线| 亚洲人妻日日日| 夜嗨影院| 人妻无码久久一区二区三区免费| 夜夜爽夜夜| 国内毛片免费h片在线| 久久超碰98| 91丨国产丨白浆秘 洗澡动漫| 婷婷操逼| 五月天精品| 成人免费福利网站国产| 婷婷丁香一区二区三区| 欧美一区二区三区不卡高清视频| 青青青艹在线视频| 欧美18老人禁| 天天干2019| 美女诱惑久久| www.色婷婷.com| 日本2020一区二区| 久久精品国产96精品亚洲拳交| 69人妻精品丰满熟女区| 天天干天天操天天操夜夜操天天操| 狠狠爱综合网| 欧美亚洲中文字幕| aaa一级黄片| asc国产精品| 91操人| 日韩人妻精品| 日韩乱伦视频| 亚洲欧美天| 精品人妻美妇91job| 欧美极品少妇| 亚洲欧美日韩精品久| 久久综合av| 欧美人妻久久精品二区三区 | 五月丁香亭亭| 性色综合网| 91neishe| 日韩性爱小视频| 在线综合 亚洲 欧美中文字幕| 2024黄色视频| 青青草大香蕉在线视频| 欧 美 自 拍 偷 拍| 免费网色网站| 久久精品中文字幕观看| 国产欧美成人精品| 国产中文字幕曰本毛片| 色香综合天天影视综合 | 色婷婷成人| 国产熟妇 码视频户外直播 | 五月婷婷基地| 69天堂| 麻豆婷婷成人一二三| 不卡av在线中文字幕| 欧美亚洲宗合色性图| 日本性爱网址| 清纯唯美激情| 欧美亚洲性爱一区二区| 亚洲成aⅴ人片不卡无码| 97伪v| 中文字幕一区二区三区视频播放| 精品传媒在线一区| 日韩成人午夜精品久久高潮| 伊人网综合在线视频| 情色图区| 超碰在线974| 亚洲黄色a级片| 久久精品超碰| 欧美视频第二页| 国产视频不卡在线观看| 人妻一区二区三区熟女| 国产熟妇一区二区| 国产精品国产拍高清AV| 熟妇综合一区二区三区| 亚洲综合贴图91| 色婷婷电影网| 国内精品久久人妻性色av| 在线小说视频一区| 亚洲欧洲美腿丝袜| 人人摸人人叼| 日本人妻丰满熟妇久久久久久| 嗯嗯啊啊啊啊轻点视频| 天天欧美色| 天堂中文日本在线观看| 九月伊人中文字幕| 97超碰精品成| 欧美亚男人的天堂| 新版天堂中文资源8在线| 国产捆绑一区| 91超碰丝袜制服| 亚洲97P| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 色穴精品| 亚洲第一在线视频| 中文字幕,人妻,日韩| 精品一区二区三区蜜桃| 亚洲色图美腿丝袜| 人妻天天夜夜爽一区二区| 亚洲成人久久一区二区| 国产精品久久久吖| 9精品久久久久| 欧美亚洲国产日本在线,久久精品国产| 长长久久88视频| 在线强奷到舒服的无码视频| 国产精品久久久吖| 干B网| 国产不卡的视频| 嗯嗯啊啊好疼| 亚洲日本男人天堂网| 99久久综合| 婷婷中文网| 国产99精品一区二区三区免费| 国产v亚洲v日韩v欧美v片另类| 久久久无码精品人妻二区| 熟妇高潮精品一区二区三区下载| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 中文字幕伊人| 韩国三级三级BD在线| 亚洲无套久久嗯嗯| 超碰在线91| 精品国产久热在线观看| 日韩Va亚洲va欧美Ⅴa久久| 亚洲欧洲av影音| 亚洲精品久久久久久久蜜桃臀| 久久一二三四五六七八九区| 欧美在线视频观看一二三四区高清| 婷婷五月天久久精品视频一区二区三区| 国产精品色| 日本天天操| 色婷婷亚洲婷婷| 色5月婷婷| 色爱国产| 久久久夜夜嗨免费视频| 人人做人人妻人人夜视频| 成年人黄色小视频网站| 一级@啪啪视频| 国产最火爆久久国产网站网站| 国产福利精品98视频| 91精品人| 国产偷人伦激情在线观看| 天天日天天操天天射河南省| 亚洲在线欧美| 啪啪综合网| 亚洲国产另类在线中文| 中文字幕国产在线天堂| 蜜臀无码视频在线观看| 国产在线综合网| 国产亚洲精品一区二区三区| 黄色成人网久久久久久| 国产丝袜欧美在线视频| 囯戸精品高潮呻吟旡码| 操逼天美3区| 免费簧片在线观看| 一块操欧美性爱| 99久久婷婷国产综合精品草原| 丁香五月婷婷色| 97九色人妻| 婷婷激情一区二区三区俺也去| 男人天堂久久日韩| 久久久久大香青草精品综合| 日韩精品系列| 欧美激情在线观看视频| 特色a在线上| 亚洲精品国产精品成人| 人人看人人插| 91强热人妻| 色色操| 国产天天骚| 中文字幕诱惑制服人妻丝袜美丝袜美| 后入福利| 91精品91久久久久77777俄罗斯老妇姓x| 超碰97欧美| 午夜福利1区2区3区| 精品性爱一二三区| 婷婷五月天av| 久久综合中文国产| 天天综合网~91综合网| 久9爱精品| 热思思免费视频| 欧美日韩一区二区三区四区蜜桃| 国产精品三级视频网站| 日本不卡高清免v欧美日韩在线观看| 色婷婷蜜臀av| 97超碰伊人| 国产激情视频一区区三区| 18禁精品网站在线看| 久久五月视频| 第45页一区二区| 久久精品91| 人人爱人人乐人人操| 激情网色| 污啪啪啪视频| 蜜臀色乳| 91高潮| 国产麻豆福利av在线播放| www.色婷婷| 丝袜亚洲91| 欧美天天| 热99这里只有精品| 97大色网| 欧美人妖内射| 久久久久亚洲AV无码专区少妇| 操操啪| 日韩人妻精品中文字幕| 亚洲综合20p| 国产精品一级片在线看| 日本裸体久久色噜噜| 夜夜国自区| 亚洲欧美在线观看无码| 激情综合97| 2020中文字幕在线| 国产又黄又粗的视频| a久久| 插B在线观看| 久思思热视频在线观看| 国产精品交换一区二区| 成年人免费观看网站| 91被操| 97WW精品| 老熟女综合网| 在线观看亚洲专区| 一级黄碟在线观看| 亚洲久久久久| 99激情视频| 欧美 日韩第一性色| 蜜乳Av成人片网站| 天天日日本| 97爱综合| 婷婷久久综合| 少妇高潮九九九九九九九| 国产探花精品在线| 日日黄色三级网站| 亚洲AV成人精品网站在AV| 久久一二三四五六七八九区区区 | 久久亚码| 欧美人人曰人人操人人射射| 国内精品999| 久久二| 婷婷五月天网| 亚洲国产午夜真人一级片中文字幕精品黄网站 | 家庭乱伦性爱av| 日本不卡二三区| 黑人免费福利视频| 欧美AB在线观看| 综合色好色| 日本91白丝| 九九九九九九视频免费| 狠狠干综合| 大奶的诱惑| 91色艳| 日韩一二三区| 性色一线| 精品人成视频在线观看| 亚洲欧美爆| 日韩福利综合一区| 97超碰色屌| 国产高清精品一区二区三区毛片| 天天天天天天天天综合| 少妇无码av专区线| 99在线啪| 国产av美女被艹的乱叫| 一本色道久久综合亚洲二区三区| 亚欧性爱在线无码| 清纯唯美综合| 97超碰69| 国产三级在线现体验区| silk lablo在线观看一区二区| 国产成人一级av88| 免费国产| 激情五月天综合网| 男人天堂电影院| 欧洲乱码一区二区| 中国国产精品一区视频| 日韩八十路老熟女| 99啪啪视频| 精品九九九九| 欧美日韩亚洲高清不卡一区二区三区| 国产精品一区二区校花| 日韩人妻精品| 五月天婷婷久久| 秋霞午夜成人福利片片| 亚洲第一色页夜| 伊人久操| 午夜精品久久99蜜桃的功能章节| 日本天堂网| 国产AV久久野战精品| 深喉吞精| 欧美中文字幕一区 | 操逼www.| 欧美性高潮在线| 欧美中文字幕男人天堂久久精品 | 五月情色天| 亚洲精品欧洲精品| 国产女性无套 免费观看| 中文字幕一二三| 夜夜骑天天燥| 99综合网| 自拍偷拍亚洲熟女妇人精品| 亚洲AV不卡在线观看| 97超碰色五月| 狼狼色丁香久久婷婷综合五月| 蜜桃AV天堂| 欧美性,色九九| 黄片不用下载在线观看| 日韩免费a级毛片无码a∨| 欧美成人国产精品| 夜夜嗨一区二区| 思思热国产在线视频| 丰满人妻-区二区三区| 伦在线97| 欧美第一页性| 爱av免费| 久久亚洲中文字幕视频| 久久精品成人| 高跟伊人julia ann| 丁香六月激情综合| 国产Aα| 精品国产一区探花在线观看| 国产av色网| 熟女天天干| 天堂岛av| 在线无码操| 手机在线免费看的av| 麻豆AV一区二区天美传媒| 国内97干免费看| 青娱乐亚洲热| 91精品久久久久久77777| 熟女乱伦A| AAAA级日本片免费视频| 蜜屁av| asc国产精品| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 蜜臀99久久精品久久久懂爱| 白嫩妹子国产骚| 91nbbbbbb| 欧美日日夜夜| 欧美色棕合| 综合色99| 国产亚州精品美女久久久免费| 操www| 白丝被操91| 屁股久久久久久| 伊色久人大在线| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 色天使亚洲综合在线观看| 国产无码成人无码| 易易A毛视频| 欧美在线亚洲| 国内精品久9| 69丨亚洲丨精品丨入口免费播放| 91操熟女| 极品极品色影院| 中国乱伦一区二区| 久操凹凸视频| 国产无码高清操逼视频| 1769成人国产精品视频| 亚洲风情在线观看| 黄色成年| 91观看 国产白丝| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 眼镜人妻101.com| 国产亚洲福利第一页丝袜| 久久夜夜| 操国产高清| 国产 日韩 欧美一区| 国产午夜精品在线观看| 国产强奸乱伦第1页| 91在线视频国产网站| 思思热一热婷婷热一热| 舔人妻中文免费视频| 中出20p| 丝袜美腿91| 青青草在线视频播放器| 亚洲人精品久久久| 大香蕉视频啪啪啪啪| 欧美天天干| 91熟女视频| 亚洲成人黄色在线观看| 岛国福利在线精品播放| 国产隔壁老王影院在线| 国产高清在线观看欧美| 亚洲 欧美日韩 另类| 欧美很很操视频| 人人操AV| 国产av青草| 91日产欧美| 免费99精品国产自在在线| 91操熟妇| 97爱综合| 岛国福利在线精品播放| 国语精品内射在线观看| 亚洲操人| 老鸭窝亚洲毛片| 美国久久一二三四| 91男人天堂网| 国语精品av| 黄色免费一级在线毛片| 18禁中文字幕| 激情丁香婷婷| 熟妇最新先锋一二三区| 91久久国产综合精品| 偷拍欧美亚洲| 91老熟女| 免费精品中文字幕| 欧洲色| 亚洲吊色| 欧美三级偷拍| 色视频蜜乳| www.国产高潮精品| 日夜啪电影| 天天超级碰碰碰| 欧美色乱| caoni国产亚洲av| 伊人网av|