Skip to content

芋道 mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。

License

Notifications You must be signed in to change notification settings

JavaStudyStudio/onemall

Repository files navigation

[toc]

友情提示:近期在升级和优化该项目,建议先 Star 本项目。主要在做几个事情:

  • 1、微服务技术选型以 Spring Cloud Alibaba 为中心。
  • 2、修改项目分层,并合并部分服务,简化整体服务的复杂性。
  • 3、将管理后台从 React 重构到 Vue 框架。

交流群:传送门

前言

基于微服务的思想,构建在 B2C 电商场景下的项目实战。

  • 「Talk is cheap. Show me the code」(屁话少说,放码过来)

    我们看过很多技术文章,却依然不知道微服务该咋整。

  • 这会是一个认真做的业务开源项目,目前 Java 代码 2w+ 行,不包括注释的情况下。

  • 整体的功能如下图:功能图

    功能图,和实际后端模块拆分,并不是绝对对应。

  • 交流群:传送门

    一起交流,Get 知识。

  • 我们迫切希望更多的参与进来,可以加入「交流群」,一起骚聊。

演示

艿艿:目前的开发者,都是后端出身。所以,一帮没有审美自觉的人,撸出来的前端界面,可能是东半球倒数第二难看。

迫切希望,有前端能力不错的小伙伴,加入我们,一起来完善「芋道商城」。

H5 商城

体验传送门:http://h5.shop.iocoder.cn

2M 带宽小水管,访问略微有点慢

GIF 图-耐心等待

管理后台

体验传送门:http://dashboard.shop.iocoder.cn

2M 带宽小水管,访问略微有点慢

GIF 图-耐心等待

其它演示

下面,我们会提供目前用到的中间件的管理平台。

艿艿:考虑到大家可以看到更全的功能,所以一般提供 admin 账号。所以,大家素质使用哟。

SkyWalking UI

教程:《芋道 SkyWalking 安装部署》

Grafana UI

Dubbo Admin

RocketMQ Console

教程:《芋道 RocketMQ 安装部署》

XXL-Job Console

教程:《芋道 RocketMQ 安装部署》

Sentinel Console

教程:《芋道 Sentinel 安装部署》

技术

搭建环境

搭建调试环境

架构图

TODO 此处应有一个架构图的装逼 JPG 图。

项目结构

模块名称端口
admin-web【前端】管理后台HTTP 8080
mobile-web【前端】商城 H5HTTP 8000
system-application管理员 HTTP 服务HTTP 18083接口文档
user-application用户 HTTP 服务HTTP 18082接口文档
product-application商品 HTTP 服务HTTP 18081接口文档
pay-application支付 HTTP 服务HTTP 18084接口文档
promotion-application促销 HTTP 服务HTTP 18085接口文档
search-application搜索 HTTP 服务HTTP 18086接口文档
order-application订单 HTTP 服务HTTP 18088接口文档

后端项目,目前的项目结构如下:

[-] xxx ├──[-] xxx-application// 提供对外 HTTP API 。 ├──[-] xxx-service-api// 提供 Dubbo 服务 API 。 ├──[-] xxx-service-impl// 提供 Dubbo 服务 Service 实现。

考虑到大多数公司,无需拆分的特别细,并且过多 JVM 带来的服务器成本。所以目前的设定是:

  • xxx-service-impl 内嵌在 xxx-application 中运行。
  • MQ 消费者、定时器执行器,内嵌在 xxx-service-impl 中运行。

也就是说,一个 xxx-application 启动后,该模块就完整启动了。

技术栈

后端

框架说明版本
Spring Boot应用开发框架2.1.4
MySQL数据库服务器5.6
DruidJDBC 连接池、监控组件1.1.16
MyBatis数据持久层框架3.5.1
MyBatis-PlusMybatis 增强工具包3.1.1
Rediskey-value 数据库暂未引入,等压测后,部分模块
RedissonRedis 客户端暂未引入,等压测后,部分模块
Elasticsearch分布式搜索引擎6.7.1
Dubbo分布式 RPC 服务框架2.7.1
RocketMQ消息中间件4.3.2
Seata分布式事务中间件0.5.1
Zookeeper分布式系统协调3.4.9 作为注册中心
XXL-Job分布式任务调度平台2.0.1
springfox-swagger2API 文档2.9.2
swagger-bootstrap-uiSwagger 增强 UI 实现1.9.3

未来考虑引入

  • 配置中心 Apollo
  • 服务保障 Sentinel
  • 网关 Soul

前端

商城 H5 和管理后台,分别采用了 Vue 和 React ,基于其适合的场景考虑。具体的,可以看看 《为什么 React 比 Vue 更适合大型应用?》 的讨论。

商城 H5

框架说明版本
VueJavaScript 框架2.5.17
VantVue UI 组件库3.13.0

管理后台

框架说明版本
ReactJavaScript 框架16.7.0
Ant DesignReact UI 组件库3.13.0

监控

一般来说,监控会有三种方式:

  • 1、Tracing ,我们采用 Apache SkyWalking
  • 2、Logging ,我们采用 ELK
  • 3、Metrics ,我们采用 Prometheus
框架说明版本
SkyWalking分布式应用追踪系统6.0.0
Prometheus服务监控体系2.9.2
Alertmanager告警管理器0.17.0
Grafana仪表盘和图形编辑器0.17.0

其它

  • Jenkins 持续集成
  • Nginx 服务器
  • Docker 容器
  • Nginx

某种结尾

目前成员

  • 小范
  • 芋艿

About

芋道 mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java95.1%
  • TSQL4.9%