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