B2CMall笔记归档
一、架构
二、技术选项
2.1.前端技术
- 基础的HTML、CSS、JavaScript(基于ES6标准)
- JQuery
- Vue.js 2.0以及基于Vue的UI框架:Vuetify
- 前端构建工具:WebPack
- 前端安装包工具:NPM
- Vue脚手架:Vue-cli
- Vue路由:vue-router
- ajax框架:axios
- 基于Vue的富文本框架:quill-editor
2.2.后端技术
- 基础的SpringMVC、Spring 5.0和MyBatis3
- Spring Boot 2.0.1版本
- Spring Cloud 最新版 Finchley.RC1
- Redis-4.0
- RabbitMQ-3.4
- Elasticsearch-5.6.8
- nginx-1.10.2
- FastDFS - 5.0.8
- MyCat
- Thymeleaf
- JWT
三、项目总结
3.1.项目介绍
- 乐优商城是一个全品类的电商购物网站(B2C)
- 用户可以在线购买商品、加入购物车、下单、秒杀商品
- 可以评论已购买商品
- 管理员可以在后台管理商品的上下架、促销活动
- 管理员可以监控商品销售状况
- 客服可以在后台处理退款操作
3.2.前台和后台系统共享相同的微服务集群
3.2.1.商品微服务
商品及商品分类、品牌、库存等的服务
- 商品分类管理
- 商品品牌管理
- 商品规格参数管理:因为规格的可变性,采用竖表设计,分为规格和规格组表
- 商品管理:SPU和SKU的设计,以及SKU的动态属性。
- 库存管理:库存加减采用乐观锁方案,另外定时对库存判断,库存不足可通知管理员。
3.2.2.搜索微服务
实现搜索功能
- 采用Elasticsearch完成商品的全文检索功能
- 搜索过滤
- 集群
3.2.3.订单微服务
实现订单相关
- 订单表设计,状态记录
- 创建订单需要同时减库存、跨服务业务、需要注意事务处理,流程。
3.2.4.购物车微服务
实现购物车相关功能
- 离线购物车:主要使用了localStorage保存到客户端,几乎不与服务器交互
- 在线购物车:使用了redis实现。
3.2.5.用户中心
用户的登录注册等功能
- 用户注册
- 注册数据校验
- 查询用户信息
3.2.6.认证中心
用户权限及服务权限认证
- 权限管理CRUD
- 登录token生成
- 登录token认证
- 务间token生成
- 服务间token认证
- 解决cookie被禁用(跨域问题) 首先提示用户cookie不可以被禁用;把cookie放入头中返回,JS获取头信息,存入web存储(localstorage,SessionStorage),每次请求都需要手动携带token,写入头中。
- 解决cookie被盗用(授权)我们的cookie无法被篡改 ;使用HTTPS协议,防止数据泄露 ;加入ip地址识别身份到payload中。
- 微服务地址被暴露 首先地址不会被暴露,因为所有的微服务都通过Zuul进行访问,对外暴露的只有Zuul;万一暴露了,我们可以加入服务间鉴权。
3.2.7.短信服务
完成短信发送
- 对接阿里云 平台,通过MQ(MQ消息队列)实现异步短信发送
3.2.8.支付服务
完成支付平台对接
- 对接微信支付