崩了!Nacos升级到3.0竟不能用了,哭死!

距离 Nacos 发布 3.0 版本已经过去几个月了,中间一直在忙其他事情,所以也没来及升级体验。

刚好最近要做新项目,所以准备使用最新版升级一波,这不升级还不知道,一升吓一跳,这变化也太大了吧?

1.升级概览

Nacos 3.0 最大的升级是新增了"AI 中心",将会支持以下功能:

  1. 存量 API 可以快速构建 MCP Server: Nacos 配置存量 API 描述可以 0 代码的构建成 MCP Server,快速跟进 MCP 协议。
  2. 动态提示词 Prompt(尚未发布)。
  3. 支持 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)

小结

版本升级有风险,升级需谨慎。你究竟是要更多的功能、更快的性能,还是要稳定性?这需要根据当前业务场景来评估。我是磊哥,咱们明天再见。

本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:场景题、SpringAI、SpringAIAlibaba、并发编程、MySQL、Redis、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、JVM、设计模式、消息队列、Dify、Coze、AI常见面试题等。

相关推荐
铁蛋AI编程实战10 分钟前
通义千问 3.5 Turbo GGUF 量化版本地部署教程:4G 显存即可运行,数据永不泄露
java·人工智能·python
晚霞的不甘21 分钟前
CANN 编译器深度解析:UB、L1 与 Global Memory 的协同调度机制
java·后端·spring·架构·音视频
SunnyDays101123 分钟前
使用 Java 冻结 Excel 行和列:完整指南
java·冻结excel行和列
喵叔哟32 分钟前
06-ASPNETCore-WebAPI开发
服务器·后端·c#
摇滚侠34 分钟前
在 SpringBoot 项目中,开发工具使用 IDEA,.idea 目录下的文件需要提交吗
java·spring boot·intellij-idea
云姜.39 分钟前
java多态
java·开发语言·c++
李堇42 分钟前
android滚动列表VerticalRollingTextView
android·java
泉-java1 小时前
第56条:为所有导出的API元素编写文档注释 《Effective Java》
java·开发语言
Charlie_lll1 小时前
力扣解题-移动零
后端·算法·leetcode
zfoo-framework1 小时前
帧同步和状态同步
java