Spring Cloud Alibaba For MyShop
博客
视频
概述
利用 Spring Cloud Alibaba 微服务架构解决方案重构 走向单体地狱 阶段开发的 MyShop 项目,以便于我们更好的理解微服务架构,将知识点运用到实践中。
开发环境
- 操作系统:Windows 10 Enterprise
- 开发工具:Intellij IDEA
- 数据库:MySQL 8.0.13
- Java SDK:Oracle JDK 1.8.152
部署环境
- 操作系统:Linux Ubuntu Server 16.04 X64
- 虚拟化技术:VMware + Docker
项目管理工具
- 项目构建:Maven + Nexus
- 代码管理:Git + GitLab
- 镜像管理:Docker Registry
后台主要技术栈
- 核心框架:Spring Boot + Spring Cloud Alibaba
- ORM 框架:tk.mybatis 简化 MyBatis 开发
- 数据库连接池:Alibaba Druid
- 数据库缓存:Redis Sentinel
- 消息中间件:RocketMQ
- 接口文档引擎:Swagger2 RESTful 风格 API 文档生成
- 全文检索引擎:ElasticSearch
- 分布式链路追踪:SkyWalking
- 分布式文件系统:Alibaba OSS
- 分布式系统网关:Spring Cloud Gateway
- 分布式协调系统:Spring Cloud Alibaba Nacos Server
- 分布式配置中心:Spring Cloud Alibaba Nacos Config
- 分布式熔断降级:Spring Cloud Alibaba Sentinel
- 反向代理负载均衡:Nginx
前后分离
- 前端框架:NodeJS + Vue + Axios
- 前端模板:ElementUI
持续集成
- 持续集成:GitLab
- 持续交付:Jenkins
拓扑结构
服务规划
Cloud
服务名称 | 服务端口 | 服务说明 |
---|---|---|
MySQL | 192.168.10.150:3306 | MySQL 8.x,1G |
GitLab | 192.168.10.132:8080 | 代码托管/持续集成,2G |
Nexus | 192.168.10.146:8081 | 依赖管理,2G |
Docker Registry | 192.168.10.139:8080 | 镜像管理,1G |
Jenkins | 192.168.10.135:8080 | 持续交付,1G |
SkyWalking | 192.168.10.148:8080 | 链路追踪,2G |
RocketMQ | 192.168.10.149:8080 | 消息队列,2G |
以下四个服务在在同一台服务器,4G | ||
Nacos | 192.168.10.151:8848 | 注册发现/配置中心 |
Sentinel | 192.168.10.151:8080 | 熔断降级 |
Redis | 192.168.10.151:26379 | 数据缓存 |
Nginx | 192.168.10.151:80 | 反向代理/负载均衡 |
Services
服务名称 | 服务端口 | 服务说明 |
---|---|---|
以下为通用服务 | ||
myshop-service-gateway | 9000 | 服务网关 |
myshop-service-reg | 9501 | 用户注册 |
myshop-service-sso | 9502 | 单点登录 |
myshop-service-cache | 9503 | 缓存服务 |
myshop-service-oss | 9504 | 文件上传 |
myshop-service-forget | 9505 | 忘记密码 |
myshop-service-search | 9506 | 全文检索 |
myshop-service-email | 9507 | 邮件服务 |
以下为服务提供者 | ||
myshop-service-provider-content-category | 10101 | 内容分类提供者 |
myshop-service-provider-content | 10102 | 内容服务提供者 |
myshop-service-provider-item-cat | 10103 | 商品分类提供者 |
myshop-service-provider-item-desc | 10104 | 商品详情提供者 |
myshop-service-provider-item | 10105 | 商品服务提供者 |
myshop-service-provider-order | 10106 | 订单服务提供者 |
myshop-service-provider-order-item | 10107 | 订单项提供者 |
myshop-service-provider-order-shipping | 10108 | 购物车提供者 |
以下为服务消费者 | ||
myshop-service-consumer-content-category | 10201 | 内容分类消费者 |
myshop-service-consumer-content | 10202 | 内容服务消费者 |
myshop-service-consumer-item-cat | 10203 | 商品分类消费者 |
myshop-service-consumer-item-desc | 10204 | 商品详情消费者 |
myshop-service-consumer-item | 10205 | 商品服务消费者 |
myshop-service-consumer-order | 10206 | 订单服务消费者 |
myshop-service-consumer-order-item | 10207 | 订单项消费者 |
myshop-service-consumer-order-shipping | 10208 | 购物车消费者 |
Frontend
服务名称 | 服务端口 | 服务说明 |
---|---|---|
vue-admin-myshop | 9528 | 管理后台 |