大家好,我是栈长。
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 | Nacos |
配置中心 | Nacos | |
服务容错 | Sentinel | |
消息队列 | – | RocketMQ |
分布式事务 | – | Seata |
可以看到,Nacos 是 Spring Cloud Alibaba 微服务体系中最重要的成员之一,Nacos 同时扮演了注册中心和配置中心的双重角色,并且用过 Nacos 的都知道它功能和性能都非常强悍。
如今,Nacos 变得越来越强了,作为 Spring Cloud Alibaba 的主要成员之一,不管是工作需要,或者是跳槽面试,Nacos 都是必学的,它已成为了 Java 程序员必备的技术之一,所以,大家有时间还是要多更新一些技能储备。
最后,如果你想系统学习 Spring Cloud Alibaba 微服务,建议报名栈长最新出品的《Spring Cloud Alibaba 微服务课程》,一次付费,后续都提供免费更新,永久学习。
好了,今天的分享就到这里了,后续栈长也会继续关注并分享更多的 Java 技术干货,关注公众号Java技术栈第一时间推送。
参考资料:
- https://github.com/alibaba/nacos/releases/tag/2.3.0
- https://nacos.io/zh-cn/
版权声明: 本文系公众号 “Java技术栈” 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利。
近期热文推荐:
1.1,000+ 道 Java面试题及答案整理(2022最新版)
2.劲爆!Java 协程要来了。。。
3.Spring Boot 2.x 教程,太全了!
4.别再写满屏的爆爆爆炸类了,试试装饰器模式,这才是优雅的方式!!
5.《Java开发手册(嵩山版)》最新发布,速速下载!
觉得不错,别忘了随手点赞+转发哦!