崩了!Nacos升級到3.0竟不能用了?
距離 Nacos 發布 3.0 版本已經過去幾個月了,中間一直在忙其他事情,所以也沒來及升級體驗。
剛好最近要做新項目,所以準備使用最新版升級一波,這不升級還不知道,一升嚇一跳,這變化也太大了吧?
1.升級概覽
Nacos 3.0 最大的升級是新增了“AI 中心”,將會支持以下功能:
- 存量 API 可以快速構建 MCP Server: Nacos 配置存量 API 描述可以 0 代碼的構建成 MCP Server,快速跟進 MCP 協議。
- 動態提示詞 Prompt(尚未發布)。
- 支持 A2A 協議等(尚未發布)。

2.安全升級
Nacos 2.0 中面臨的一個主要的風險就是 Nacos 所有的 HTTP OpenAPI 均通過統一的端口進行暴露,同時使用了統一的鑒權開關,這使得使用者必須在便捷性和安全性中作出取舍,導致在許多部署的環境中可能存在安全風險。
Nacos 3.0 為了解決這個問題,從 Nacos 的部署架構上作出演進,獨立控制臺部署,拆分鑒權開關,分類 API 并默認開啟控制臺及管控類 API 的鑒權:

同時配合配置加密插件,TLS 傳輸,來實現 Nacos 3.0 的零信任安全架構:

3.不再支持JDK8
Nacos 3.0 不再支持 JDK8 環境 ,它將其依賴的 JDK 版本升級至 17,并將 Spring Boot 版本升級至 3.4.1。
4.升級遇到的問題
4.1 無法啟動
因為 Nacos 3.0 升級了安全策略,取消了 nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value 和 nacos.core.auth.plugin.nacos.token.secret.key 的默認值,所以當我們使用 Nacos 3.0 啟動時會報錯。
解決方案:進入 config/application.properties 配置 nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value 和 nacos.core.auth.plugin.nacos.token.secret.key 的默認值,其中 nacos.core.auth.plugin.nacos.token.secret.key 值需要 32 位 Base64 編碼值,如果設置不符合規則啟動也會報錯。
“
nacos.core.auth.plugin.nacos.token.secret.key 為 Nacos 中生成 JWT 的秘鑰,之前使用默認值,會導致偽造 JWT Token 的問題,所以去掉了默認值。
4.2 訪問不了控制臺
當我們費了九牛二虎之力啟動了 Nacos 之后,發現使用 localhost:8848 不能訪問控制臺了。
原來是控制臺和 Nacos 核心服務分開了,控制臺變成了獨立的端口號 8080,所以使用新的地址 localhost:8080 才能訪問。
這。。。
為了讓原來的服務不報錯,所以之前的 8848 確實要給 Nacos 核心服務用,所以控制臺就得配置新的端口號了,但你設置默認 8080,是怕我調試本地程序太累嗎?(默認本地程序的端口是 8080)
小結
版本升級有風險,升級需謹慎。你究竟是要更多的功能、更快的性能,還是要穩定性?這需要根據當前業務場景來評估。























