fix: avoid duplicate nacos fallback namespaces

This commit is contained in:
ZuoZuo 2026-04-22 01:44:39 +08:00
parent 07df198822
commit ebbadb2ea8

View File

@ -424,6 +424,8 @@ def build_nacos_payload() -> dict[str, Any]:
raw_services = list_services(namespace["namespaceId"])
# 这里保存当前 namespace 下所有待查询服务。
queries_by_key: dict[tuple[str, str], dict[str, str]] = {}
# 只在可见 namespace或者根本没有可见 namespace 时,才补 fallback 查询。
allow_fallback_queries = namespace["visible"] or not any(item["visible"] for item in normalized_namespaces)
# 先收 service/list 返回的服务。
for raw_name in raw_services:
@ -438,11 +440,12 @@ def build_nacos_payload() -> dict[str, Any]:
}
# 再补上 targets.json 里已知的注册服务,避免 service/list 返回空时整页丢数据。
for item in monitored_service_queries():
queries_by_key.setdefault(
(item["groupName"], item["registryName"]),
item,
)
if allow_fallback_queries:
for item in monitored_service_queries():
queries_by_key.setdefault(
(item["groupName"], item["registryName"]),
item,
)
# 逐个服务拉实例详情。
for query in queries_by_key.values():