优秀开源项目解读(一) - pig微服务项目

4,369 阅读2分钟

如何做好开源项目解读.png 项目的深入解读是一个很好的项目经验积累的过程,项目解读需要带着以下几个点去进行:

  1. 想研究什么?
  2. 项目技术栈和架构?
  3. 核心功能有哪些?
  4. 你目前遇到的问题?
  5. 哪些设计亮点值得学习?
  6. 功能模块设计分析
  7. 项目结论

本篇文章主要是对pig微服务项目进行深入的解读和学习,pig主要是基于Spring Cloud 2021Spring Boot 2.6OAuth2 的 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 LambdaJava 8语法
Nacos实现服务注册与发现、nacos配置中心
Oauth2.0实现认证授权
sentinel流量控制与保护
LoadBalancer客户端负载均衡器实现负载均衡
Spring Cloud Gateway服务网关配置
feignfeign实现服务调用及服务间鉴权

核心技术点说明

我总结了网关的主要作用:

image.png