7.9 KiB
		
	
	
	
	
			
		
		
	
	
			7.9 KiB
		
	
	
	
	
以 ruoyi-vue-pro 为基础,实现的 Spring Cloud Alibaba 微服务架构。进度如下:
- gateway网关服务
- system系统服务
- infra基础设施
- bpm工作流服务
- pay支付服务
- member会员服务
- product商品服务
- market营销服务
- trade交易服务
启动文档,可见 https://cloud.iocoder.cn/quick-start/ 地址。
前言
基于微服务的思想,构建在 B2C 电商场景下的项目实战。
- 
「Talk is cheap. Show me the code」(屁话少说,放码过来) 我们看过很多技术文章,却依然不知道微服务该咋整。 
- 
这会是一个认真做的业务开源项目,目前 Java 代码 2w+ 行,不包括注释的情况下。 
- 
功能图,和实际后端模块拆分,并不是绝对对应。 
- 
交流群:传送门 一起交流,Get 知识。 
- 
我们迫切希望更多的参与进来,可以加入「交流群」,一起骚聊。 
演示
艿艿:目前的开发者,都是后端出身。所以,一帮没有审美自觉的人,撸出来的前端界面,可能是东半球倒数第二难看。
迫切希望,有前端能力不错的小伙伴,加入我们,一起来完善「芋道商城」。
管理后台
体验传送门:http://dashboard.shop.iocoder.cn
H5 商城
体验传送门:http://h5.shop.iocoder.cn
2M 带宽小水管,访问略微有点慢
其它演示
下面,我们会提供目前用到的中间件的管理平台。
艿艿:考虑到大家可以看到更全的功能,所以一般提供 admin 账号。所以,大家素质使用哟。
SkyWalking UI
Grafana UI
- 地址:http://grafana.shop.iocoder.cn:18099
- 演示账号:yudaoyuanma / yudaoyuanma
- 用于展示 Prometheus 收集的 Metrics 指标数据。
Dubbo Admin
- 地址:http://dubbo-admin.shop.iocoder.cn:18099
- 管理员账号:无需登陆
RocketMQ Console
XXL-Job Console
- 地址:http://xxl-job.shop.iocoder.cn
- 管理员账号:admin / 123456
Sentinel Console
- 地址:http://sentinel.shop.iocoder.cn
- 账号:sentinel / 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
某种结尾
目前成员
- 小范
- 芋艿


