# G2rain Infra
(opens new window)
(opens new window)
(opens new window)
(opens new window)
g2rain-infra 是 G2rain 平台的基础设施与运行支撑模块,负责承载字典、国际化、区域与语言、路由元数据、分布式 ID 支撑等平台级公共能力,并与 Nacos、Redis 等基础设施协同,服务于平台核心模块、业务域模块与前端支撑应用的统一接入。
本项目由 谷雨开源 SaaS 平台(G2rain) 团队维护,基于 Apache License 2.0 开源发布。
# 1. 徽标与状态标识
- 平台定位:基础设施与运行支撑模块
- 仓库类型:平台核心模块
- 当前状态:稳定版本
# 2. 项目简介
g2rain-infra 不是面向单一业务域的服务,而是为整个平台提供“高复用、强平台属性”的公共支撑能力。
它主要解决以下问题:
- 平台通用基础数据能力不应散落在多个服务中重复实现
- 国际化、区域与语言、路由元数据等能力需要统一治理
- 分布式 ID 与通用支撑逻辑需要稳定的统一承载
- 公共配置、同步与基础设施协同不应耦合在具体业务模块中
在 G2rain 整体体系中,g2rain-infra 与 g2rain-basis、g2rain-iam 一起构成平台核心层的重要组成部分。
# 3. 平台定位
在 G2rain“企业级 AI 原生开源 SaaS 平台”体系中,g2rain-infra 位于平台核心层,承担的是“平台公共支撑能力与运行侧基础服务”的统一承载职责。
它关注的不是某个具体业务场景的页面或流程,而是:
- 哪些能力会被多个模块共同依赖
- 哪些通用基础数据应统一建模和管理
- 哪些运行支撑能力需要与配置中心、缓存、同步机制联动
- 哪些平台级公共服务应沉淀为稳定的基础设施模块
# 4. 核心能力
# 4.1 字典与基础数据能力
提供平台级字典及其使用关系管理能力,适用于多个模块共享的标准化数据定义场景。
典型价值:
- 避免各业务模块重复维护相同字典
- 统一字典查询与使用关系管理
- 为平台前后端统一枚举和基础数据展示提供支撑
# 4.2 国际化与语言区域能力
提供多语言文案、语言区域(Locale)与相关使用关系管理能力。
典型价值:
- 支撑平台国际化扩展
- 支撑前端页面与后端文案的一致管理
- 为多语言租户或多区域交付提供基础能力
# 4.3 路由元数据能力
集中维护路由定义类元数据,供网关或业务侧消费。
典型价值:
- 统一管理路由配置
- 为入口治理与服务协同提供元数据基础
- 降低路由规则分散在多个模块中的维护成本
# 4.4 分布式 ID 支撑能力
承载与号段、雪花等分布式 ID 策略相关的支撑逻辑。
典型价值:
- 保证平台中通用 ID 能力有统一落点
- 避免不同模块各自实现 ID 逻辑
- 支持后续业务扩展中的统一编号体系
# 4.5 运行与配置协同能力
围绕平台运行时依赖形成统一支撑,包括:
- Nacos 服务发现与动态配置
- Redis 缓存与同步协同
- Spring Cloud Stream 消息通道支撑
- 公共配置外部化
典型价值:
- 平台运行侧能力统一化
- 公共配置与同步机制集中管理
- 降低业务模块直接处理基础设施集成细节的复杂度
# 5. 核心能力结构说明
从平台视角看,g2rain-infra 承接的是“多个模块都要用,但不应散落实现”的能力。
可以把它理解为三类能力集合:
# 5.1 平台公共基础数据集合
- 字典
- 国际化文案
- 区域与语言
- 路由元数据
这一类能力强调统一数据定义、统一维护与统一消费。
# 5.2 平台运行支撑集合
- 配置中心协同
- 缓存协同
- 消息同步协同
- 健康检查与运行暴露能力
这一类能力强调平台运行期的一致性与可治理性。
# 5.3 通用支撑策略集合
- 分布式 ID
- 公共基础设施接入约定
- 平台公共逻辑沉淀
这一类能力强调为后续模块扩展提供稳定基础。
# 6. 关键支撑流程
# 6.1 公共基础数据统一承载流程
- 平台定义字典、国际化、区域、语言、路由等公共基础数据
g2rain-infra统一承载这些数据的存储、查询与管理能力- 平台核心模块、业务域模块与前端应用按需消费这些能力
- 形成统一的数据支撑底座
# 6.2 运行配置协同流程
- 平台运行时从 Nacos 加载外部化配置
g2rain-infra依赖统一配置完成运行支撑能力初始化- 通过 Redis、消息通道等机制配合同步或缓存场景
- 为其他模块提供稳定的公共支撑服务
# 6.3 平台公共能力复用流程
- 新模块建设时识别公共支撑需求
- 若能力具有平台复用价值,则沉淀到
g2rain-infra - 平台其他模块直接复用,而不是重复实现
- 形成平台统一基础设施能力闭环
# 7. 工程结构
g2rain-infra/
├── g2rain-infra-api/ # 对外契约层:API 接口、DTO/VO、枚举、错误码等
├── g2rain-infra-biz/ # 业务实现层:Controller、Service、DAO、MyBatis Mapper
└── g2rain-infra-startup/ # 启动层:Spring Boot 入口、全局配置、OpenAPI 等
# 7.1 g2rain-infra-api
负责定义对外契约,适合作为其他模块依赖的接口层与共享对象层。
# 7.2 g2rain-infra-biz
负责具体业务实现,承接控制器、服务、持久化与能力编排逻辑。
# 7.3 g2rain-infra-startup
负责应用启动、运行配置、OpenAPI 暴露与整体服务装配。
# 8. 技术栈
| 类别 | 说明 |
|---|---|
| 运行时 | Java 25 |
| 框架 | Spring Boot 4.0.x、Spring Cloud 2025.1.x、Spring Cloud Alibaba (Nacos) |
| 持久化 | MyBatis、MySQL |
| 缓存 / 消息 | Redis、Spring Cloud Stream(Redis Binder) |
| 其他 | MapStruct、Lombok、springdoc-openapi |
# 9. 与其他模块的关系
# 9.1 与 g2rain-basis
g2rain-basis 负责平台基础控制与交付能力,g2rain-infra 负责平台公共支撑能力。
两者关系可以理解为:
g2rain-basis更偏平台治理与控制g2rain-infra更偏平台支撑与运行基础
# 9.2 与 g2rain-infra-app
g2rain-infra-app 是前端侧对应的支撑应用,负责为部分基础设施与平台支撑场景提供交互界面。
# 9.3 与 g2rain-deploy
g2rain-infra 会纳入标准部署与交付体系,是平台整体运行环境中的组成部分。
# 9.4 与业务域模块
业务域模块可以直接消费 g2rain-infra 提供的公共能力,而无需在各自模块内部重复实现字典、国际化、区域语言或通用支撑逻辑。
# 10. 环境要求
- JDK 25
- Apache Maven 3.9+
- MySQL
- Redis
- Nacos
# 11. 快速开始
# 11.1 克隆仓库
git clone https://github.com/g2rain/g2rain-infra.git
cd g2rain-infra
# 11.2 编译
mvn clean package -DskipTests
# 11.3 运行
java -jar g2rain-infra-startup/target/g2rain-infra-startup-*.jar
或:
cd g2rain-infra-startup
mvn spring-boot:run
# 12. 配置说明
常见配置项包括:
SERVER_PORTSPRING_PROFILES_ACTIVENACOS_SERVER_ADDRSPRING_CLOUD_NACOS_*
建议优先通过环境变量或安全配置中心管理敏感配置。
# 13. 容器镜像
g2rain-infra-startup 集成了 Jib,可用于构建容器镜像。
mvn -pl g2rain-infra-startup -am compile jib:build
# 14. 典型使用场景
- 平台字典能力统一承载
- 多语言与区域语言配置支撑
- 路由元数据统一管理
- 分布式 ID 相关支撑能力建设
- 平台运行配置与同步机制协同
- 业务模块公共基础能力复用
# 15. 贡献指南
欢迎通过 Issue 和 Pull Request 参与改进。
建议在提交前完成本地编译与必要验证:
mvn clean verify
# 16. 许可证
本项目基于 Apache 2.0许可证 开源。
# 17. 联系我们
- 站点: https://www.g2rain.com/
- Issues: GitHub Issues (opens new window)
- 讨论: GitHub Discussions (opens new window)
- 邮箱: g2rain_developer@163.com