——云商城)
一、管理員進(jìn)行后臺管理二、數(shù)據(jù)庫分庫商品訂單秒殺用戶權(quán)限支付log三、文件上傳和下載Ceph集群Swift API配置用戶信息獲取容器使用容器進(jìn)行uploaddownload四、商品發(fā)布id不為空修改id為空增加product:spuskus五、OpenRestynginxlua動靜分離location多級緩存lua腳本redis緩存先查nginx緩存再查redis最后查后端服務(wù)后端服務(wù)開啟緩存CacheConfigCacheableCacheEvictCachePut緩存一致性canalEntryHandler調(diào)用后端緩存更新接口六、ESES的構(gòu)建通過實現(xiàn)ElasticsearchRepository接口重寫方法實現(xiàn)ES更新的Feign接口canal調(diào)用feign接口實現(xiàn)數(shù)據(jù)庫更新同步ES索引ES的搜索構(gòu)建搜索條件普通搜索排序withSort分頁withPageable構(gòu)建分組條件品牌/分類List屬性MapString,SetString亮亮withHighlightBuilder七、搜索頁面詳情頁面數(shù)據(jù)綁定thymeleafvue商品詳情靜態(tài)頁面通過templateengine使用模版數(shù)據(jù)輸出得到對應(yīng)的靜態(tài)頁面canal實時生成靜態(tài)頁面八、購物車Mongodb查詢多數(shù)據(jù)量大持久1.數(shù)據(jù)量大2.結(jié)構(gòu)化的數(shù)據(jù)比如JSON數(shù)據(jù)3.支持復(fù)雜查詢mapper繼承mongodbrepositoryMongoTemplate操作key是usernameid九、下單操作1.訂單根據(jù)用戶名查到對應(yīng)列表訂單下單處理先看庫存夠用扣減增加訂單增加訂單明細(xì)刪除購物車數(shù)據(jù)訂單使用Seata的AT模式構(gòu)建分布式事務(wù)組2.支付支付系統(tǒng)調(diào)用微信API加密傳輸MD5驗簽AES微信驗簽微信進(jìn)行預(yù)支付返回二維碼地址前臺通過Qrious展示二維碼微信進(jìn)行密碼輸入驗證之后返回支付結(jié)果給回調(diào)地址支付系統(tǒng)通過MQ異步生成支付日志異步更改訂單狀態(tài)主動查詢支付結(jié)果將不可逆轉(zhuǎn)的日志結(jié)果存到pay_log沒有數(shù)據(jù)再去查微信支付服務(wù)3.退款更改訂單狀態(tài)退款申請中進(jìn)行退款申請使用MQ讓支付系統(tǒng)發(fā)起退款申請支付系統(tǒng)使用MQ將退款申請結(jié)果返回給訂單系統(tǒng)成功更改訂單狀態(tài)不成功回滾庫存十、每日秒殺1.頁面秒殺商品es索引庫秒殺商品詳情頁靜態(tài)頁面生成定時任務(wù)elastic-job lite當(dāng)活動增加或修改創(chuàng)建對應(yīng)的定時任務(wù)刪除靜態(tài)頁面2.熱門數(shù)據(jù)獲取Lua腳本收集logjson日志發(fā)送給Kafka在訪問html詳情頁的location里面進(jìn)行l(wèi)og_by_lua的配置,Apache Druid:數(shù)據(jù)攝入kafka3.熱門商品分離每隔10分鐘讀取新增熱門商品將islock改為1進(jìn)行隔離加入緩存4.秒殺隔離實現(xiàn)微服務(wù)網(wǎng)關(guān)過濾器攔截秒殺請求進(jìn)行排隊判斷排隊標(biāo)識避免重復(fù)排隊加入RocketMQ排隊下單使用redission分布式鎖先過布隆過濾器然后下單扣減庫存庫存為0加入布隆過濾器十一、網(wǎng)關(guān)鑒權(quán)1.JWT令牌登錄的時候創(chuàng)建令牌加上ip返回給用戶用戶訪問校驗令牌ip2.網(wǎng)關(guān)過濾器redis布隆過濾器里面存儲對應(yīng)的uri先校驗uri是否有效redis存儲對應(yīng)的權(quán)限先檢查是否攔截攔截就進(jìn)行權(quán)限校驗ApplicationRunner加入所有權(quán)限和所有角色權(quán)限映射pathMatcher通配符匹配權(quán)限校驗完進(jìn)行秒殺熱商品排隊十二、限流sentinelgateway限流網(wǎng)關(guān)API分組限流規(guī)則nginx限流速率連接數(shù)黑白名單LVS百萬并發(fā)NAT模式TUN模式DR模式