1-项目整体架构
Posted 不才陈某
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-项目整体架构相关的知识,希望对你有一定的参考价值。
关于我
曾经就职于蚂蚁金服,多年的后端开发经验,对微服务、架构这块研究颇深,同时也是一名热衷于技术分享、拥抱开源技术的博主。
- 个人技术公众号:码猿技术专栏
- 个人博客:https://chenjiabing666.github.io
前期一直在更新《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等相关知识点
以上是关于1-项目整体架构的主要内容,如果未能解决你的问题,请参考以下文章
spring cloud互联网分布式微服务云平台规划分析--spring cloud平台整体规
spring cloud互联网分布式微服务云平台规划分析--spring cloud平台整体规
Spring Cloud微服务分布式云架构 - spring cloud集成项目
Spring Cloud微服务分布式云架构 - spring cloud集成项目