一文看懂 Higress 从 Nacos 配置到 MCP 路由的完整下发链路

发布时间:2026/10/25 18:23:58

一文看懂 Higress 从 Nacos 配置到 MCP 路由的完整下发链路 一文看懂 Higress 从 Nacos 配置到 MCP 路由的完整下发链路【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress你在 Nacos 里发布了服务、配好了 MCP 服务器网关这边却始终 404。Higress一个把 AI 网关能力做进云原生网关的项目的配置下发到底走了哪几步哪一步断了请求就到不了后端。这篇文章就沿着这个问题往下挖。 认知锚点Higress 是个翻译官Higress 干的活一句话站在 Nacos 这类注册中心和 Envoy 之间当翻译官。它从 Nacos 拉取服务注册信息和 MCP 服务器配置翻译成 Istio 语法的 ServiceEntry、VirtualService、DestinationRule分别描述服务是谁、走哪条路由、用什么流量策略再经 xDS控制面向数据面下发配置的协议推到 Envoy。三个组件里你只需要盯着 ControllerConsole 管配置录入Gateway 只管转发真正的转换逻辑全在 registry/nacos/mcpserver/watcher.go 这条线上。 机制深挖一份配置的三跳网关启动后谁在盯着 Nacos一句话结论定时轮询兜底变更监听提速。Run()一进来先全量拉一次然后每 30 秒可配最低 10 秒再拉一次ticker : time.NewTicker(time.Duration(w.NacosRefreshInterval)) err : w.fetchAllMcpConfig() if err ! nil { mcpServerLog.Errorf(first fetch mcp server config failed, ...) } else { w.Ready(true) }轮询只负责发现。fetchAllMcpConfig()用 registry/nacos/mcpserver/client.go 里的configClient分页搜索mcp-server-versions组下所有*mcp-versions.json新出现的 dataId 会调用ListenToMcpServer()订阅之后 Nacos 一推变更回调mcpServerListener立刻开始转换不用等下一个 30 秒。反过来Nacos 里删掉的配置轮询会发现并CancelListenToServer取消订阅。拉到的配置到底变成了什么一句话结论一个 dataId 换出一套 Istio 资源再丢进内存缓存。processServerConfig()是转换的核心关键四行serviceEntry : generateServiceEntry(serviceHost, services) virtualService : w.buildVirtualServiceForMcpServer(mcpServer, dataId, ...) destinationRule : generateDrForMcpServer(serviceHost, mcpServer.Protocol) w.cache.UpdateConfigCache(gvk.ServiceEntry, dataId, se, false)ServiceEntry 装的是 Nacos 里的健康实例 IP 列表VirtualService 生成/{server-name}这样一条路由指向上一步的服务DestinationRule 定流量策略。如果服务器是 HTTP 协议processToolConfig()还会把工具列表、credentials 打包成 WasmPlugin 规则——MCP 的tools/list、tools/call请求就是由这个 wasm 插件处理的。这些资源不写 K8s而是全部落到 registry/memory/cache.go 的内存 store 里由UpdateService()触发 xDS 推送。整个 Higress Core 内部长这样SSE 长连接为什么不会被换到别的后端MCP 常用 SSEServer-Sent Events一种单向长连接连接是有状态的换后端等于推倒重来。Higress 在生成 DestinationRule 时按协议分情况case provider.McpSSEProtocol: return v1alpha3.DestinationRule{ Host: host, TrafficPolicy: v1alpha3.TrafficPolicy{ LoadBalancer: ...ConsistentHash{...UseSourceIp: true...}SSE 服务挂上源 IP 一致性哈希同一个客户端永远落到同一台后端HTTPS 服务则自动补一条 TLS 策略。协议差异在这里被抹平写配置的人不用关心。 跑起来看看三步本地验证git clone https://gitcode.com/GitHub_Trending/hi/higress cd higress helm install higress -n higress-system higress.io/higress --create-namespace然后照着 samples/mcp/ 里的环境脚本搭一个带 Nacos 的 demokind 集群加几个 yaml脚本都在samples/mcp/environment/scripts/下。MCP 端点路径是/{base-path}/{mcp-server-name}base path 在higress-system命名空间higress-configConfigMap 的mcpServer段配置。验证下发是否到位最快的是看日志kubectl -n higress-system logs deployment/higress-controller | grep subscribe mcp server success看到 dataId 出现说明监听、转换、缓存这条链路已经跑通再curl -N打一下 SSE 端点就能拿到工具列表。收个尾回到开头那个 404它只可能断在三跳之一——没订阅上看subscribe日志、协议不支持supportedProtocols白名单、或者资源没进缓存看UpdateConfigCache日志。断点基本都在这条链路上定位起来不用满仓库翻。想继续往下走从 docs/architecture.md 的 Discovery 和 Config Controller 部分读起再回头看这份 watcher会顺很多。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/24 9:49:54

教育行业低代码平台,如何选才不踩坑

导语:数字化转型浪潮下,高校、职校和培训机构纷纷搭建内部管理系统,但定制开发周期长、成本高,传统SaaS又难以满足个性化需求。低代码平台看似是“标准答案”,但真正落地时,不少院校却陷入了“演示很美好&a…

2026/10/24 7:35:41

SpringBoot实战:高校食堂自助点餐系统从设计到部署全流程

在实际高校食堂运营中,高峰时段排队拥挤、人工点餐效率低下、支付方式单一以及后厨备餐信息滞后是普遍存在的痛点。一个基于SpringBoot的自助点餐系统,能够让学生通过手机或食堂终端自主完成浏览菜单、下单、支付,并将订单实时推送至后厨&…

2026/10/25 5:14:45

G-Helper 自定义风扇曲线:5 分钟让 ROG 笔记本降噪并控温

G-Helper 自定义风扇曲线:5 分钟让 ROG 笔记本降噪并控温 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook,…

2026/10/25 18:19:57

长任务还活着吗:用进展租约区分卡住与依赖变慢

一个任务每秒上报心跳,十分钟没完成任何步骤。另一个任务正在等待供应商生成视频,三分钟没有新输出,却仍在预期时长内。只凭“几秒没动静就重启”,会把这两种情况混在一起。 活着、前进、拥有写权限 我会分别记三件事&#xff1…

2026/10/25 18:19:57

Token 预算不能靠本地计数器:预占、核销和并发超额怎么处理

如果两个网关各自看到“今天还剩 100 元”,同时放出一笔 80 元请求,本地计数器都没有错,全站预算却已经失守。Token 计数能帮助估算,货币预算还需要一份跨请求的账。 三个账户,一笔请求 把预算拆成可用、预占和已结算…

2026/10/25 18:19:57

发布冻结期间,什么改动仍然值得做?

发布冻结并不意味着所有改动风险相同。修复可公开利用的漏洞,和调整首页模型路由权重,都叫改动,但延后的代价、验证手段和撤回能力差别很大。小团队更需要一张能帮助判断的申请,而不是一句“谁也别动”。 冻结的是变更入口 Goog…

2026/10/25 18:19:57

Sentry 映射到源码以后,还缺什么才能判断根因?

告警里的 app.js:1:8421 映射到了 price.ts:42,排障只前进了一步。那一行可能是读取失败的地方,真正的问题可能来自上游响应、旧缓存、错误状态顺序,或另一次部署的产物错配。 Source map 解决生成代码与源代码位置的关联。AST 可以帮助理解…

2026/10/25 18:19:57

GBD数据库疾病负担预测:R语言BAPC模型完整流程与避坑指南

简介:一份用于全球疾病负担(GBD)数据库贝叶斯年龄-时期-队列(BAPC)分析的R包资源,主要面向公共卫生研究人员和数据爱好者,帮助完成疾病发病率和死亡率的趋势分解与短期预测。压缩包内含41个文件…

2026/10/25 18:14:56

GitHub 热榜项目日榜拆解:TaoToken 统一 Key 接入热门 AI 工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