• Stars
    star
    798
  • Rank 57,053 (Top 2 %)
  • Language
    Java
  • Created almost 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

MyShopPlus

MyShopPlus 项目致力于推广并普及 微服务架构 思想,采用全新 服务网格 系统打造电商生态级产品。
Java
547
star
2

spring-cloud-netflix-itoken

iToken 项目是基于 Spring Boot + Spring Cloud 的综合练习项目,旨在帮助大家更好的理解和掌握微服务架构思想及相关知识点,为了能够让新人(尚未入行的同学们)了解企业开发中从立项到上线的大概流程,做了一个相对完整的设计,致使本人无法在有限时间内(因为要带新班)完成整个项目的研发,还请各位看官海涵。但最最重要的编程思想与编程方法已经传达到位,剩下的就是希望各位同学将所学知识内化吸收、融会贯通做出真正属于自己的产品。
Java
251
star
3

ssm-my-shop

MyShop 单体地狱版
JavaScript
191
star
4

spring-cloud-alibaba-dubbo

本项目的目标是将 Dubbo 融入到 Spring Cloud Alibaba 生态中,使微服务之间的调用同时具备 RESTful 和 Dubbo 调用的能力。做到对业务代码无侵入,无感知;引入 JAR 包则微服务间调用使用 Dubbo,去掉 JAR 包则使用默认的 RESTful;实现参考的是 Spring Cloud 中文社区的 Spring Cloud Dubbo 项目。
Java
142
star
5

dubbo-my-shop

该综合练习项目是将之前的《走向单体地狱》MyShop 从传统的 SSM 项目改造成基于 Spring Boot + Dubbo + Zookeeper 的微服务架构项目,旨在帮助大家更好的理解架构是演化而来的,不是设计出来的思想;当传统方式已经不能满足我们的需求时,我们就需要寻找新的解决方案了;
JavaScript
95
star
6

JavaBase

Java 基础阶段案例代码
Java
4
star