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/