微服务项目之电商--29.微服务项目总结

一、微服务项目

1.1.项目介绍

      乐优商城是一个全品类的电商购物网站(B2C) ,目标是打造一个可扩展的,未来能支持千万用户量的商城。因此采用了目前流行的微服务架构方案。

      目前国内实施微服务有两套技术解决方案:

      ●一种是以阿里的Dubbo为核心的,基于RPC的微服务架构

      ●一种是以Spring的SpringCloud的为核心的, 基于Rest风格的微服务架构我们的乐优商城选择了SpringCloud技术栈来构建项目。

原因是这样的:

      ●可靠: Spring平台一直致力于java技术的研究, 平台更加可靠稳定;毕竟dubbo有被阿里“抛弃过”的黑历史。

     ●方便:因为是Spring的" 亲生儿子",所以SpringBoot的支持非常完美, 简化了系统搭建的工作

      ●易上手:大多数程序员接触框架都是从Spring开始, 比较熟悉Spring的“味道", 学习SpringCloud也会熟悉的感觉。

1.2.架构图

  1.2.2.架构要点

      要点:

      ●整个系统采用了前后端分离的开发模式

      ●前端基于Vue相关技术栈进行开发,并通过ajax与后端服务进行交互。

      ●前端通过nginx部署,并利用nginx实现对后 台服务的反向代理和负载均衡●部分热点静态资源,碰到流量高峰时,会考虑使用CDN服务●使用Ivs来实现Nginx的主从,保证nginx的高可用

      ●后端采用SpringCloud技术栈来搭建 微服务集群,并对外提供Rest风格接口。●Zuul作为整个微服务入口,实现请求路由、负载均衡、限流、权限控制等功能

      ●后端微服务集群会通过Spring-Cloud-Config结合Spring-Cloud-Bus来实现统一配置管理和配置动态刷新●通过Spring cloud-sleuth和Zipkin实现服务的链路追踪

1.2.3.前端

前端页面分成两部分

●一部分面向公司内部人员,实现对商城日常业务的管理。后台管理页面

●一部分面向买家,实现商品的展示、搜索、购买等功能。前台门户页面

1.2.3.1.后台管理页面

●技术实现:

      。后台管理页面会基于Vue实现单页应用(SPA)。使用webpack作为项目构建和打包工具。使用npm作为依赖管理

      。使用Vuetify (基 于vue的UI框架,类似element-ui) 构建页面。。通过axios发起ajax请求, 与后端交互

●功能模块:

      。商品管理,包括商品分类、品牌、商品规格等信息的管理。销售管理,包括订单统计、订单退款处理、促销活动生成等。用户管理,包括用户控制、冻结、解锁等

      。权限管理,整个网站的权限控制,采用JWT鉴权方案,对用户及API进行权限控制。统计,各种数据的统计分析展示

1.2.3.2.前台门户页面
●技术栈:
。基于Vue技术栈
。使用Nuxt的服务端渲染方式,不再构建SPA应用(有利于SEO)。其它与后台管理技术类似
●前台门户面向的是客户,包含与客户交互的一切功能。例如:
。搜索商品。加入购物车。下单
。评价商品等等

 1.2.4.后端服务

 无论是前台还是后台系统,都共享相同的微服务集群,包括:

      ●商品微服务:商品及商品分类、品牌、库存等的服务

      。商品分类管理。商品品牌管理

      。商品规格参数管理:因为规格的可变性,采用竖表设计,分为规格和规格组表。商品管理,难点是SPU和SKU的设计,以及SKU的动态属性

      。库存管理,库存加减采用乐观锁方案,另外定时对库存进行判断,库存不足可通知管理员●搜索微服务:实现搜索功能

      。采用elasticsearch完成商品的全 文检索功能。难点是搜索的过滤条件生成。集群

      ●订单微服务:实现订单相关业务

      。订单的表设计,状态记录

      。创建订单需要同时减库存,跨服务业务,需要注意事务处理,流程

      ■查询订单提交的商品信息

      ■计算订单总价(计算商品总价、计算运费、计算促销金额)

  ●购物车微服务:实现购物车相关功能

      。离线购物车主要使用localstorage保存到客户端, 几乎不与服务端交互。在线购物车:使用Redis实现

      ●用户服务:用户的登录注册、用户信息管理等业务

      。用户注册

      。注册数据校验。查询用户信息。收货地址管理。用户积分管理等

      ●认证服务:用户权限及服务权限认证

      。权限管理CRUD。登录token生成。登录token认证。服务间token生 成。服务间token认证。cookie被禁用怎 么办。cookie盗用怎 么办

●短信服务:完成短信的发送,对接阿里短信平台,通过MQ实现异步的短信发送

●支付服务:完成支付平台对接,对接微信支付、对接支付宝支付。

●Eureka注册中心

●Zuul网关服务
●Spring Cloud Config配置中心

1.3.技术选型

      1.3.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

      ●Nuxt: 服务端渲染

      后端技术:

      ●基础的SpringMVC 5.0.8、Spring 5.0.8和MyBatis 3.2.8●Spring Boot 2.0.4版本

      ●Spring Cloud最新版Finchley.SR1

      ●Redis-4.0

       ●RabbitMQ-3.4

      ●Elasticsearch-6.2.4

      ●nginx-1.10.2

      ●FastDFS- 5.0.8

      ●Thymeleaf-3.0

      ●JWT

 1.3.2.技术解读

      上面的技术组合可以在項目中解决以下电商中的典型向題:

        ●利用Node.js及Vue.js技术栈,实现前后端分离开发。利用SpringCloud技术栈,实现真正的微服务开发

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

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

       ●基于Elasticsearch全文检索功能,实现商品的快速搜索,减轻数据库压力

      ●結合JWT和RSA非対称加密,自定义Feign过滤器实现自动化服务授权,解决服务対外暴露的安全问题。

      ●基于阿里短信实现SMS功能,解决注册短信验证。

      ●基于RabbitMQ实现可靠消息服务,解决服务间通信向題。基于RabbitMQ突現可靠消息服努,解决分布式事物问题。

      ●使用微信SDK实现微信扣款支付,符合主流付款方式

      ●基于Redis搭建高可用集群

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

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

     ●基于可靠消息系统实现分布式系统的柔性事务处理

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值