基于SpringBoot+Dubbo构建的电商平台-微服务架构、商城、电商、微服务、高并发、kafka、Elasticsearc+源代码+文档说明

文章目录

  • 项目用到的技术
  • 前端使用的技术
  • 后端使用的技术
  • 项目模块说明
  • 项目搭建方式
  • 项目开发进度
  • 源码下载地址

项目基于springboot2.1.6.RELEASE+Dubbo2.7.3 来构建微服务。

业务模块划分,尽量贴合互联网公司的架构体系。所以,除了业务本身的复杂度不是很高之外,整体的架构基本和实际架构相差无几。

但实际上,真实的生产级的项目由于用户量以及业务的复杂度,会变得非常复杂。 所以我们会让更多的人参与进来,从需求、设计、解决方案等方面出发来对项目进行迭代,从而培养出一定的

实际解决方案的经验和能力。

项目用到的技术

项目采用前后端分离开发,前端需要独立部署。目前核心的技术栈采用的是SpringBoot2.1.5.RELEASE+Dubbo2.7.2,

前端使用的技术

  • nodejs
  • axios
  • es6
  • vue
  • sass
  • Element UI
  • webpack
  • vue router
  • mockjs

后端使用的技术

后端的主要架构是基于springboot+dubbo+mybatis.

  • SpringBoot2.1.6
  • Mybatis
  • Dubbo2.7.2
  • Zookeeper
  • Mysql
  • Redis
  • Elasticsearch
  • Kafka
  • druid
  • Docker
  • mybatis generator
  • Sentinel

项目模块说明

db_script 本项目的数据库脚本使用mysql暂时未做分表处理,不过有考虑到分表的情况
gpmall-cashier 收银台,负责支付相关的交互逻辑web项目8083端口
gpmall-commons 公共的组件jar公共组件,很多地方都有引用,改动的时候要注意
gpmall-front 商城的前端项目前端项目使用vue、node、es等前端技术开发
gpmall-parent 父控文件,用来统一管理所有jar包父控文件用来统一管理所有项目的jar包的版本
gpmall-shopping 商品/购物车/首页渲染等交互web项目8081端口
gpmall-user 提供用户相关的交互,如登录、注册、个人中心等web项目8082端口
market-service 促销活动的Dubbo服务【暂时未联调完成,可以不启动】dubbo服务20884端口
pay-service 提供支付处理能力dubbo服务20883端口
shopping-service,提供购物车、推荐商品、商品等服务dubbo服务20881端口
user-service ,提供用户相关服务dubbo服务20880端口
order-service ,提供订单服务dubbo服务20882端口
comment-service , 商品评论服务dubbo服务20885端口
PRD存放prd需求文档,有想参与设计的同学,可以提供prd需求
wiki帮助文档,需要每一位同学贡献自己的一份力量

项目搭建方式

  1. 创建gpmall数据库,并把目录下的sql脚本导入。db_scrpit

  2. 按照下面顺序分别启动相关服务

  • gpmall-parent , 这个是整个项目的父控文件,需要执行install安装到本地,如果自己搭建了nexus,可以deploy到nexus上

  • gpmall-commons , 这个是整个项目的公共依赖,执行install安装到本地,如果自己搭建了nexus,可以deploy到nexus上

注: 下列微服务,用到了mysql、redis、kafka等,需要提前安装好相关中间件,并且所有的服务配置的是host地址,建议用hostswitch工具统一维护

  • user-service , 用户服务,把模块,install到本地仓库,因为其他模块有依赖。然后启动服务。user-service-api

  • order-service , 订单服务, 把模块,install到本地,给其他模块依赖order-service-api

  • shopping-service , 商品服务, 把模块,install到本地,给其他模块依赖shopping-service-api

  • marking-service , 营销服务,暂时未开发功能。

  • pay-service , 支付服务,代码已经写完并调试通过(但是用的是老的接口版本,如果是新的版本,需要改接口),还需要提供appid这些,不过这个项目不启动,并不影响前面的页面的功能

  • comment-service , 评论服务,用于展示商品评论信息

下面的服务为BFF,做服务聚合,分别依赖上面的微服务模块

  • gpmall-shopping

  • gpmall-user

  • gpmall-cashier

  1. 前端工程 gpmall-front, 这个项目采用vue开发。
  • 安装node环境
  • 安装python2.7
  • 在gpmall-front中执行 ,npm install
  • 再执行运行, 如果后端的服务都正常启动,此时gpmall-front会把请求转发到服务端获取相关数据进行渲染。npm run dev

