乐优商城

1. 项目介绍

  • 乐优商城是一个全品类的电商购物网站(B2C)。
  • 用户可以在线购买商品、加入购物车、下单、秒杀商品
  • 可以评论已购买商品
  • 管理员可以在后台管理商品的上下架、促销活动
  • 管理员可以监控商品销售状况
  • 客服可以在后台处理退款操作

1.1 系统架构

1.1.1 架构图

乐优商城架构缩略图:

在这里插入图片描述

nginx的负载均衡

CDN

1.1.2 系统架构解读

整个乐优商城可以分为两部分:后台管理系统、前台门户系统。

  • 后台管理:

    • 后台系统主要包含以下功能(部分功能有待完善):
      • 商品管理,包括商品分类、品牌、商品规格等信息的管理
      • 销售管理,包括订单统计、订单退款处理、促销活动生成等
      • 用户管理,包括用户控制、冻结、解锁等
      • 权限管理,整个网站的权限控制,采用JWT鉴权方案,对用户及API进行权限控制
      • 统计,各种数据的统计分析展示
    • 后台系统会采用前后端分离开发,而且整个后台管理系统会使用Vue.js框架搭建出单页应用(SPA)。
    • 预览图:

在这里插入图片描述

  • 前台门户

    • 前台门户面向的是客户,包含与客户交互的一切功能。例如:
      • 搜索商品
      • 加入购物车
      • 下单90
      • 评价商品等等
    • 前台系统我们会使用Nuxt结合Vue完成页面开发。出于SEO优化的考虑,我们将不采用单页应用。

在这里插入图片描述

1.2 技术选型

1.2.1 前后端相关技术

前端技术:

  • 基础的HTML、CSS、JavaScript(基于ES6标准)
  • Vue.js 2.0以及基于Vue的UI框架:Vuetify
  • 前端构建工具:WebPack
  • 前端安装包工具:NPM
  • Vue脚手架:Vue-cli
  • Vue路由:vue-router
  • ajax框架:axios
  • 基于Vue的富文本框架:quill-editor

后端技术:

  • 基础的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

1.2.2 相关技术解读

上面的技术组合可以在项目中解决以下电商中的典型问题:

  • 利用Node.js及Vue.js技术栈,实现前后端分离开发

  • 利用SpringCloud技术栈,实现真正的微服务实战开发,并且是基于SpringBoot2.0和SpringCloud最新版本Finchley.RC1实现,业内领先。

  • 贴近真实的电商数据库设计,解决全品类电商的SPU和SKU管理问题

  • 基于FastDFS解决大数据量的分布式文件存储问题

  • 基于Elasticsearch高级聚合功能,实现商品的智能过滤搜索

  • 基于Elasticsearch高级聚合功能,实现销售业务的复杂统计及报表输出

  • 基于LocalStorage实现离线客户端购物车,减轻服务端压力。

  • 基于JWT技术及RSA非对称加密实现真正无状态的单点登录。

  • 结合JWT和RSA非对称加密,自定义Feign过滤器实现自动化服务间鉴权,解决服务对外暴露的安全问题

  • 基于阿里大于实现SMS功能,解决电商短信通知问题

  • 基于RabbitMQ实现可靠消息服务,解决服务间通信问题

  • 基于RabbitMQ实现可靠消息服务,解决分布式事务问题

  • 使用微信SDK实现微信扫码支付,符合主流付款方式

  • 基于Redis搭建高可用集群,实现可靠缓存服务即热点数据保存。

    redis持久化,集群,哨兵,主从,缓存击穿,热点key。

  • 基于Redis和Mq来应对高可用高并发的秒杀场景

  • 基于MyCat实现数据库的读写分离和分库分表

    发视频

  • 基于Thymeleaf实现页面模板和静态化,提高页面响应速度和并发能力

  • 基于Nginx实现初步的请求负载均衡和请求限流

2. 微服务

项目系统架构-微服务框架

3. 总结

3.1 nginx反向代理

nginx反向代理

3.2 Rabbitmq

消息队列-Rabbitmq处理消息及在Spring中的应用

3.3 Jwt与RSA非对称加密

Jwt与RSA非对称加密

3.4 Redis

Redis

3.5 Thymeleaf

Thymeleaf

4. 后端微服务

无论是前台还是后台系统,都共享相同的微服务集群,包括:
在这里插入图片描述

4.1 注册微服务:LyRegister

乐优商城–服务(一): 注册微服务(LyRegister)

采用

  • Spring Cloud Netflix中的Eureka实现了服务注册中心以及服务注册与发现;
  • 而服务间通过Ribbon或Feign实现服务的消费以及均衡负载;
  • 通过Spring Cloud Config实现了应用多环境的外部化配置以及版本管理;
  • 为了使得服务集群更为健壮,使用Hystrix的融断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延。

架构图:
在这里插入图片描述
对于整个乐优项目,我们会在Eureka注册每个微服务,列表如下:
在这里插入图片描述

4.2 网关微服务:LyGateway

乐优商城–服务(二) : 网关微服务(LyGateway)

在该架构中,我们的服务集群包含:内部服务Service A和Service B,他们都会注册与订阅服务至Eureka Server,而Open Service是一个对外的服务,通过均衡负载公开至服务调用方。我们把焦点聚集在对外服务这块,直接暴露我们的服务地址,这样不太合理,因此避免对外服务地址的暴露,引入网关——Zuul

网关的主要功能有:

  • 路由
  • 身份与安全认证(权限控制)
  • 限流
  • 负载均衡
    在这里插入图片描述
    不管是来自于客户端(PC或移动端)的请求,还是服务内部调用。一切对服务的请求都会经过Zuul这个网关,然后再由网关来实现 鉴权、动态路由等等操作。Zuul就是我们服务的统一入口。

4.3 商品微服务:LyItemApplication

乐优商城–服务(三) : 商品微服务(LyItemApplication)–前半部分
乐优商城–服务(三) : 商品微服务(LyItemApplication)–后半部分

4.4 上传微服务:LyUploadApplication

乐优商城–服务(四) : 上传微服务(LyUploadApplication)

4.5 搜索微服务:LySearchApplication

乐优商城–服务(五) : 搜索微服务(LySearchApplication)

4.6 页面微服务:LyPageApplication

乐优商城–服务(六) : 页面微服务(LyPageApplication)

4.7 用户中心微服务:LyUserApplication

乐优商城–服务(七) : 用户中心微服务(LyUserApplication)

4.8 短信微服务:LySmsApplication

乐优商城–服务(八) :短信微服务(LySmsApplication)

4.9 授权微服务:LyAuthApplication、

乐优商城–服务(九) :授权微服务(LyAuthApplication)–前半部分
乐优商城–服务(九) :授权微服务(LyAuthApplication)–后半部分

4.10 购物车微服务:LyCartApplication

乐优商城–服务(十) :购物车微服务(LyCartApplication)

4.11 订单微服务:LyOrderApplication

乐优商城–服务(十一) :订单微服务(LyOrderApplication)

5. 微服务安全问题

乐优商城–关于微服务的安全问题

6. 程序代码

程序代码

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值