2.9 KiB
2.9 KiB
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 中切换
- 在 Maven 面板的
Profiles中,local、dev、test只勾选一个。 - 重新加载 Maven 项目。
- 在目标服务的 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 对同名属性的最终取值不直观,容易连错环境。