fix(nacos): namespace 口径统一 public→空串(默认公共空间 namespaceId=空串,非字面量 public)(配置控制面阶段二前置)
Nacos 默认公共空间的真实 namespaceId 是空串,"public" 只是显示名(namespaceShowName)。 现状代码写 namespace: public 会带 tenant=public 静默落进一个 id 为 public 的空间, 路 B 写读两侧不一致时配置永远推不到(阶段〇同款坑)。真取证: GET /nacos/v1/console/namespaces 返 namespace:"" / namespaceShowName:"public"; nacos-sdk-python v1 client.py 逻辑 `if self.namespace: params["tenant"]=...`——空串不带 tenant=走默认空间。 改动(五处触点,均只动默认公共空间语义处): - game-cloud huijing-server application.yaml:discovery/config 两处 namespace public→""(+中文注释) - tier2 gen-worker service/nacos_registry.py:NACOS_NAMESPACE 默认值 public→""(+中文注释) - tier2 gen-worker tests/test_nacos_registry.py:断言随改 == "public" → == "" - docs/内网凭据与端点.md:Nacos 段补 namespaceId 口径行(空串非 public,写读两侧对齐) 不动:各模块 -dev/-local profile 的 namespace: dev(独立命名空间 dev,非默认公共空间语义); docs/plans 历史留痕档的 public 字面量(留痕层不改)。 验证:nacos_registry 单测 6 passed;application.yaml YAML 语法有效(两处 namespace 落空串); py_compile 通过;docs-gate 6/7 检绿(唯一 G3 死链为 pre-existing、与本改动无关)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e9b14a3186
commit
056433d5bb
@ -70,6 +70,7 @@ canonical: true
|
||||
| **server identity**(server 间鉴权头) | key `nacosServerIdentity` / value `f358e96034ab2cd5e41c1a691b4200bb6f576849d61ed4dd` |
|
||||
| **MySQL 后端** | 复用既有 `100.64.0.8:3306` 的 `nacos` 库(root/`ZRH3jwYLOrntBcTAw29MW9BP`,不新增实例);12 张官方表 |
|
||||
| **部署位置** | mini-infra `/opt/infra-nacos`(compose 源在仓 `deploy/infra/nacos/`);镜像 `nacos/nacos-server:v2.4.3` |
|
||||
| **命名空间(namespaceId)** | 默认公共空间 = **空串 `""`**,**勿写字面量 `public`**——`public` 只是显示名(namespaceShowName),不是 id。写侧(game-cloud SCA / yudao publish)与读侧(worker nacos_registry / NacosHotConfig)一律用空串;写 `public` 会静默落进另一个空间、配置永远推不到(阶段〇同款坑)。实测 `GET /nacos/v1/console/namespaces` 返 `namespace:""` / `namespaceShowName:"public"`。业务生成配置若要隔离,另建**真实** namespaceId、勿复用显示名 |
|
||||
|
||||
- **密钥注入**:上面四个密钥在服务器上物化为 `/opt/infra-nacos/.env`(chmod 600、不入仓);本文档是权威副本,compose 文件只用 `${VAR}` 引用、无明文。
|
||||
- **运维**:起/停 `cd /opt/infra-nacos && docker compose up -d / down`;探活 `NACOS=http://100.64.0.8:8848 bash deploy/infra/nacos/health-check.sh`(绿=readiness 200)。standalone 单机 512m,实测常驻内存 ~627M。
|
||||
|
||||
@ -64,10 +64,10 @@ spring:
|
||||
password: ${NACOS_PASSWORD} # 口令走 Spring env 占位符注入,严禁明文入仓(真值=凭据文档 admin 口令)
|
||||
discovery:
|
||||
enabled: true # 重启用 Nacos 服务发现(was false):各 server 按 spring.application.name 注册进 Nacos
|
||||
namespace: public # 命名空间(B1 部署用 public)
|
||||
namespace: "" # 默认公共空间 namespaceId=空串,勿写 public(显示名 public≠id,写字面量 public 会静默落错空间)
|
||||
config:
|
||||
enabled: true # 重启用 Nacos 配置中心(was false):从 Nacos 读外部化配置
|
||||
namespace: public
|
||||
namespace: "" # 默认公共空间 namespaceId=空串,勿写 public(同 discovery,写读两侧须一致)
|
||||
file-extension: yaml # 配置文件格式
|
||||
# Sentinel 入口 QPS 突发保护(切片一 阶段〇 C2):流控规则从 Nacos dataId sentinel-gen-flow-rules 热加载(改即生效、不重启)。
|
||||
# 职责 = 生成入队入口速率闸(FLOW_GRADE_QPS 削洪峰),与 DB 三门(业务配额)/ C3 consumeThreadMax(dispatch 投递速率上限;真在跑并发≤15 属有界 worker 池=follow-up)三层正交。
|
||||
|
||||
@ -74,7 +74,9 @@ def register(service_host: str, service_port: int) -> None:
|
||||
|
||||
client = nacos.NacosClient(
|
||||
nacos_addr,
|
||||
namespace=os.environ.get("NACOS_NAMESPACE", "public"),
|
||||
# 默认公共空间 namespaceId=空串,勿写 public(显示名 public≠id,写字面量会静默落错空间;
|
||||
# 与 game-cloud SCA 写读两侧口径一致,Nacos v1/console/namespaces 实测默认空间 namespace="")
|
||||
namespace=os.environ.get("NACOS_NAMESPACE", ""),
|
||||
username=os.environ.get("NACOS_USERNAME", "nacos"),
|
||||
password=os.environ.get("NACOS_PASSWORD", ""),
|
||||
)
|
||||
|
||||
@ -70,7 +70,7 @@ def test_register_calls_add_naming_instance(clean_env):
|
||||
ctor.assert_called_once()
|
||||
c_args, c_kwargs = ctor.call_args
|
||||
assert c_args[0] == f"{_NACOS_HOST}:8848"
|
||||
assert c_kwargs.get("namespace") == "public"
|
||||
assert c_kwargs.get("namespace") == "" # 默认公共空间 namespaceId=空串(勿写 public,显示名≠id)
|
||||
assert c_kwargs.get("username") == "nacos"
|
||||
|
||||
# add_naming_instance:通告 IP(非绑定 0.0.0.0)+ port
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user