乐忧商城这个项目采用了目前最流行的微服务架构方案,选择的是以springcloud为核心的,基于Rest风格的微服务架构。整个项目采用的是前后端分离的开发模式。
前端分为两部分:
后台管理:主要面向的是数据管理人员是基于Vue单页应用开发的
门户系统: 面向的是客户,门户采用Vue结合Nuxt实现服务端渲染方式
后端
采用基于SpringCloud的微服务架构,统一对外提供Rest风格接口,无论是后台管理还是门户系统都共享这些微服务接口,而微服务中通过JWT方式来识别用户的身份,开放不同的接口。
整个项目分为十二个部分:网关,eureka注册中心,公用工具类以及9个微服务。无论前台还是后台系统,都共享相同的微服务集群,包括
eureka注册中心
zuul网关
共用工具类:vo,dto,工具类,自定义
基于nginx实现初步的请求 负载均衡和请求限流
九个微服务包括:
1.商品微服务:主要是进行商品分类管理、品牌管理、商品规格参数管理(这里有一个难点就是商品规格参数的管理:你需要设计spu(标准产品单位)和sku(库存量单位),设计这个你需要去寻找规律,我是看了淘宝和京东这些购物网站商品详情页下面的规格参数:发现同一分类的规格参数名称是一样的,规格参数名称和分类id绑到一起,规格参数值和商品id绑定到一起,这里就要设计两个表,采用竖表设计,一个规格组和一个规格参数表。)
2.文件上传微服务:因为品牌的新增那里需要添加品牌的图片,我就把他给独立出来作为一个文件上传微服务,以后不管是文件还是图片都可以远程调用该微服务。这里用到了一个技术就是fastDFS,即分布式文件存储(基于FastDFS解决大数据量的分布式文件存储问题)因为文件上传保存在本地即服务器机器肯定是有问题的,因为单机器存储能力是有限的。FastDFS它本身是一个轻量级、高性能的开源分布式文件系统,可以做文件存储、同步、访问上传、下载等功能。
3.搜索微服务:主要就是门户系统页面进行商品查找等等,这里主要采用的技术就是elasticsearch,用来完成商品的全文检索功能用它的主要原因就是基于json的分布式搜索和分析引擎,不需要人工搭建集群,比solar快,因为它能实时搜索。
4.页面静态化微服务:主要把动态生成的html页面变为静态内容保存,以后用户的请求到来,直接访问静态页面,不再经过服务的渲染。可以大大的提高页面的响应速度和并发能力。是用在商品详情页的静态化这里用到的技术是ThyMeleaf,实现页面模板和静态化,提高页面响应速度和并发能力。并且springboot里已经自动配置了模板引擎,只需要引入ThyMeleaf依赖即可。
5.短信微服务:完成短信的发送,对接阿里云平台,通过RabbitMQ(消息队列)实现异步的短信发送
6.用户微服务:主要是实现用户的登陆注册、用户信息管理等业务 用户注册、注册数据校验、查询用户信息
7.认证微服务(即授权中心):对用户权限(及服务权限(未实现))进行认证这里有几点需要注意
1.登录授权功能:判断用户是否存在,存在生成token,把token写入cookie中保存) 2.校验用户登录功能:无token:未登录,又token解析token,并刷新token再写入cookie,因为cookie是默认30分钟就消失的,如果用户仍旧在页面操作,那你需要重新设置token并写入cookie
8.购物车微服务:实现购物车相关功能
离线购物车:主要使用localstorage保存到客户端,几乎不与服务端交互 在线购物车:使用redis实现。利用redis实现可靠缓存服务即热点数据保存设计双层map:Map<String,<String,Object>>把这个放入redis里面第一个key是用户id,第二个key是购物车id,值是购物车信息
9.订单微服务:实现订单相关业务(创建订单,查询订单信息)创建订单需要同时减库存,跨服务业务,需要注意事务处理,流程。
查询订单提交的商品信息,
计算订单总价
写入订单、订单详情、订单状态
减库存,远程调用商品微服务实现减库存
本文发布于:2024-02-01 05:19:21,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170673596334168.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |