项目介绍

mall-swarm是一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。

系统架构图

组织结构

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 -- 微服务远程调用测试服务

项目地址及项目教程

添加我的VX:tkzl6666  即可获得《项目地址及项目教程》

技术选型

后端技术

前端技术

环境搭建

开发环境搭建

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://localh

启动测试服务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实现日志收集。

GitHub上最火的SpringCloud微服务商城系统项目,附全套教程的更多相关文章

  1. 史上最简单的springcloud微服务入门实例,满足企业日常需求,开箱即用,工资翻倍不是梦

    在传统的IT行业软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高.到后面引入了SOA服务化,但是,由于 SOA 早期均使用了总线模式,这种总线模式是与某种技术 ...

  2. SpringCloud微服务学习笔记

    SpringCloud微服务学习笔记 项目地址: https://github.com/taoweidong/Micro-service-learning 单体架构(Monolithic架构) Mon ...

  3. .NET Core微服务 权限系统+工作流(二)工作流系统

    一.前言 接上一篇 .NET Core微服务 权限系统+工作流(一)权限系统 ,再来一发 工作流,我在接触这块开发的时候一直好奇它的实现方式,翻看各种工作流引擎代码,探究其实现方式,个人总结出来一个核 ...

  4. IDEA 集成 Docker 插件实现一键远程部署 SpringBoot 应用,无需三方依赖,开源微服务全栈项目有来商城云环境的部署方式

    一. 前言 最近有些童鞋对开源微服务商城项目 youlai-mall 如何部署到线上环境以及项目中 的Dockerfile 文件有疑问,所以写了这篇文章做个答疑以及演示完整的微服务项目发布到线上的流程 ...

  5. Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上)

    Devops 开发运维高级篇之Jenkins+Docker+SpringCloud微服务持续集成(上) Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 1) 开发 ...

  6. 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心

    在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...

  7. 【微服务】之四:轻松搞定SpringCloud微服务-负载均衡Ribbon

    对于任何一个高可用高负载的系统来说,负载均衡是一个必不可少的名称.在大型分布式计算体系中,某个服务在单例的情况下,很难应对各种突发情况.因此,负载均衡是为了让系统在性能出现瓶颈或者其中一些出现状态下可 ...

  8. 【微服务】之五:轻松搞定SpringCloud微服务-调用远程组件Feign

    上一篇文章讲到了负载均衡在Spring Cloud体系中的体现,其实Spring Cloud是提供了多种客户端调用的组件,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使 ...

  9. 【微服务】之六:轻松搞定SpringCloud微服务-API网关zuul

    通过前面几篇文章的介绍,我们可以轻松搭建起来微服务体系中比较重要的几个基础构建服务.那么,在本篇博文中,我们重点讲解一下,如何将所有微服务的API同意对外暴露,这个就设计API网关的概念. 本系列教程 ...

随机推荐

  1. 德布鲁因序列与indexing 1

    目录 写在前面 标记left-most 1与right-most 1 确定位置 德布鲁因序列(De Bruijn sequence) 德布鲁因序列的使用 德布鲁因序列的生成与索引表的构建 参考 博客: ...

  2. Spring Boot Redis 实现分布式锁,真香!!

    之前看很多人手写分布式锁,其实 Spring Boot 现在已经做的足够好了,开箱即用,支持主流的 Redis.Zookeeper 中间件,另外还支持 JDBC. 本篇栈长以 Redis 为例(这也是 ...

  3. 使用redis完成秒杀系统原理

    假设秒杀商品数为100,list名称为winner_user 参考视频教程:https://www.imooc.com/video/15167

  4. 当输入一个 URL,实际会发生什么?

    从一个经典的面试题说起 从输入URL到页面展现的过程: 输入URL后,会先进行域名解析.优先查找本地host文件有无对应的IP地址,没有的话去本地DNS服务器查找,还不行的话,本地DNS服务器会去找根 ...

  5. Ethical Hacking - Web Penetration Testing(10)

    SQL INJECTION SQLMAP Tool designed to exploit SQL injections. Works with many DB types, MySQL, MSSQL ...

  6. Python Ethical Hacking - KEYLOGGER(2)

    Report function: Run in the background. Don't interrupt program execution. Every X seconds, send the ...

  7. python基础算法

    一.简介 定义和特征 定义:算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制.也就是说,能够对一定规范的输入,在有限时 ...

  8. nc - 网络工具箱中的「瑞士军刀」

    nc 是 Linux下强大的网络命令行工具,主要用于 TCP.UDP.UNIX域套接字 相关的操作 它被设计成可以由其他程序灵活驱动可靠的后台工具,拥有 "瑞士军刀" 的美称,每个 ...

  9. MultipartFile

    转发:原博客 一.MultipartFile是什么? MultipartFile是一个接口并继承了InputStreamSource接口.MockMultipartFile.CommonsMultip ...

  10. collection集合常用功能

    java.util.Collection接口 是所有单列集合最顶层的接口,里面定义了所有单列集合的共性方法 1.public boolean add(E e)     添加元素 2.public bo ...