# 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)与 IAM ErrorMessageStorage 加载缓存
  • 业务标签GET /i18n_message/i18n_message_usages、去重业务标签查询,便于控制台配置
  • 地域语言/locale_settingAccept-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

# 相关文档