炸裂:SpringAI新版發布,終于支持斷線重連了!
盼星星盼月亮,Spring AI 新版 1.1.0-M1(1.1.0 里程式版本)終于支持 Steamable HTTP 了,也就意味著 Spring AI 的 MCP 服務終于支持自動斷線重連了。
1.SteamableHTTP
定義:Streamable HTTP 是基于標準 HTTP 協議的流式數據傳輸模式,允許客戶端或服務器在數據完全生成前,分塊(Chunk)傳輸數據,實現“邊生成、邊傳輸、邊使用”的實時通信效果。它不是新協議,而是對 HTTP 的優化用法,結合了分塊傳輸、連接復用、斷線重連等特性。
2.SteamableHTTP和SSE
SSE 是 Spring AI 此次新版發布之前主要使用的通訊協議,是一種基于 HTTP 協議的 服務器向客戶端單向推送數據 的技術,允許服務器在建立連接后 隨時向客戶端發送實時更新,無需客戶端反復發起請求。它是 HTML5 標準的一部分,設計簡單,適合需要實時通知但無需雙向通信的場景。
SSE 和 Steamable HTTP 的主要區別如下:
| 維度 | SSE | Streamable HTTP |
|---|---|---|
| 靈活性 | ? 僅單向通信,格式受限 | ? 支持雙向、多格式、斷點續傳 |
| 性能 | ? 高并發時資源占用高 | ? 高并發下更高效 |
3.使用SteamableHTTP
Steamable HTTP 在新版中的使用如下。
先添加新版依賴:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webflux</artifactId>
<version>1.1.0-M1</version>
</dependency>
配置使用 Steamable 協議:
spring:
ai:
mcp:
server:
protocol: STREAMABLE # 配置使用 Steamable 協議
客戶端也添加對應的新版本依賴:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-client-webflux</artifactId>
<version>1.1.0-M1</version>
</dependency>
之后配置 MCP 服務器地址就可以直接調用了:
spring:
mcp:
client:
streamable-http:
connections:
weather-server:
url: http://localhost:10086/api # 指向剛才啟動的 MCP Server
其他實現代碼不變。
4.視頻實現演示
https://www.bilibili.com/video/BV1xYHez5EEM/
小結
Spring AI 之前版本最被人詬病的就是不支持 Streamable HTTP,所以在實現自定義 MCP 服務器端時很麻煩,需要自己手動實現斷線自動重連功能。但現在新版本支持之后我們就可以非常方便的實現 MCP 服務了,大家可以動手試一下。
本文已收錄到我的技術小站 www.javacn.site,其中包含的內容有:Spring AI、LangChain4j、Dify、Coze、Spring AI Alibaba、智能體(AI Agent)、MCP、Function Call、RAG、向量數據庫、Prompt、多模態、向量數據庫、嵌入模型、AI 常見面試問題等內容。

浙公網安備 33010602011771號