Files
baiyue-firstleg/docs/数据库环境切换说明.md
T
2026-08-26 19:46:14 +08:00

2.9 KiB
Raw Blame History

Nacos 环境切换说明

数据库、Redis 和服务地址均由所选环境的 Nacos 配置决定。本地启动时只切换 Nacos 地址与 namespace,不再通过 application-test.yml 单独切换数据库。

环境映射

Maven Profile Nacos 地址 Namespace
local 127.0.0.1:8848 public
dev dev-nacos.buggoglobal.com:8848 DEV_NACOS_NAMESPACE
test 8.163.30.128:8848 d99d7998-5bb0-4ffe-a2a0-1a564ce14463

本地 Nacos 使用 nacos/nacos。开发和测试密码不写入 Git,需在启动 IDEA 之前设置一次用户环境变量:

[Environment]::SetEnvironmentVariable('DEV_NACOS_PASSWORD', '<开发 Nacos 密码>', 'User')
[Environment]::SetEnvironmentVariable('TEST_NACOS_PASSWORD', '<测试 Nacos 密码>', 'User')
[Environment]::SetEnvironmentVariable('DEV_NACOS_NAMESPACE', '<开发海外 namespace>', 'User')

设置后完全退出并重新打开 IDEA,使 Maven 能读取新环境变量。

IDEA 中切换

  1. 在 Maven 面板的 Profiles 中,local、dev、test 只勾选一个。
  2. 重新加载 Maven 项目。
  3. 在目标服务的 Maven Plugins > spring-boot > spring-boot:run 启动。

例如海外查询链路需要分别启动 gateway-overseas、lastleg-service 和 warehouse-overseas-service。已经运行的进程不会自动切换环境,切换 Profile 后必须停止并重新启动。

IDEA 普通绿色 Run 按钮不执行 Maven,因此不会读取 Maven Profile。需要继续使用 绿色 Run 时,请在 Run Configuration 的 Environment variables 中设置 NACOS_SERVER_ADDR、NACOS_NAMESPACE、NACOS_USERNAME 和 NACOS_PASSWORD。 gateway-overseas 已默认启用 overseas Spring Profile。

PowerShell 中切换

也可以在当前终端加载同一套变量,然后从同一终端启动服务:

. .\scripts\use-nacos-environment.ps1 -Environment local -Region overseas
. .\scripts\use-nacos-environment.ps1 -Environment dev -Region overseas
. .\scripts\use-nacos-environment.ps1 -Environment test -Region overseas

脚本读取 DEV_NACOS_PASSWORD、TEST_NACOS_PASSWORD,namespace 优先读取 *_OVERSEAS_NACOS_NAMESPACE,未设置时读取 *_NACOS_NAMESPACE。命令前面的点和 空格不能省略,否则变量只存在于脚本子进程中。

当前限制

  • 测试 Nacos 的 8848 客户端端口已确认可连接。
  • 开发 Nacos 网页控制台可访问,但 dev-nacos.buggoglobal.com:8848 当前从本机 无法连接。需要开放 Nacos 客户端端口以及 Nacos 2.x/3.x 所需的 gRPC 端口, 或提供一个客户端可访问的内部地址。
  • 国内和海外存在同名 Data ID,远程环境必须使用各自独立 namespace。开发海外 namespace 尚未确认,因此通过 DEV_NACOS_NAMESPACE 在本机配置。
  • 不要同时勾选多个环境 Profile;Maven 对同名属性的最终取值不直观,容易连错环境。