ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Nacos AI Resource Search 规范深度解析:协议无关的 AI 资源检索核心

Nacos AI Resource Search 规范深度解析:协议无关的 AI 资源检索核心 Nacos AI Resource Search 规范深度解析协议无关的 AI 资源检索核心【免费下载链接】nacosan easy-to-use dynamic service discovery, configuration and service management platform for building AI cloud native applications.项目地址: https://gitcode.com/GitHub_Trending/na/nacos导读AI Resource Search Spec 定义了 Nacosai模块所拥有的协议无关的 AI 资源搜索能力它为 Nacos 中规范的 AI 资源Agent、AgentSpec、Skill、Prompt、MCP建立统一索引并通过内部应用服务向各协议适配层RAD、ARD、通用 AI Resource Search、资源专属 Search提供搜索、确定性列表、分页与聚合能力。阅读本文后你将掌握该搜索能力的启用与激活约束、查询模型与谓词语法、Client HTTP 各检索门面、索引与 Schema 设计、类型处理器契约、两阶段持久化任务的一致性机制、Readiness 与读模式、升级初始化路径以及对应的仓库源码实现位置可直接用于部署调参、二次开发与协议适配。1. 能力范围与激活方式AI Resource Search 是ai模块中可复用的逻辑能力RAD、ARD、通用 AI Resource Search 与资源专属 Search 必须共享这一能力而不是各自维护独立的索引或搜索引擎。它们的 HTTP、Java SDK、Console 及外部协议响应由对应的 API 或适配器规范定义。搜索运行时的激活由配置项nacos.ai.resource.search.enabled独立控制默认值为true。需要注意它与 ARD 的开关关系nacos.ai.ard.enabled只控制 ARD Web 上下文与协议端点不能关闭 RAD 或其他资源 API 所依赖的搜索运行时nacos.ai.ard.enabledtrue与nacos.ai.resource.search.enabledfalse的组合是非法配置服务启动时的配置校验必须显式失败禁止悄悄创建一个仅 ARD 专用的隐藏索引搜索实现不得依赖 ARD 的请求、响应、标识符、联邦、媒体类型或制品语义。上述校验在源码中有直接对应实现AiResourceSearchConfigurationValidator.java 在PostConstruct阶段读取nacos.ai.ard.enabled与nacos.ai.resource.search.enabled当ardEnabled !searchEnabled时抛出IllegalStateException同时对nacos.ai.rad.search.mode的值AUTO|INDEX|SCAN做合法性校验。相关配置键常量定义于 Constants.java。2. 所有权边界谁负责什么该规范明确了搜索能力的职责划分这是理解整个模块架构的关键AI 模块拥有规范化的搜索文档document、分块chunk与 facet 投影资源类型处理器注册表type handler registry、查询规划器Query Planner与多通道结果融合持久化索引任务与对账reconciliation关键词召回与可选的向量召回排序与确定性决胜deterministic tie-breaking可见性建议与按资源粒度的可见性强制最新标签latest-label与当前在线版本校验类型化谓词、不透明游标、编号页与全量集合聚合各资源投影生成的就绪状态readiness。协议适配层或资源专属 API 门面拥有请求解析、协议校验、类型专属的过滤器翻译、响应 DTO 与错误映射。标识符、媒体类型、制品 URL 与联邦行为只属于对应协议适配器。从源码看类型处理器注册表与查询服务均已落地AiResourceSearchTypeHandlerRegistry.java、AiResourceSearchService.java 实现了召回、排序含 RRF 融合、游标与编号页逻辑。3. 搜索模型与类型化谓词内部查询模型包含命名空间、文本、一个或多个规范化资源类型、类型化谓词、时间边界、排序顺序以及游标或编号页信息。它不得包含协议 DTO 或协议专属字段名。3.1 规范化谓词语法规范谓词至少支持以下结构field operator EXACT_ANY | EXACT_ALL | LITERAL_CONTAINS values[] caseSensitiveEXACT_ANY/EXACT_ALL单个谓词内定义 ANY任一命中或 ALL全部命中语义LITERAL_CONTAINS字面量包含语义多个谓词之间以AND组合metadata.facetKey是协议无关的 facet 路径实现必须将%、_与转义字符当作字面输入处理禁止让数据库 LIKE 通配符改变字面量包含语义类型专属门面可以固定资源类型、允许字段、大小写规则与字段权重但不得改变公共的可见性、启用enabled或当前性currentness规则既有协议过滤器可以保留兼容入口但进入 Search Core 前必须转换为规范谓词。3.2 结果与语义约束搜索结果返回的是应用 DTO 而非持久化实体可以暴露规范资源键、当前版本、展示/搜索元数据、时间戳与相关性分数数据库行 ID、索引状态与任务状态对外保持内部私有。关键正确性约束可见性、启用与当前版本校验必须发生在 totals、offset、page limit 应用之前游标使用稳定的资源锚点而非可变的列表偏移编号页返回totalCount、pageNumber、pagesAvailable与当前页条目实现可以流式越过 offset但不得在计算 total 前截断候选集通用 Search 提供跨资源类型的统一召回与排序资源专属 Search 在 Query Planner 中固定单一资源类型可应用类型专属谓词与权重当通用 Search 只指定一个资源类型时其资格、可见性与当前性结果必须与对应资源专属 Search 一致跨类型 Search禁止通过拼接已经分页的资源专属结果来实现。3.3 投影未就绪时的快照语义当有一个或多个请求的投影代际projection generation尚未READY时任何 Search 门面仍然可用它返回当前启用且已收敛的索引快照不回退到规范化全量扫描也不会让请求失败。该快照可能遗漏 Backfill 或生命周期任务尚未收敛的资源其 total、游标与编号页只描述当前已索引集合。服务端对未就绪类型发出限流诊断日志且不得记录查询内容。4. Client HTTP 搜索门面4.1 通用门面GET /v3/client/ai/resources/search该端点在源码中由 AiResourceSearchClientController.java 提供路径常量定义于 Constants.java请求参数解析由 AiResourceSearchHttpParamExtractor.java 完成。接受参数与约束参数说明与约束namespaceId省略时解析为publicquery可选最多 1024 字符空白表示确定性当前资源列表非空白表示相关性排序搜索resourceTypes可重复省略表示所有已注册可搜索类型tagsAll可重复capabilitiesAny可重复cursor不透明游标最多 2048 字符limit介于 1~100含省略默认 20每个重复过滤器最多包含 32 个非空白值未知资源类型与非法边界返回标准参数校验错误。响应为ResultAiResourceSearchResponseitems包含协议无关的资源身份、当前 Version、展示/搜索元数据、时间戳与分数无后续页时省略nextCursor。通用游标页不暴露编号页总数。4.2 资源专属门面资源端点类型专属请求字段响应AgentGET /v3/client/ai/agents/search既有 RAD 过滤器含agentNameContains、tagsAll、protocolsAny既有编号PageAgentSummary契约AgentSpecGET /v3/client/ai/agentspecs/search兼容keyword、tagsAll、pageNo、pageSizePageAgentSpecBasicInfoSkillGET /v3/client/ai/skills/searchquery、tagsAll、pageNo、pageSizePageSkillBasicInfoPromptGET /v3/client/ai/prompt/searchquery、tagsAll、pageNo、pageSizePagePromptMetaSummaryMCPGET /v3/client/ai/mcp/searchquery、tagsAll、protocolsAny、capabilitiesAny、pageNo、pageSizePageMcpServerBasicInfo每个编号门面省略pageNo/pageSize时使用共享页默认值非正数值被拒绝空白文本按稳定资源键顺序列出当前资源非空白文本走共享召回与排序路径。AgentSpec 为其既有keyword兼容契约保留字面资源名包含语义。这些门面映射与通用单类型 Search 相同的合格文档且不做分页后过滤。对应的资源专属控制器源码为 AgentSpecClientController.java、SkillClientController.java、PromptClientController.java、McpClientController.java。5. 聚合语义聚合运行在完整合格匹配集合之上而不是某一结果页。服务返回规范桶值、计数、请求桶上限之外的计数以及消费者需要时的总匹配数。协议派生的值由适配器映射例如规范资源类型桶可以被翻译成 ARD 媒体类型而无需把 ARD 媒体类型知识引入 AI 模块。6. 索引与 Schema关系型搜索索引使用协议无关的对象ai_resource_search_document文档ai_resource_search_chunk分块ai_resource_task任务这些关系对象在所有受支持的主数据源MySQL、PostgreSQL、Derby、Oracle中均可用对应 schema 文件分别为 mysql-schema.sql、pg-schema.sql、derby-schema.sql、oracle-schema.sql。ai_resource_task可复用于 AI 资源域内的持久化异步工作但不是全局 Nacos 工作流引擎每种任务类型拥有其版本化 JSON 输入与结果的 Schema。逻辑 JSON 值以 text 或 CLOB 存储而非数据源专属原生 JSON 类型。可选的 PostgreSQL 向量实现拥有独立的 pgvector schema 与ai_resource_search_embedding_pg表主数据源 schema不得创建 pgvector 扩展或 embedding 表。规范资源写入保持权威搜索文档与分块属于派生状态、可以重建。逻辑IndexProjection由一个文档、零或多个分块与一个 facet 集构成文档存储资源身份、展示信息、状态、当前版本、源摘要与稳定排序字段facet 存储精确过滤属性第一代实现可以把通用 key/value 或数组 facet 放进文档 metadata而无需立即新增物理表分块只包含用于关键词或向量召回的文字facet 不会成为独立分块、也不会被 embedding结构化文档/facet 索引与关键词索引是基础 Search 的必备向量索引是可选召回通道Agent 这类资源只填充自己拥有的 facet不得要求 Skill、Prompt、MCP、AgentSpec 增加 Agent 专属列。一个 Query Planner/Fusion 负责跨所有召回通道协调候选生成、结构化过滤、去重、分数融合、可见性、当前性与分页。当向量提供方无法下推 facet 时规划器采用有界候选策略并需证明其完备性禁止只对固定 top-K 结果做一个后置过滤却宣称拥有完整 totals 或 pages。6.1 资源类型处理器每个声明可搜索的资源类型都要注册一个协议无关的类型处理器至少具备以下语义resourceType() project(namespaceId, resourceName) - OptionalIndexProjection scan(namespaceId, cursor, batchSize) - SourcePage isCurrent(document) - boolean exists(namespaceId, resourceName) - boolean空的project结果表示资源不存在、不可发现或没有有效当前版本索引服务会删除该逻辑资源的派生文档scan仅用于 Backfill/Reconciliation按稳定资源键在有界批次内扫描isCurrent强制资源的启用、可见性、当前版本与源摘要规则处理器属于ai模块不得引用 ARD DTO、URL 或媒体类型。源码中的接口定义为 AiResourceSearchTypeHandler.javaprojectionVersion()默认返回正数1投影契约变更时递增另含resourceTypes()、project(...)、scan(...)、isCurrent(...)、exists(...)。已实现的具体处理器包括 AgentAiResourceSearchTypeHandler.java 与 AgentSpecAiResourceSearchTypeHandler.java投影构建逻辑见 AgentSearchIndexProjector.java 与 AgentSpecSearchIndexProjector.java。本规范声明的可搜索类型为Agent、AgentSpec、Skill、Prompt、MCP。如果未来某个 AI 资源不参与通用 Search其资源规范必须显式声明排除未实现的处理器不得悄悄省略已声明类型。6.2 Agent 投影每个(namespaceId, agentName)至多存在一个启用文档其resourceVersion是公共latest引用的精确在线 Version。Agent 文档至少投影目录字段展示名、描述、业务标签、提供方、图标、scope所有在线 Versions 的有序紧凑目录metadata.protocols所有在线 Versions 协议的有序去重并集metadata.artifactKinds可从精确 common-latest Version 导出的完整表示键集合metadata.projectionVersion与覆盖稳定业务事实的sourceDigest。protocols描述调用协议artifactKinds描述可返回的完整版本制品二者不可互换。Agent 名称、描述、标签、能力与示例可能产生分块scope、owner、status、protocols、artifactKinds 保持为结构化字段。Runtime Endpoints、health、Publishers、heartbeats 与 Runtime revisions 永不进入持久化搜索索引。Agent 源摘要为对以下内容做 canonical-JSON 的 SHA-256影响目录或搜索投影的 Agent 元数据、完整版本目录、common latest、最新 Version 的contentDigest、artifactKinds 与投影版本。语义无关的修改时间戳本身不会改变摘要。规范化资源身份字段与任务控制字段使用与规范资源存储一致的精确、大小写敏感比较关键词匹配通过 locale 稳定的查询归一化保持大小写不敏感且不得依赖数据源专属的大小写不敏感表排序规则。6.3 MCP 投影每个(namespaceId, mcpName)至多存在一个启用文档。其resourceName精确等于规范mcpName绝不是已废弃的mcpIdresourceVersion是公共latest引用的在线 Version。MCP 处理器从AiResource、AiResourceVersion及通过持久化 MCP 存储描述符加载的内容投影不得通过历史 MCP 操作服务、serving Manifest、最终一致 Search 或 MCP 内存 ID 索引定位源内容。公共描述、Tools、Resources、业务标签、协议与能力可进入文档凭据、敏感认证元数据、Naming 实例、health、heartbeats 与 Runtime 端点状态永不进入持久化索引。历史mcpId仅可在兼容 DTO 要求时作为响应元数据保留它不是文档身份。生命周期托管投影会递增 MCP 的projectionVersion。Backfill 重建 name-keyed 文档reconciliation 移除陈旧或孤立的 ID-keyed 文档与任务确保 MCP 永不保留两个规范搜索身份。对应实现见 McpLifecycleManagementStateService.java。7. 一致性持久化任务、租约与两阶段索引7.1 原子性与任务键替换一个逻辑资源的关系文档、分块与嵌入 facet 是原子的。关系索引与向量索引不需要分布式事务而是通过一个幂等的持久化search_index任务重新读取规范状态并收敛两个索引。任务键为任务类型、命名空间、逻辑主体资源类型资源名三者的 SHA-256包含任务类型允许其他 AI 资源工作流复用同一张表而不与搜索索引任务冲突。7.2 调度触发面规范资源生命周期事务提交成功后按(namespaceId, resourceType, resourceName)调度一个合并coalesced任务。调度失败不会回滚权威写入由指标、告警与 reconciliation 修复。以下变更会调度任务Agent 创建、目录元数据或治理变更Version 发布/上线/下线/删除common-latest 或自定义标签变更通过遗留 A2A 门面做出的规范定义变更Agent 删除。而端点注册/注销、心跳、health 变更与 Runtime revisions不调度目录索引任务。MCP 的创建/更新、发布、上线/下线/删除、启用/禁用、标签与导入变更按规范mcpName调度任务端点注册/注销、心跳、重连等 Runtime-only 变更不调度。7.3 两阶段持久化任务同一任务行拥有两个持久化阶段base_index收敛确定性关系分块与已配置的向量索引llm_enhancement替换可选的 AI 生成分块然后收敛完整资源版本的向量索引。每个阶段使用pending、processing、completed状态。初始与可重试工作都用pendingretry_count、next_execute_at、last_error区分延迟重试与新任务。成功行作为每个活资源的有界检查点保留而非任务历史。资源生命周期变更会递增任务 revision 并将行重置回base_index。关键租约语义revision 表示被调度任务的内容claiming 不会递增 revision每次成功 claim 递增独立的单调lease_token租约续期、状态迁移与超期工作释放都会比较lease_token防止过期 worker 修改或释放新 worker 的租约生命周期调度跨任意次合并更新保留未过期租约替换 revision 仅在当前 token 持有者释放租约或租约过期后才可被 claim将 enhancement 任务退回base_index同样受 revision 与 token 围栏保护防止陈旧 worker 覆盖新生命周期 revision两个阶段都在独立于轮询的执行器上续租enhancement 任务不会超出配置的 worker 并发被 claim。任务输入存于task_payload含必备schemaVersion、含资源类型与资源名的subject、options.enhancementRequested。新 revision 调度时 payload 原子替换执行期间不可变。enhancement 完成元数据存于版本化task_result。调度元数据轮询、claim、重试、租约恢复、revision 围栏、lease-token 围栏保留在专属关系列。格式错误或不支持的任务 payload 会作为含解码错误的完成检查点被隔离quarantine不得让其他到期任务失败或饥饿若对应基础索引不一致reconciliation 之后可用当前 payload 重开该行。调度截止时间使用Unix Epoch 毫秒存于next_execute_at与lease_expire_atBIGINT 列。轮询、claim、重试与租约续期必须基于同一个注入的应用时钟推导比较与截止时间不得混用 JVM 生成的 JDBC 时间戳与数据源CURRENT_TIMESTAMP。集群节点应保持系统时钟同步。7.4 Enhancement 的幂等与配置指纹enhancement 写入是幂等的AI 生成分块按类型事务性替换而非追加向量文档针对完整资源版本替换两个写入都成功后才完成任务。enhancement 配置指纹覆盖提供方端点、模型、prompt revision、输出 schema revision 与相关输出上限但绝不含 secrets。配置变更不会重排已完成资源资源生命周期任务记录调度时 enhancement 是否启用只有携带该持久请求的任务才能从base_index推进到llm_enhancement并使用 enhancement 阶段运行时的有效配置。当 enhancement 禁用时仍在base_index的任务可在无 enhancement 阶段的情况下完成已进入llm_enhancement的任务不得直接完成需创建options.enhancementRequestedfalse的新 revision 退回base_index以便移除部分写入的 enhancement 分块并先收敛基础向量索引之后启用 enhancement 不会重排该已完成资源启用但配置不完整时enhancement 阶段返回pending并带重试元数据而非视为禁用。7.5 失败重试与对账失败将当前阶段退回pending、递增retry_count并使用指数退避设置next_execute_at。周期性 reconciliation 检测缺失、部分、陈旧与孤立的 base index 数据缺失或不一致的索引按正常索引流程重建并在修复调度时 enhancement 已启用则请求 enhancement。已一致的索引不会仅因既有资源缺少 enhancement 检查点而被修复因此启用 enhancement 不会触发历史全量刷新。向量对账比较关系文档身份以及模型与分块数量。发现discovery只读取启用且已配置索引已收敛的文档。对于无在线 Version、被禁用或已删除的资源删除派生文档是正确的收敛结果而非永久重试条件。8. 资源边界与候选上限List、聚合、reconciliation 与持久化任务轮询都以有界数据库批次扫描关系状态。源扫描与编号列表使用稳定资源键 keyset以不可变行键打破排序并列。谓词、可见性与当前版本校验后列表分页只在内存保留请求页与一个 look-ahead 结果编号页只保留额外计数器不保留全部匹配项。reconciliation 不在内存保留每个规范资源名其集群范围扫描租约记录 owner 与过期时间扫描期间通过 CAS 续租仅在相同 owner 仍持有时释放。关键词与向量召回有每通道可配置候选上界。当某通道超过上界时discovery 显式失败而不是返回静默截断的结果集。运维可通过nacos.ai.resource.search.max-recall-candidates调整上界——该配置键在源码 AiResourceSearchService.java 中定义。9. Readiness 与读模式每个可搜索资源类型按(resourceType, projectionVersion)维护持久的、集群共享的 readiness。Backfill 扫描租约只标识当前扫描 owner不替代 readiness。投影代际只有满足全部以下条件才通过 CAS 标记为READY每个有效命名空间都被成功枚举且不得用public回退掩盖枚举失败资源类型的一次有界源扫描完成且每个检测到的差异都被成功调度随后的验证通过未发现未修复的缺失、陈旧或孤立文档该轮次没有遗留 pending、processing 或 retry 任务readiness 记录点名当前投影版本。READY对一个代际是粘性的短暂挂起的普通生命周期工作不会让该代际退回 unready查询当前性检查在任务收敛前排除陈旧文档投影契约变更递增投影版本并创建新的 readiness 代际。NOT READY不是API 可用性失败通用、资源专属、RAD 与 ARD Search 仍通过 Search Core 返回当前索引快照结果在 Backfill 与持久化任务收敛前可能不完整。服务端在查询路径缓存 readiness 观测、发出标识未就绪资源类型与代际的限流警告且不得记录搜索文本或结构化谓词值。一次请求绝不把部分索引与规范扫描混用索引运行时失败是显式错误与投影 readiness 不同。9.1 RAD Search 读模式矩阵RAD Search 通过nacos.ai.rad.search.modeAUTO|INDEX|SCAN选择读路径默认AUTO模式NOT READYREADY索引调用失败AUTO使用当前索引快照并警告结果可能不完整使用索引显式失败无每请求回退INDEX使用当前索引快照并警告结果可能不完整使用索引显式失败SCAN使用遗留扫描始终使用遗留扫描不适用AUTO是默认值目前与INDEX一样选择共享索引单独保留该值用于配置兼容与未来选择策略。SCAN是显式诊断与兼容路径。模式不得改变 RAD 名称、标签、协议、大小写、排序、可见性或版本目录契约。代际未就绪时索引支撑的 totals 与 pages 有意只覆盖当前已索引集合。读模式枚举在源码中对应 AgentSearchMode 的实现。10. 升级与初始化在启用nacos.ai.resource.search.enabled之前此前创建过 ARD 搜索 schema 的部署必须先初始化全部三个协议无关关系表ai_resource_search_documentai_resource_search_chunkai_resource_task。使用匹配当前数据源的 schemaMySQL/PostgreSQL/Derby/Oracle。即使已有 document 与 chunk 表含数据任务表也是必需的它存储任务类型、版本化 payload 与 result、stage、retry、lease、revision 与完成检查点且不替代任何索引表。已创建过ai_resource_search_index_task的部署必须先迁移到ai_resource_task再启用搜索既有resource_type、resource_name、enhancement_requested移入 version-1task_payloadenhancement_fingerprint移入 version-1task_resultattempt_count变为retry_countnext_retry_time变为 Unix Epoch 毫秒的next_execute_at既有retry行变为pending中间态ai_resource_taskschema 若使用next_execute_time/lease_until时间戳必须转换为next_execute_at/lease_expire_atEpoch 毫秒既有ai_resource_task表必须新增非空lease_tokenBIGINT 列默认0迁移行使用task_typesearch_index任务键按包含任务类型的方式重新生成在线升级期间必须保留既有任务意图。对于可丢弃任务状态的未发布开发部署可改为删除旧任务表并重建当前 schemareconciliation 随后修复不一致的基础索引。其他要点启用 enhancement不会修改一致的历史搜索数据周期性 reconciliation 仅在历史资源的基础或已配置向量索引确实需要修复时增强它增强其他方面一致的资源是单独的显式运维动作不启用默认向量插件的 PostgreSQL 部署无需 pgvector 对象启用的部署必须单独运行由nacos-default-ai-vector-plugin拥有的可选 schemaBackfill 与 readiness 对每个新增资源类型与投影代际运行搜索可在 readiness 之前使用当前快照随收敛自然变完整索引是可重建的派生状态不改变权威的规范资源或 Runtime Endpoint 存储也不把 Runtime 状态迁移进关系搜索表。11. 兼容性与测试覆盖内部搜索名称、持久化模型、表、配置与向量 SPI 包保持协议无关。既有 ARD Skill、Prompt、MCP 的请求、游标、排序与制品行为在共享核心扩展期间保持兼容。测试覆盖包括对应实现可在 ai/src/test/java 下检索验证关键词与向量召回、结构化 facet、类型化谓词、排序、可见性、当前版本校验、游标与编号页、超越单页的全集聚合、通用单类型与资源专属 Search 的等价性、事务性替换、两个持久化任务阶段、租约恢复、被取代 revision、版本化 task payload 与 result、任务类型隔离、时区无关的 Epoch 调度、确定性时钟的租约与重试边界、连续生命周期合并保留活跃租约、lease token 的陈旧 worker 释放围栏、幂等 enhancement 重试、配置指纹记录而不全局重排、生命周期 enhancement 意图、修复触发的对账增强而不做历史全量刷新、Agent 生命周期调度与 Runtime Endpoint 非调度、每个可搜索类型的 readiness CAS/重启/新代际、限流 NOT READY 观测、非阻塞部分快照行为以及AUTO/INDEX/SCAN矩阵。协议适配器与资源 API 则分别测试其请求语法、响应符合性与单类型跨结果。小结AI Resource Search 是 Nacos AI 资源域的共享搜索底座它以协议无关的规范谓词与索引模型统一了 Agent、AgentSpec、Skill、Prompt、MCP 五类资源的召回与排序用base_indexllm_enhancement两阶段持久化任务、revision/lease-token 双重围栏与 Epoch 毫秒调度保证了一致性用 projectionVersion 驱动的 Readiness 让新类型在 Backfill 收敛前即可安全提供当前快照。部署时请重点关注三个配置键nacos.ai.resource.search.enabled默认true勿与 ARD 开关冲突、nacos.ai.resource.search.max-recall-candidates召回候选上界与nacos.ai.rad.search.mode读模式并遵循第 10 节的表初始化与任务表迁移要求。【免费下载链接】nacosan easy-to-use dynamic service discovery, configuration and service management platform for building AI cloud native applications.项目地址: https://gitcode.com/GitHub_Trending/na/nacos创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表