面試官:如何實現(xiàn)企業(yè)級MCP分布式部署?
作為一個企業(yè)級的 MCP Server 服務,只運行在單機環(huán)境上是遠遠不夠的,我們需要讓它部署在多個機器上,并且支持分布式的調(diào)用,這其中當然還包括負載均衡和節(jié)點變更的動態(tài)感知等內(nèi)容。
那么如何讓你的 MCP 服務支持這些功能呢?接下來,我們一起來看。
實現(xiàn)方案
MCP 生產(chǎn)級別的分布式部署方案主要包含以下兩種實現(xiàn):
1.MCP Server + Nacos 注冊中心:最原始的實現(xiàn)方式,借助 Nacos 提供的健康檢查機制,加上負載均衡器實現(xiàn)了分布式部署實現(xiàn)流程如下圖所示:
2.使用 Spring AI Alibaba MCP Gateway 實現(xiàn)分布式部署:Spring AI Alibaba MCP Gateway 是基于 Nacos 提供的 MCP server registry 實現(xiàn),它為普通應用建立一個中間代理層,從而實現(xiàn)了分布式部署的效果。一方面將 Nacos 中注冊的服務信息轉(zhuǎn)換成 MCP 協(xié)議的服務器信息,以便 MCP 客戶端可以無縫調(diào)用這些服務;另一方面可以實現(xiàn)協(xié)議轉(zhuǎn)化,將 MCP 協(xié)議轉(zhuǎn)換為對后端 HTTP、Dubbo 等服務的調(diào)用。基于 Spring AI Alibaba MCP Gateway,您無需對原有業(yè)務代碼進行改造,新增或者刪除 MCP 服務(在Nacos中)無需重啟代理應用,它的執(zhí)行流程如下:
顯然第二種實現(xiàn)方式更簡單,且功能更強大,那我們來看下 Spring AI Alibaba MCP Gateway 的具體配置和代碼實現(xiàn)。
具體配置和代碼實現(xiàn)
以 Nacos 3.0 版本為例,它的實現(xiàn)步驟如下:
1.在 nacos 中進入 mcp 列表管理功能,創(chuàng)建一個 mcp server。
2.在 mcp server 中添加 tools 相關(guān)內(nèi)容,表明要暴露的 tools 信息。
3.在 tools 信息中,需要配置一個 request template,格式與 higress 目前支持的格式完全兼容。
{
"requestTemplate": {
"url": "/v3/weather/weatherInfo?key={{ .config.credentials.api_key.data }}",
"argsToUrlParam": true,
"method": "GET"
},
"responseTemplate": {
"body": "response value {{ .value }}"
}
}
4.在工程中引入相關(guān)依賴。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!-- Spring AI Alibaba MCP Gateway -->
<dependency>
<groupId>com.alibaba.cloud.ai</groupId>
<artifactId>spring-ai-alibaba-mcp-gateway</artifactId>
<version>1.0.0.3-SANPSHOT</version>
</dependency>
<!-- Spring AI Alibaba MCP Server -->
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-alibaba-starter-nacos-mcp-server</artifactId>
<version>1.0.0.3-SANPSHOT</version>
</dependency>
</dependencies>
5.配置 spring.ai.alibaba.mcp.nacos 相關(guān)信息。
spring:
ai:
alibaba:
mcp:
nacos:
server-addr: 127.0.0.1:8848
namespace: public
username:
password:
gateway:
service-names:
- echo-server
6.啟動服務之后,會讀取 nacos 中持有的 mcp server 相關(guān)配置信息,對外暴露出來,供 mcp client 進行調(diào)用。
這樣就完成了企業(yè)級 MCP 分布式部署與動態(tài)更新的問題,其中包括流量的負載均衡、節(jié)點變更動態(tài)感知等關(guān)鍵技術(shù)的具體實現(xiàn)。
小結(jié)
MCP 在面試中被問到的概率很大,因為它是熱門的 AI 技術(shù)。這其中包括 MCP 生產(chǎn)級別的使用問題,如 MCP 如何進行安全驗證?MCP 底層實現(xiàn)原理?底層實現(xiàn)協(xié)議?MCP 服務重啟后客戶端如何自動重連?MCP 如何進行企業(yè)級部署?等問題。
參考文檔
Spring AI Alibaba 官方博客