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.支付服务

完成支付平台对接

  • 对接微信支付
3.2.9.Eureka注册中心
3.2.10.Zuul网关服务
3.2.11.Spring Cloud Config配置中心

四、尾巴

GiesenC/B2CMall: leyou