天天看點

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

妖貓商城是一個采用微服務架構springcloud 實作的電商項目。

本項目實作了權限管理、商品管理(商品、屬性、品牌、類目)等,并實作了商品詳情頁到支付的整個流程。

主要采用的技術如下:

redis:利用redis實作了微服務下的登入,商品詳情頁的緩存。

rockemq:利用rocketmq 實作了分布式事務

mongodb:利用mongodb存儲購物車

nacos:注冊和配置中心

sentinel: 降級、熔斷、限流

zookeeper:分布式鎖

分布式事務:異步消息解耦

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

交易建立成功後,訂單、券、庫存必須保證一緻性,促銷服務、商品服務、訂單服務是分庫部署的,傳統單體的事務就不能滿足要求了。這裡采用基于消息異步復原的方式,首先開始建立訂單,訂單的狀态為不可見,然後進行鎖券、減庫存的操作,操作失敗,發送復原消息,下遊的促銷和商品服務收到復原消息,進行復原操作。

支付的流程:

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

跳到支付寶支付成功後,首先更新支付記錄的狀态為成功,然後發送消息通知訂單系統。

訂單服務收到支付服務的通知,然後更新訂單狀态,發送訂單成功消息,通知下遊的服務做訂單成功的處理。

消息的消費:

消費過程不能保證不出異常,這裡做的方式是首先将消息存儲到本地消息表,這時候消息隊列的使命就完成了,然後背景異步的去處理消息。

定時任務去處理消費失敗的消息,本地消息表裡添加了一個處理次數的字段,當處理次數達到一定數量的時候,則該消息标記為死亡,待技術人員修複問題後,重新去處理該失敗的消息。

其次消息的消費還要保證幂等性。

妖貓商城背景:主要實作了系統管理、促銷管理、商品管理

系統管理包含使用者、角色、資源。

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城
java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城
java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

資源分兩種菜單和動作,菜單資源控制着前端的菜單是否添加路由并顯示,動作控制着url和頁面上的按鈕是否顯示。

權限服務首先需要開啟@EnableHttpAuth

@EnableHttpAuth

public class ProductConfig {

其次需要在配置檔案上添加,這樣該服務就開啟了權限保護,接下來在背景接口上隻需添加@LoginAuth("授權辨別")

permission:

enabled: true

前端的控制按鈕的顯示需要指令 v-action:授權辨別 。

商品管理:分為類目、品牌、屬性、商品添加、商品管理

背景類目:商品類目一般分為前端類目和背景類目,目前隻實作了背景類目

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

品牌:品牌和商品類目是多對多的關系。

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

屬性:屬性分為銷售屬性和普通屬性,銷售屬性影響商品的價格。

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

商品添加:

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城
java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城
java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

點選立即購買,未登入會引導去登入,登入成功後,就可以進入訂單送出界面

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

點選結算,就會跳到支付頁面,按流程向下,會看到這個頁面

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

點選确認支付後,并輸入交易密碼,支付成功,點選完成,就會傳回到我們的頁面

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

支付結果頁面

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

本地環境搭建:

點選startup即可啟動

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

2、rocketmq啟動

windows 需要配置環境變量

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

分别啟動nameserver和broker

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

3、fastdfs:可以參考下面這篇文章

4、mongo:可以參考下面這篇文章

5、内網映射:支付傳回和通知的位址,需要内網映射。

6、redis和zookeeper也需要搭建好。

pay-service下支付寶的沙箱環境配置需要修改成你的配置:

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

然後修改這些服務的相關配置檔案

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

建立各個服務的資料表

java微服務電商系統_個人 開源項目基于微服務的分布式電商系統-妖貓商城

啟動所有的服務。

背景管理:

安裝依賴。

$ yarn install

如果網絡狀況不佳,可以使用 cnpm 進行加速,并使用 cnpm 代替 yarn

$ yarn run serve

啟動完成後會自動打開浏覽器通路

前端wap源碼:

同樣需要執行yarn install和yarn run serve運作。