微服务架构(14):SpringCloud微服务项目技术总结

微服务架构(14):SpringCloud微服务项目技术总结

1、项目架构

微服务项目通常的架构图如图所示:
在这里插入图片描述
整个的项目如今都是采用先后端分离的开发模式。前端

  • 前端主要是一些Vue结合Node.js来实现页面服务端渲染方式
  • (重点)后端主要是基于SpringCloud的微服务架构,对外统一Rest风格的API,采用nginx反向代理到Zuul

2、项目技术具体解读

通常电商的典型问题:java

一、前端

  • 利用的是Node.js(运行在服务端的 JavaScript)及Vue.js(JavaScript 框架)技术栈,实现先后端分离,经过live-server热部署直接编写原生的静态HTML,向后端发送请求。

二、后端

  • 基于nginx实现初步的反向代理和请求负载均衡和请求限流。
  • 基于JWT技术及RSA非对称加密实现真正无状态的单点登陆
  • 结合JWT和RSA非对称加密,自定义Feign过滤器实现自动化服务间鉴权,解决服务对外暴露的安全问题。
  • 基于FastDFS解决大数据量的分布式文件存储问题(例如电商的商品图片)
  • 基于Elasticsearch高级聚合功能,实现对商品的智能过滤搜索和搜索过滤索引库的全文检索
  • 贴近数据库设计,解决全品类的SPU和SKU的管理问题
  • 基于Thymeleaf实现页面静态化,保存到nginx来提升页面响应速度和并发能力
  • 基于阿里云短信服务实现SMS功能。
  • 基于RabbitMQ实现可靠消息服务,解决服务间通讯问题,解决分布式事务问题。
  • 基于Redis搭建高可用集群,实现可靠缓存服务即热点数据的保存
  • (重点)基于Redis和Mq来应对高可用高并发的秒杀场景。
  • 基于LocalStorage实现离线web本地存储,减轻服务端压力。

3、项目部署

整个微服务项目开发测试后,经过Maven的打包成jar文件。nginx

(1)能够直接部署到服务器上,经过命令行的java-jar + 文件名的命令来执行。
(2)还能够部署到Docker容器里。web