Javashop 7.0 釋出,企業級電商平臺
Javashop是基於Java開發的企業級電商平臺,現推出7.0版本,更新內容如下:
一、採用Spring boot。
二、restful 化(無狀態、跨域,三端支撐)。
三、前後端分離。
四、認證採用token式。
五、三端分離部署(買家、賣家、平臺)。
六、訂單事務優化,採用Redis執行lua指令碼扣減庫存,進一步提升效能。
七、完整的單元測試(覆蓋所有controller及複雜的業務類)。
八、完整的Swagger API文件。
九、資料模型規範:DO/DTO/VO。
官網:http://www.javamall.com.cn/
架構概覽
Javashop使用Spring Boot做為基礎架構,使用spring mvc實現Rest API,並通過Swagger提供了完整的API可實現化文件,使用Spring security做為安全機制,採用token式驗權(使用jwt),使用spring cloud的config server做為統一的配置中心,使用druid做為資料庫連線池。
訂單流程架構
電商業務中一大難點就是訂單的庫存扣減,為了防止超賣如果採用行級鎖或分散式鎖都會導致效能低下,Javashop 採用REDIS+LUA指令碼、分段提交策略,實現了一套補償式分散式事務解決方案,在保證高可用的同時,確保資料一致性。
靜態 頁 生 成及展示
電商系統中有一些高頻訪問、但變化性很小的頁面,如首頁、商品詳情頁。Javashop將這些頁面生成在Redis叢集中,再通過lua指令碼直接輸出給瀏覽器,實現了這些頁面的高效能、高可用。
當這些頁面變化時,如首頁樓層被裝修、或商品資料被改變時,會發送訊息到amqp,消費者會重新生成相關頁面,以此保證資料的一致性。
部署 概覽
Javashop基礎設施的部署有:Mysql叢集、Redis 叢集、RabbitMq叢集、Elasticsearch叢集和XXL-Job(任務排程叢集)。
支援基於Docker的自動化運維。
介面 展示
商家中心展示
平臺端展示
產品技術棧
後端 |
|
核心框架 |
Spring Boot |
MVC框架 |
Spring MVC |
持久框架 |
Spring JDBC Template |
程式構建 |
Maven |
資料庫 |
Mysql |
訊息中介軟體AMQP |
RabbitMQ |
快取 |
Redis |
搜尋引擎 |
Elasticsearch |
安全框架 |
Spring Security |
資料庫連線池 |
Druid |
定時任務 |
xxl-job |
負載均衡 |
Nginx |
靜態資源分發 |
Oss,FastDFS |
日誌處理 |
Log4j |
Session處理 |
Spring Session Redis |
程式碼檢查 |
alibaba/p3c |
介面規範 |
RESTful |
前端 |
|
構建工具 |
webpack |
JS版本 |
ES6 |
基礎JS框架 |
Vue.js |
輔助JS庫 |
jQuery |
路由管理 |
Vue Router |
狀態管理 |
Vuex |
基礎UI庫 |
Element UI |
UI介面基於 |
vue-element-admin |
網路請求 |
Axios |
CSS預處理 |
Scss |
程式碼檢查 |
ESLint |
服務端渲染 |
Nuxt.js |
報表系統 |
ECharts |
富文字編輯器 |
百度 UEditor |
圖片上傳外掛 |
百度 Web Uploader |
官網:http://www.javamall.com.cn/