项目的深入解读是一个很好的项目经验积累的过程,项目解读需要带着以下几个点去进行:
- 想研究什么?
- 项目技术栈和架构?
- 核心功能有哪些?
- 你目前遇到的问题?
- 哪些设计亮点值得学习?
- 功能模块设计分析
- 项目结论
本篇文章主要是对pig微服务项目进行深入的解读和学习,pig主要是基于Spring Cloud 2021 、Spring Boot 2.6、 OAuth2 的 RBAC 权限管理系统,目前是基于数据驱动视图的理念封装 element-ui,提供对常见容器化支持 Docker、Kubernetes 等支持。
pig 语雀技术文档:www.yuque.com/pig4cloud/p…
项目模块分析
pig
├── pig-auth -- 授权服务提供[3000]
└── pig-common -- 系统公共模块
├── pig-common-bom -- 全局依赖管理控制
├── pig-common-core -- 公共工具类核心包
├── pig-common-datasource -- 动态数据源包
├── pig-common-job -- xxl-job 封装
├── pig-common-log -- 日志服务
├── pig-common-mybatis -- mybatis 扩展封装
├── pig-common-security -- 安全工具类
├── pig-common-swagger -- 接口文档
├── pig-common-feign -- feign 扩展封装
└── pig-common-test -- oauth2.0 单元测试扩展封装
├── pig-register -- Nacos Server[8848]
├── pig-gateway -- Spring Cloud Gateway网关[9999]
└── pig-upms -- 通用用户权限管理模块
└── pig-upms-api -- 通用用户权限管理系统公共api模块
└── pig-upms-biz -- 通用用户权限管理系统业务处理模块[4000]
└── pig-visual
└── pig-monitor -- 服务监控 [5001]
├── pig-codegen -- 图形化代码生成 [5002]
├── pig-sentinel-dashboard -- 流量高可用 [5003]
└── pig-xxl-job-admin -- 分布式定时任务管理台 [5004]
核心基础框架
依赖 | 版本 |
| ---------------------- | -------- |
| Spring Boot | 2.6.3 |
| Spring Cloud | 2021.0.0 |
| Spring Cloud Alibaba | 2021.1 |
| Spring Security OAuth2 | 2.3.6 |
| Mybatis Plus | 3.5.1 |
| hutool | 5.7.19 |
| Avue | 2.6.18 |
项目涉及技术及主要功能
| 框架 | 功能 |
|---|---|
| Lombok | 代码简化 |
| Java 8 Stream Lambda | Java 8语法 |
| Nacos | 实现服务注册与发现、nacos配置中心 |
| Oauth2.0 | 实现认证授权 |
| sentinel | 流量控制与保护 |
| LoadBalancer | 客户端负载均衡器实现负载均衡 |
| Spring Cloud Gateway | 服务网关配置 |
| feign | feign实现服务调用及服务间鉴权 |
核心技术点说明
我总结了网关的主要作用: