Go to file
YunaiV d06e51ba21 删除已经迁移完的商品代码 2020-08-05 01:00:35 +08:00
common 完成的商品搜索和条件功能 2020-08-04 19:42:54 +08:00
docs 优化 user 认证 starter,支持忽略部分 url 2020-08-01 20:19:49 +08:00
mall-dependencies ⬆️ mybatis-plus up to 3.3.2 & mybatis up to 3.5.4 2020-08-03 21:52:48 +08:00
management-web-app 增加商品详情 RPC 接口 2020-08-04 22:08:37 +08:00
moved 删除已经迁移完的商品代码 2020-08-05 01:00:35 +08:00
ops - 后端:整理 pom 文件,洁癖鬼附体~ 2019-05-13 22:59:47 +08:00
order 进行商品修改的迁移 2020-07-28 20:10:03 +08:00
pay system-service 服务,接入新的错误码 2020-07-19 00:41:30 +08:00
pay-service-project 交易 2020-07-25 13:07:03 +08:00
product-service-project 删除已经迁移完的商品代码 2020-08-05 01:00:35 +08:00
promotion fix promotion优惠券工程迁移,未完成,先提交下 2020-07-26 10:05:47 +08:00
promotion-service-project fix promotion优惠券工程继续迁移,未完成,再再再提交下 2020-07-29 22:48:41 +08:00
search-service-project 修改 search 服务的 dev dubbo 配置 2020-08-05 00:21:51 +08:00
shop-web-app 删除已经迁移完的商品代码 2020-08-05 01:00:35 +08:00
system-service-project 设置最终 build 的名字,解决打包问题 2020-08-02 01:09:20 +08:00
user-service-project 修改 user-service-app 的 dev 的注册中心的配置 2020-08-02 22:54:27 +08:00
user-web-app 初始化商品分页接口 2020-08-04 08:12:08 +08:00
.editorconfig - 优化,重新设定 .editorconfig 规则 2020-05-08 11:05:11 +08:00
.gitattributes - 后端:修改配置文件,指向服务器 2019-05-09 19:34:31 +08:00
.gitignore git commit 忽略target下的文件 2019-06-15 23:35:57 +08:00
LICENSE add LICENSE. 2020-07-04 20:32:32 +08:00
README.md 修复 API 文档地址 2020-04-14 21:50:17 +08:00
http-client.env.json 初始化商品分页接口 2020-08-04 08:12:08 +08:00
pom.xml 临时注释掉 promotion-service-project 项目,避免 jenkins 编译不通过 2020-08-01 23:38:00 +08:00

README.md

[toc]

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

  • 1、微服务技术选型以 Spring Cloud Alibaba 为中心。
  • 2、修改项目分层并合并部分服务简化整体服务的复杂性。
  • 3、解决下演示环境特别是访问速度。

交流群:传送门

前言

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

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

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

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

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

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

  • 交流群:传送门

    一起交流Get 知识。

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

近期计划

近期准备开发如下功能:

🔥 :近期会更新新的项目分层结构。

  1. 微信 H5 网页登陆 @To0R𓃰
  2. 订单评价 @wang171776704
  3. 商品品牌 @黑子
  4. 短信接入 @小范
  5. 访问日志、错误日志接入
  6. 会员资料 @nengjie
  7. 拼团购买 @大太阳
  8. 部门管理 @Tprotect曦
  9. 商品收藏 @笑笑生

演示

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

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

啊啊啊!我好像做店铺装修功能。

H5 商城

体验传送门

GIF 图-耐心等待

管理后台

体验传送门

  • 账号yudaoyuanma
  • 密码yudaoyuanma

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 【前端】商城 H5 HTTP 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
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 和 React ,基于其适合的场景考虑。具体的,可以看看 《为什么 React 比 Vue 更适合大型应用?》 的讨论。

商城 H5

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

管理后台

框架 说明 版本
React JavaScript 框架 16.7.0
Ant Design React 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

某种结尾

目前成员

  • 小范
  • 芋艿