# g2rain-infra(基础支撑服务)
g2rain-infra 面向可扩展 SaaS 体系,提供字典、国际化、区域与语言、网关路由定义、分布式 ID(号段/雪花等)等通用能力,并与 Nacos、Redis 集成。网关从本服务加载路由;网关/IAM 等可从本服务拉取 i18n 错误文案。
源码仓库:github.com/g2rain/g2rain-infra (opens new window)
# 模块结构
g2rain-infra/
├── g2rain-infra-api/
├── g2rain-infra-biz/
└── g2rain-infra-startup/ # 默认端口 8080
# 功能特性
| 能力 | 说明 |
|---|---|
| 字典 | /dictionary_item、/dictionary_usage |
| 国际化(i18n) | /i18n_message 及用途关联;支撑全平台错误码/文案 |
| 区域与语言 | /locale_setting |
| 路由定义 | /route_definition — 网关动态路由权威数据源 |
| 分布式 ID | /g2rain_raindrop(雪花、业务号等) |
| 消息同步 | Spring Cloud Stream → g2rain-syncer(路由等变更通知) |
# 国际化能力(增强说明)
i18n_message 表维护多语言文案,典型用途包括:
- 错误码本地化:转换为
LocalizedErrorMessage,供网关ErrorMessageClient(Feign →/i18n_message)与 IAMErrorMessageStorage加载缓存 - 业务标签:
GET /i18n_message/i18n_message_usages、去重业务标签查询,便于控制台配置 - 地域语言:
/locale_setting与Accept-Language请求头配合,形成「配置在 infra、消费在网关/IAM/业务服务」的闭环
变更可通过 g2rain-syncer 通知各实例刷新本地 ErrorMessageStorage 缓存(与网关 README 中缓存同步描述一致)。
# 网关路由定义
- 列表/分页/保存/删除:
/route_definition/* - g2rain-gateway-webflux / webmvc 启动时拉取
RouteDefinitionVo驻留内存;不在网关本地建库 - 单条路由变更经 Redis Stream 增量刷新
# 字典与 ID
- 字典明细与用途:
/dictionary_item、/dictionary_usage - 发号:
GET /g2rain_raindrop/snowflake、/business?bizTag=...
# 与相邻模块
| 模块 | 关系 |
|---|---|
| g2rain-basis | 租户/用户/资源等业务域;infra 偏「纯基础能力」 |
| g2rain-infra-app | 消费 infra API 的前端子应用 |
| 网关 | 路由 + i18n 错误文案 Feign 客户端 |
# 环境要求
- JDK 25+、MySQL、Redis、Nacos
git clone https://github.com/g2rain/g2rain-infra.git
mvn clean package -DskipTests
java -jar g2rain-infra-startup/target/g2rain-infra-startup-*.jar