Awesome Open Source
Awesome Open Source

[toc]

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

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

交流群:传送门

前言

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

演示

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

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

管理后台

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

GIF 图-耐心等待

H5 商城

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

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

GIF 图-耐心等待

其它演示

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

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

SkyWalking UI

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

Grafana UI

Dubbo Admin

RocketMQ Console

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

XXL-Job Console

教程:《芋道 XXL-Job 安装部署》

Sentinel Console

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

技术

搭建环境

搭建调试环境

架构图

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

项目结构

模块 名称 端口
admin-dashboard-vue 【前端】管理后台 HTTP 9527
user-dashboard-vue 【前端】商城平台 HTTP 8080
management-web-app 【后端】管理平台 HTTP 服务 HTTP 18083 接口文档
shop-web-app 【后端】商城平台 HTTP 服务 HTTP 18084 接口文档
system-service-project 系统 RPC 服务 随机
user-service-project 用户 RPC 服务 随机
promotion-service-project 营销 RPC 服务 随机
pay-service-project 支付 RPC 服务 随机
trade-service-project 交易 RPC 服务 随机
product-service-project 商品 RPC 服务 随机
search-service-project 搜索 RPC 服务 随机

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

[-] xxx-web-app // 提供对外 HTTP API。

[-] xxx-service-project
    ├──[-] xxx-service-api // 提供对内 RPC API 。
    ├──[-] xxx-service-app // 提供对内 RPC 实现。
    ├──[-] xxx-service-integration-test // 集成测试。

技术栈

后端

框架 说明 版本
Spring Boot 应用开发框架 2.1.4
MySQL 数据库服务器 5.6
Druid JDBC 连接池、监控组件 1.1.16
MyBatis 数据持久层框架 3.5.1
MyBatis-Plus Mybatis 增强工具包 3.1.1
Redis key-value 数据库 暂未引入,等压测后,部分模块
Redisson Redis 客户端 暂未引入,等压测后,部分模块
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-swagger2 API 文档 2.9.2
swagger-bootstrap-ui Swagger 增强 UI 实现 1.9.3

未来考虑引入

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

前端

商城 H5

框架 说明 版本
Vue JavaScript 框架 2.5.17
Vant Vue UI 组件库 3.13.0

管理后台

框架 说明 版本
Vue JavaScript 框架 2.5.17
Vue Element Admin 后台前端解决方案 -

监控

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

  • 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

某种结尾

目前成员

  • 小范
  • 芋艿

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Java (706,068
Spring Boot (12,128
Mysql (12,080
Redis (6,661
Elasticsearch (3,765
Spring Cloud (1,665
Zookeeper (749
Dubbo (482
Rocketmq (193
Nacos (158
Related Projects