01 项目架构

关于我

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

  • 个人技术公众号:码猿技术专栏
  • 个人博客:www.java-family.cn

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

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

01 项目架构_第1张图片

整个项目将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等相关知识点

你可能感兴趣的:(Spring,Cloud,Alibaba,微服务项目实战,架构)