大家好,我是栈长。

Nacos 2.3.0 前几天正式发布了,新增了不少实用性的新功能,真是史上最强版本。

Nacos 2.3.0 还真是一个比较重要的大版本,因为它涉及了太多重大更新,今天栈长给大家来解读下。

Nacos 先扫个盲:

Nacos 一个用于构建云原生应用的动态服务发现、配置管理和服务管理平台,由阿里巴巴开源,致力于发现、配置和管理微服务。

说白了,Nacos 就是充当微服务中的的注册中心和配置中心。

推荐一个开源免费的 Spring Boot 实战项目:

https://github.com/javastacks/spring-boot-best-practice

Nacos 2.3.0 新特性

1. 反脆弱插件

Nacos 2.2.0 版本开始加入反脆弱插件,从 2.3.0 版本开始正式转正可用。

Nacos Control Plugin ,即反脆弱插件,即防止服务端变得脆弱,它的主要用途是保护 Nacos 服务端避免出现大规模故障,就算在高压情况下也能快速拒绝请求,防止过多的资源访问导致服务端资源耗尽引起的大面积不可用。

反脆弱插件的具体实现策略就是,当访问服务端的某种资源的频率或次数达到一定程度时,则限制其访问。

Nacos 支持通过 SPI 的方式注入反脆弱相关插件,并支持在 application.properties 配置文件中配置一个反脆弱插件的实现,SPI 机制的灵活性可以大大增加了反脆弱插件的扩展灵活性,这个机制也贯穿了阿里系开源框架。

2. 服务端及客户端间的能力协商机制

我们都知道,Nacos 分为服务端和客户端,随着 Nacos 版本越来越高,功能越来越多,不同版本间对新增功能支持程度也会很大的差异。

当版本和功能越来越多的时候,如果版本不一致,两者的通信可能存储一定的兼容性问题。比如,服务端有这个功能,而客户端的版本不支持,这样就会产生兼容性问题,也会带来多余和通信开销。

在 Nacos 2.3.0 之前的版本中,Nacos 中的很多能力都是根据版本号来判断的,可读性、可维护性和可扩展性都很差。所以,Nacos 2.3.0 新增了一个客户端和服务端之间的能力协商机制。

这个能力协商机制,可以让连接的双方都知道对方能支持的所有功能,以便双方都开启对应的功能并进行相应的操作,避免盲目的试错带来的系统性问题及额外开销。

3. 配置变更插件

Config Change Plugin,即配置变更插件,可用于 Nacos 配置中心能在配置发生变更时,通知一些特定系统,比如,可用于发送配置变更记录、变更提醒及警告、审计等功能等。

在 Nacos 2.3.0 之前的版本中,Nacos 只能通过模拟客户端订阅配置的方式实现,这种方式存在许多的局限性。所以,Nacos 2.3.0 正式推出了 Nacos 配置变更插件。

该插件也支持通过 SPI 的方式注入配置,也支持用户自定义配置变更插件,可以对配置变更前,和变更完成后分别执行一些自定义逻辑,如格式校验,白名单校验,webhook 通知等,相比之前的方式要更强大、更灵活。

4. 更多新特性

Nacos 2.3.0 还新增了以下几个重要特性:

  • 支持通过 gRPC 注册或注销持久化实例。
  • 支持 gRPC 使用 SSL 连接。
  • 支持 Nacos 客户端请求服务器异常指标。
  • 支持当客户端请求实例 ID 为空时自动创建 ID。
  • 支持在控制台中获取更多模块状态和开关。
  • 支持验证大多数的请求参数。
  • 支持在控制台 UI 中配置 toml 格式。
  • 支持批量注销服务实例。
  • 支持禁用控制台 UI 并添加引导信息。

我就不一一介绍了,感兴趣的都可以关注一下这些特性。

Spring Cloud Alibaba & Nacos

现在 Spring Cloud Alibaba 微服务技术非常火啊,但早期的许多 Spring Cloud Netflix 相关组件,比如 Eureka 2.x、Ribbon、Zuul、Hystrix…等这些,它们都早已停止维护更新了,属于老破旧技术了,我劝大家别再浪费时间学这些了。

鉴于 Spring Cloud 各种组件的停止维护,学习 Spring Cloud Alibaba 是目前最正确的姿势:

  • Spring Cloud Alibaba 基于 Spring Cloud 构建,提供了对 Alibaba 组件的封装而已,比如:Nacos、Sentinel 等,其最顶层的抽象还是 Spring Cloud,所以学习 Spring Cloud Alibaba 就是学习 Spring Cloud。
  • Spring Cloud Alibaba 作为 Spring Cloud 的官方顶级项目,也是国内最强微服务框架及事实上的标准,没有之一。

Spring Cloud Alibaba 最新技术栈如下:

组件 Spring Cloud Netflix Spring Cloud Alibaba
注册中心 Eureka 1.x
Eureka 2.x(停止维护)
Nacos
配置中心 Archaius(停止维护) Nacos
服务容错 Hystrix(停止维护) Sentinel
消息队列 RocketMQ
分布式事务 Seata

可以看到,Nacos 是 Spring Cloud Alibaba 微服务体系中最重要的成员之一,Nacos 同时扮演了注册中心和配置中心的双重角色,并且用过 Nacos 的都知道它功能和性能都非常强悍。

如今,Nacos 变得越来越强了,作为 Spring Cloud Alibaba 的主要成员之一,不管是工作需要,或者是跳槽面试,Nacos 都是必学的,它已成为了 Java 程序员必备的技术之一,所以,大家有时间还是要多更新一些技能储备。

最后,如果你想系统学习 Spring Cloud Alibaba 微服务,建议报名栈长最新出品的《Spring Cloud Alibaba 微服务课程》,一次付费,后续都提供免费更新,永久学习。

好了,今天的分享就到这里了,后续栈长也会继续关注并分享更多的 Java 技术干货,关注公众号Java技术栈第一时间推送。

参考资料:

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论(1)