微服务项目通常的架构图如图所示:
整个的项目如今都是采用先后端分离的开发模式。前端
通常电商的典型问题:java
Node.js
(运行在服务端的 JavaScript)及Vue.js
(JavaScript 框架)技术栈,实现先后端分离,经过live-server热部署
直接编写原生的静态HTML,向后端发送请求。nginx
实现初步的反向代理和请求负载均衡和请求限流。JWT技术及RSA非对称加密
实现真正无状态的单点登陆FastDFS
解决大数据量的分布式文件存储问题(例如电商的商品图片)Elasticsearch
高级聚合功能,实现对商品的智能过滤搜索和搜索过滤,索引库的全文检索
。SPU和SKU
的管理问题Thymeleaf
实现页面静态化
,保存到nginx来提升页面响应速度和并发能力
。RabbitMQ
实现可靠消息服务,解决服务间通讯问题,解决分布式事务问题。Redis
搭建高可用集群,实现可靠缓存服务即热点数据的保存。(重点)基于Redis和Mq来应对高可用高并发
的秒杀场景。LocalStorage
实现离线web本地存储,减轻服务端压力。整个微服务项目开发测试后,经过Maven的打包成jar文件。nginx
(1)能够直接部署到服务器上,经过命令行的java-jar + 文件名
的命令来执行。
(2)还能够部署到Docker容器
里。web