去年12月的时候,mall项目正式发布,做为Github上面最火的SpringBoot实战电商项目,累计得到了25000+Star。今年仍是12月,mall项目微服务版本mall-swarm正式发布,
项目介绍html
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 二、MyBatis、Docker、Elasticsearch等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。前端
系统架构图git
组织结构github
mall ├── mall-common -- 工具类及通用代码模块 ├── mall-mbg -- MyBatisGenerator生成的数据库操做代码模块 ├── mall-security -- 封装SpringSecurity+JWT的安全认证的模块 ├── mall-registry -- 基于Eureka的微服务注册中心 ├── mall-config -- 基于Spring Cloud Config的微服务配置中心 ├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务 ├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心 ├── mall-admin -- 后台管理系统服务 ├── mall-search -- 基于Elasticsearch的商品搜索系统服务 ├── mall-portal -- 移动端商城系统服务 └── mall-demo -- 微服务远程调用测试服务
项目文档sql
项目文档mall系列教程:www.macrozheng.com
配套Spring Cloud系列教程:github.com/macrozheng/…
项目演示数据库
后台管理系统: www.macrozheng.com/admin/index…
移动端商城系统:www.macrozheng.com/app/index.h…
技术选型后端
后端技术安全
前端技术架构
环境搭建app
开发环境搭建
mall-swarm中使用到的环境和mall项目中大体相同,具体能够查看mall在Windows环境下的部署。
简易环境搭建流程:
安装IDEA并导入项目源码;
安装MySql,建立一个mall数据库,并导入/document/sql/mall.sql文件;
安装Redis、Elasticsearch、MongoDB、RabbitMQ等环境。
项目部署
mall-swarm项目启动有前后顺序,你们要按照如下顺序启动。
启动注册中心mall-registry
直接运行com.macro.mall.MallRegistryApplication的main函数便可;
运行完成后能够经过注册中心控制台查看:http://localhost:8001
启动配置中心mall-config
直接运行com.macro.mall.MallConfigApplication的main函数便可;
访问如下接口获取mall-admin在dev环境下的配置信息:http://localhost:8301/master/admin-dev.yml
启动监控中心mall-monitor
直接运行com.macro.mall.MallMonitorApplication的main函数便可;
运行完成后能够经过监控中心控制台查看:http://localhost:8101
输入帐号密码macro:123456能够登陆查看。
启动网关服务mall-gateway
直接运行com.macro.mall.MallGatewayApplication的main函数便可;
访问如下接口获取动态路由规则:http://localhost:8201/actuator/gateway/routes
启动后台管理服务mall-admin
直接运行com.macro.mall.MallAdminApplication的main函数便可;
经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-admin/swagger-ui.html
登陆接口地址:http://localhost:8201/mall-admin/admin/login
访问登陆接口获取到token后放入认证的头信息便可正常访问其余须要登陆的接口:
启动前台服务mall-portal
直接运行com.macro.mall.portal.MallPortalApplication的main函数便可;
经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-portal/swagger-ui.html
登陆接口地址:http://localhost:8201/mall-portal/sso/login
调用须要登陆的接口方式同mall-admin。
启动搜索服务mall-search
直接运行com.macro.mall.search.MallSearchApplication的main函数便可;
经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-search/swagger-ui.html
启动测试服务mall-demo
直接运行com.macro.mall.MallAdminApplication的main函数便可;
经过mall-gateway网关服务访问接口文档:http://localhost:8201/mall-demo/swagger-ui.html
能够经过调用FeignAdminController、FeignPortalController、FeignSearchController来测试使用Feign的远程调用功能。
效果展现
注册中心服务信息:
监控中心服务概览信息:
监控中心单应用详情信息:
扩展解决方案
若是想使用Consul做为注册及配置中心的话请参考:Spring Cloud Consul:服务治理与配置中心若是想使用Nacos做为注册及配置中心的话请参考:Spring Cloud Alibaba:Nacos 做为注册中心和配置中心使用分布式事务解决方案请参考:使用Seata完全解决Spring Cloud中的分布式事务问题!ELK日志收集系统的搭建请参考:SpringBoot应用整合ELK实现日志收集。