项目开发进度

  • 首页渲染,轮播、自定义展示板块
  • 商品查询、商品展示、商品详情
  • 个人中心、用户注册、个人信息修改、收获地址维护
  • 购物车、订单查询、下单、支付
  • 促销活动
    在这里插入图片描述

源码下载地址

点击这里下载源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/477998.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL数据库基础(十):DQL数据查询语言

文章目录 DQL数据查询语言 一、数据集准备 二、select查询 三、简单查询 四、条件查询 1、比较查询 2、范围查询 3、逻辑查询 4、模糊查询 5、非空查询 五、排序查询 六、聚合查询 七、分组查询与having子句 1、分组查询介绍 2、group by的使用 3、group by 聚…

linux搭建测试环境详细过程

前言 本文记录下,测试人员如何搭建测试环境,以供后面自己方便找,大家可以借鉴下搭建测试环境需要安装的有:nginx,redis,mysql,java,docker,保证这几个基本就可以用了&…

AMD FPGA设计优化宝典笔记(5)低频全局复位与高扇出

亚军老师的这本书《AMD FPGA设计优化宝典》,他主要讲了两个东西: 第一个东西是代码的良好风格; 第二个是设计收敛等的本质。 这个书的结构是一个总论,加上另外的9个优化,包含的有:时钟网络、组合逻辑、触发…

leetcode hot100 拆分整数

在本题目中,我们需要拆分一个整数n,让其拆分的整数积最大。因为每拆分一次都和之前上一次拆分有关系,比如拆分6可以拆成2x4,还可以拆成2x2x2,那么我们可以采用动态规划来做。 首先确定dp数组的含义,这里dp…

容器库(7)-std::map

std::map是一种有序关联容器&#xff0c;它包含具有唯一键的键值对。搜索、移除和插入的时间复杂度是 。底层通常是以红黑树实现的。 template<class Key,class T,class Compare std::less<Key>,class Allocator std::allocator<std::pair<const Key, T>&…

Gitlab CI/CD docker命令报错:/usr/bin/bash: line 136: docker:command not found

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

chrome版本117驱动下载路,解决版本不匹配问题

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

数字化商品管理:革新鞋服零售模式,引领智能商业新时代

随着科技的快速发展&#xff0c;数字化浪潮席卷各行各业&#xff0c;鞋服零售企业亦不例外。在这个新时代&#xff0c;数字化商品管理不仅成为鞋服零售企业革新的关键&#xff0c;更是其引领智能商业浪潮的重要引擎。本文将围绕数字化商品管理如何深刻影响鞋服零售模式&#xf…

Java 21 新特性的扫盲级别初体验

一、前言 JDK 21 于 2023 年 9 月发布&#xff0c;作为目前讨论热度最高的JDK&#xff0c;虽然大家都开玩笑说你发任你发&#xff0c;我用Java8&#xff0c;但是作为一个Javaer&#xff0c;对JDK21的新特性还是要有所了解的。 以下是 JDK 21 的新功能列表&#xff1a; 虚拟线…

Java关键字大全

概览 以上是我们学习Java从小白到入门能够接触到的关键字。 下面整理一些我们刚开始学习Java会经常用到的关键字的用法概述&#xff1a; 一、本数据类型&#xff08;4类8种&#xff09; 类型种类&#xff1a; 四类八种整型byte,short,int,long 浮点型float,double字符型cha…

GA-kmedoid 遗传算法优化K-medoids聚类

遗传算法优化K-medoids聚类是一种结合了遗传算法和K-medoids聚类算法的优化方法。遗传算法是一种基于自然选择和遗传机制的随机优化算法&#xff0c;它通过模拟生物进化过程中的遗传、交叉、变异等操作来寻找问题的最优解。而K-medoids聚类算法是一种基于划分的聚类方法&#x…

Python:常见的运算符

一、算术运算符 算术在数学中可以直接运用的一些运算规则&#xff1a; ------- 加法运算 - ------- 减法运算 * ------- 乘法运算 / ------- 除法运算 强数据类型语言中/表示的整除运算 // ------ 整除 % ------ 取余运算 ** ------ 幂次方运算 >>> a 10 >>&…