1:项目总结前端
项目介绍: 一、乐优商城是一个全品类的电商购物网站(B2C)。 二、用户能够在线购买商品、加入购物车、下单、秒杀商品 三、能够品论已购买商品 四、管理员能够在后台管理商品的上下架、促销活动 五、管理员能够监控商品销售情况 六、客服能够在后台处理退款操做 七、但愿将来3到5年能够支持千万用户的使用
2:项目要点:vue
要点: 一、 整个系统采用了先后端分离的开发模式 二、前端基于vue相关技术栈进行开发,并经过ajax与后端服务进行交互。 三、前端进行nginx部署,并利用nginx实现对后台服务的反向代理和负荷均衡(proxy_pass http://192.168.161.1:9001;) 四、部分热点静态资源,碰到流量高峰的时候会考虑使用CDN服务(内容分发网络) 五、使用lvs(Linux虚拟服务器)来实现nginx的主从,保证nginx的高可用 六、后端采用了springCloud技术栈来搭建微服务集群,并对外提供Rest风格接口。 七、Zuul做为整个微服务入口,实现请求路由、负载均衡、限流、权限控制等功能。 八、后端微服务集群会经过Spring-Cloud-Config结合Spring-Cloud-Bus来实现统一配置管理和配置动态刷新。 九、经过Spring-Cloud-Sleuth 和ZipKin实现服务的链路追踪
3.系统架构解读webpack
整个乐优商城能够分为两部分:后台管理系统、前台门户系统
3.1 前端ios
前端页面分红两部分 一、一部分面向公司内部人员,实现对商城平常业务管理。后台管理页面。 二、一部分面向买家,实现商品的展现。搜索购买等功能。前台 3.2 门户页面。 3.1.1后台管理页面: 技术实现: 一、后台管理页面基于VUE实现单页应用(SPA)。 二、使用webpack做为项目构建和打包工具 三、使用npm做为依赖管理 四、使用Vuetity(基于Vue的UI框架,相似element-ui)构建页面 五、经过axios发起ajax请求,与后台交互 功能模块: 一、商品管理,包括商品分类、品牌、商品规格等信息的管理 二、销售管理,包括订单统计、订单退款处理、促销活动生成等 三、用户管理,包括用户控制、冻结、解锁等 四、权限管理,整个网站的权限控制,采用JWT鉴权方案,对用户及API进行权限控制 五、统计,各类数据的统计分析展现 3.1.2前台门户页面: 技术实现: 一、基于Vue技术栈 二、使用Nuxt的服务端渲染方式,再也不采用单页应用,有利于(SEO搜索引擎优化)。 三、其余与后台管理页面技术相似 前台门户面向的是客户,包含与客户交互的一切功能。例如: 一、搜索商品 二、加入购物车 三、下单 四、评价商品等等
四、前台和后台系统,都共享相同的微服务集群,其中包括:nginx
4.1 商品微服务:商品及商品分类、品牌、库存等的服务 一、商品分类管理 二、商品品牌管理 三、商品规格参数管理:由于规格的可变性,采用竖表设计,分为规格和规格组表 四、商品管理:SPU和SKU的设计,以及SKU的动态属性。 五、库存管理:库存加减采用乐观锁方案,另外定时对库存判断,库存不足可通知管理员。 4.2 搜索微服务:实现搜索功能 一、采用Elasticsearch完成商品的全文检索功能 二、搜索过滤 三、集群 4.3 订单微服务:实现订单相关 一、订单表设计,状态记录 二、建立订单须要同时减库存、跨服务业务、须要注意事务处理,流程。 1.1:查询订单提交的商品信息 1.2:计算订单总价(计算商品总价、计算运费、计算促销金额) 1.3:写入订单、订单详情、订单状态 1.四、减库存、远程同步调用商品微服务,实现减库存 若是采用异步减库存、可能须要引入分布式事务。 4.4 购物车微服务:实现购物车相关功能 一、离线购物车:主要使用了localStorage保存到客户端,几乎不与服务器交互 二、在线购物车:使用了redis实现。(数据库 值 和 key) 4.5 用户中心:用户的登陆注册等功能 一、用户注册 二、注册数据校验 三、查询用户信息 4.6 认证中心:用户权限及服务权限认证 一、权限管理CRUD 二、登陆token生成 三、登陆token认证 四、服务间token生成 五、服务间token认证 六、解决cookie被禁用(跨域问题) 首先提示用户cookie不能够被禁用;把cookie放入头中返回,JS获取头信息,存入web存储(localstorage,SessionStorage),每次请求都须要手动携带token,写入头中 七、解决cookie被盗用(受权)咱们的cookie没法被篡改 ;使用HTTPS协议,防止数据泄露 ;加入ip地址识别身份到payload中 八、微服务地址被暴露 首先地址不会被暴露,由于全部的微服务都经过Zuul进行访问,对外暴露的只有Zuul;万一暴露了,咱们能够加入服务间鉴权 4.7 短信服务:完成短信发送 一、对接阿里云 平台,经过MQ(MQ消息队列)实现异步短信发送 4.8 支付服务:完成支付平台对接 一、对接微信支付 4.9 Eureka注册中心 4.10 Zuul网关服务 4.11 Spring Cloud Config配置中心