/spring-cloud-alibaba-my-shop

利用 Spring Cloud Alibaba 微服务架构解决方案重构《走向单体地狱》阶段开发的 MyShop 项目,以便于我们更好的理解微服务架构,将知识点运用到实践中。

Primary LanguageJava

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 管理后台