基于Hadoop及微服务架构的前后端分离购物系统。前台购物页面 使用 Vue + ElementUi , 后台管理页面使用 html 和 Ajax。后端使用 Spring Boot + Spring Cloud+Nacos+OpenFeign+Spring Cloud GateWay+MyBatis进行开发,使用 Shiro 做登录验证和权限校验,使用支付宝的沙箱环境进行支付,使用 ElasticSearch 作为商品搜索服务,使用 Hadoop的HDSF作为图片存储服务器,使用 Spring Session+Redis实现Session共享,最后使用 Docker启动相关服务并实现项目一键式部署。
现在许多购物系统都是用SSH或者是SSM写的,想用Spring Boot + Spring Cloud的微服务架构进行项目的构建,里面许多技术主要是验证自己的学习成果,可能有一些不合理的地方,大家可以根据自己的需求启动相关服务。本项目是一个基于Spring Boot、Spring Cloud以及 Vue 技术的入门级项目,可以很好的学习相关技术。
各框架依赖版本皆使用目前最新版本,可在 pom.xml 查看
Spring Boot:MVC框架
Spring Cloud:微服务框架
Nacos:分布式协调服务
MyBatis:ORM框架
Shiro:认证和授权框架
Swagger-UI:文档生产工具
ElasticSearch:搜索引擎
Kibana :分析和可视化平台
RabbitMQ:消息队列
Redis:分布式缓存
MySQL:业务数据存储
Druid:数据库连接池
Hutool:Java工具包类库
Nginx:HTTP和反向代理web服务器
Docker:容器化部署
Docker Compose:Docker容器编排
Portainer:Docker可视化管理
HDFS:Hadoop分布式存储系统
HUE:Hadoop UI系统
基于Vue + ElementUI开发的前台页面,通过调用后端的接口,实现前后端分离。
启动后端项目后,在 config/index.js 中修改成自己的后端接口地址配置 在项目根文件夹下先后执行命令 npm install 、 npm run dev 商城前台端口默认8888, http://localhost:8888
先后执行命令 npm install 、 npm run build 将打包生成的 dist 静态文件放置服务器中,使用Nginx等涉及跨域请配置路由代理
链接: https://pan.baidu.com/s/1aFrxsxtE3SAGtB4P46ifCw?pwd=w7py
提取码: w7py
链接: https://pan.baidu.com/s/1S9xlU3SkThP799wywINsHQ?pwd=mpas
提取码: mpas
主要实现后端和前端的负载均衡,一键式部署,并启动Hadoop、ZooKeeper、MySQL、Redis、Nginx图片服务器、ElasticSearch、Kibana、ActiveMQ、Redis、Portainer服务。
将admin和front目录分别存储的两台主机上
每个主机安装好对应版本的Dokcker和Docker Compose
将后端项目使用Maven的Lifecycle中的package进行打包,将得到的hishop-*-0.0.1-SNAPSHOT-exec.jar复制到admin/Web和front/Web目录下对应的目录中
将前端项目使用npm run build 打包生成 dist,将dist目录复制到front/Web/nginx-front中
在admin/Web,front/Web,front/DataBaseAndHadoop目录下执行命令:chmod u+x ./exec.sh
在存储front目录的主机的hosts文件中添加:172.18.0.13 hadoop
在存储admin目录的主机的hosts文件中添加:存储front目录主机的ip地址 hadoop
输入存储admin目录主机的ip地址查看后台管理系统页面
输入存储front目录主机的ip地址查看前台页面
链接: https://pan.baidu.com/s/1xyXnierpkaaHFJRdlPy94w?pwd=tvru
提取码: tvru