关于我

曾经就职于蚂蚁金服,多年的后端开发经验,对微服务、架构这块研究颇深,同时也是一名热衷于技术分享、拥抱开源技术的博主。

前期一直在更新《Spring Cloud 进阶》这个专栏,很多读者觉得知识太杂了,想要我出个系统的实战项目将这些知识、中间件串联起来实战一下,这样能够加深理解。

在春节期间自己抽时间将新实战项目撸了起来,这是一个博客项目,系统架构如下图:

项目系统架构文档 项目架构表_分布式

整个项目将Spring Cloud Alibaba的几个组件完全应用,贴近企业生产,作为练手项目再合适不过了。

涉及到以下9个服务:

服务名称

描述

oauth-server

认证中心

user-boot

用户、权限服务

article-boot

文章、分类服务

comments-boot

评论服务

friendlinks-boot

友链服务

gateway

网关服务

monitor

服务监控

picture-boot

图片服务

file-server

文件存储服务

开发中用到工具如下:

名称

描述

版本

Nacos

注册中心、配置中心

1.2.1

Seata

分布式事务组件

1.3.0

Skywalking

分布式链路追踪组件

8.7.0

Sentinel

限流熔断组件

1.7.1

Redis

缓存数据库

3.0

RabbitMQ

消息组件

3.7.11

ES

搜索引擎

7.1.

MySQL

数据库

5.6.0

开发中用到的后端技术:

名称

描述

Spring Boot

MVC框架

Spring Cloud

微服务框架

Spring Cloud Alibaba

阿里系微服务框架

Spring Security

安全认证框架

OpenFeign

服务间调用组件

Nacos

阿里系分布式配置、注册中心

Seata

阿里系分布式事务解决框架

Sentinel

阿里系限流熔断框架

Skywalking

分布式链路追踪框架

RabbitMQ

消息组件

Redis

缓存数据库

MySQL

持久化数据库

ElasticSearch

全文搜索引擎

Druid

阿里系数据库连接池

Spring Boot Admin

服务监控

Nginx

反向代理工具

Hutool

三方工具包

JWT

令牌技术

Kibana

分析和可视化平台

Mybatis

ORM框架

项目特点

  • 引入Nacos作为注册中心、分布式配置中心,开发便捷
  • 引入openFeign作为服务调用组件,贴近企业生产实际
  • 引入Seata作为分布式解决方案,使得分布式事务更加简单
  • 引入Sentinel作为限流熔断组件,使得微服务更加安全,通过配置再也不怕网站被爆破
  • 引入Skywalking作为分布式链路追踪组件,代码无侵入,使得异常分析,链路定位更加简单
  • 引入RBAC权限模型,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
  • 引入Spring Security作为认证授权框架,完美集成OAuth2.0
  • 引入ElasticSearch作为全文检索服务
  • 引入Spring Boot Admin作为服务监控组件
  • 引入Swagger 文档支持,网关层聚合API文档,不用担心文档的编写
  • 引入RabbitMQ 消息队列,用于事件的异步拆解
  • 采用自定义参数校验注解,轻松实现后端参数校验
  • 采用 AOP + 自定义注解 + Redis 实现限制IP接口访问次数
  • 友好的代码结构及注释,便于阅读及二次开发
  • 实现前后端分离,通过 Json 进行数据交互,专注于后端技术,不用关心前端

面向人群

本教程面向Java Web开发者,对于初步掌握微服务开发技术的同学比较友好,可以直接学习。

对于缺乏一些基础知识同学也可以学习,教程内部都提供了对应的学习资源,理论+实战更加深入的学习。

你将学到什么

通过本系列教程,你将掌握以下技能:

  • Spring Cloud 的基础知识+实战,比如服务间调用openFeign,链路追踪Skywalking,网关Spring Cloud Gateway
  • Spring Cloud Alibaba各种组件的深入理解+实战,比如服务治理、配置组件Nacos,限流熔断组件Sentinel、分布式事务组件Seata
  • Spring Security、OAuth2.0、RBAC权限模型的基础知识+实战
  • 分布式事务各种解决方案、网关统一授权、JWT等相关知识点