Nacos 荣获 GLCC 优秀社区,同时 2.3.0-BETA 发布,欢迎试用

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
性能测试 PTS,5000VUM额度
简介: Nacos 荣获 GLCC 优秀社区,同时 2.3.0-BETA 发布,欢迎试用

作者: Nacos 社区


新版本发布


经过 4 个多月社区的大量贡献,Nacos 2.3.0 版本终于进入的 Beta 发布阶段,在经历了 2.2.X 的多个安全风险修复的版本后,又一次迎来了功能性上的更新版本。

Nacos 反脆弱插件

2.2.0 版本加入 ALPHA 版本的反脆弱插件后,社区经过多次重构和修改,提升抽象度和稳定性,终于在 2.3.0 版本中正式公布了 Nacos 的反脆弱插件,用于避免 Nacos 集群在大量请求和连接时导致的容量问题而引发更大规模的故障。


默认反脆弱实现插件的使用以及自定义反脆弱插件的开发可参考文档反脆弱插件[1]


Nacos 配置变更插件

Nacos 配置管理作为 Nacos 的核心功能,一直受到开发人员、运维人员和审计人员的关注,不少运维人员和审计人员向社区提出诉求,希望 Nacos 能够提供配置变更的审计、变更通知等功能;同时开发人员也希望 Nacos 提供一定的格式校验功能,避免修改配置时出现错误导致应用故障。


由于 Nacos 配置管理本身对配置内容是不感知的,且各个用户公司的审计、通知系统也各不相同,因此 Nacos 为了能够更广阔的适配各个用户的诉求,在去年的开源之夏中制定了配置变更插件的课题,希望以插件化的形式,来满足对配置变更过程的介入。


经过同学和导师长期的努力,该插件在 2.3.0 版本发布,用户可以开发自定义插件,在配置变更前和变更完成后,分别对接公司的审计系统和通知系统,并在变更前进行更多的校验操作,如格式校验,配置名字的规范化等。同时 Nacos 社区也提供了默认插件的实现,可接入 webhook 进行配置变更的通知以及导入配置的文件名校验等;详情可参考文档配置变更插件[2]


Nacos 请求参数校验

2.3.0 版本之前的 Nacos 的参数校验逻辑分散,由各类请求的处理方法单独进行校验,难以更改维护,经常出现参数校验的遗漏,参数校验的规则也没有明确统一;这使得用户使用时经常会因为一些特殊字符导致功能不符合预期或出现漏洞,甚至导致大量推送,导致带宽打满,内存占用过多,导致应用出现故障。


在 2.3.0 版本中,Nacos 明确了参数校验规则,在服务端实现了统一的参数校验逻辑并添加了参数校验层,根据校验规则对客户端向服务端发送的请求进行校验。用户可以选择开启参数校验功能,开启后 Nacos 将会对客户端向服务端发送的请求中的部分参数进行参数校验,确保参数的合法性,避免由于错误使用,导致的不符合预期以及性能问题。


详细情况可参考文档参数校验规则[3]


Nacos 能力协商

随着 Nacos 功能越来越多,版本越来越多,客户端和服务端之间的兼容性愈发重要,如果继续保持尝试性的兼容,只会兼容能力愈发的困难。因此 Nacos 社区在去年开源之夏中,发布了课题,通过增加客户端和服务端之间的能力协商机制,在客户端连接到服务端时,让连接双方知道对方分别支持的功能,在支持对应功能的情况下,开启对应功能。避免通过尝试而增加通信开销。


在 2.3.0 版本中,该能力也被集成进来,为之后 Nacos3.0 支持更多优化功能提供基础。


其他重要改动

除了上述改动,Nacos2.3.0 版本还支持了:客户端异常的 metrics、grpc 长连接的 SSL 功能、关闭开源控制台等功能,更多细节可以查看变更列表,欢迎试用:


## feature
[#5698] Support nacos control plugin.
[#8458] Support ability negotiations between server and clients.
[#8460] Support config change hook plugin.
[#10117] Support metrics for nacos client request server exception.
[#10150] Support SSL for grpc connection.
[#10223] Support auto build instance id when client request instance id is null.
[#10288] Support get more module state and switches in console.
[#10734] Support validate most of request parameters.
[#10774] Support toml format for configuration in console ui.
[#10831] Support batch deregister instances for service.
[#10971] Support disable console ui and support add guide information.
## Enhancement&Refactor
[#6819] Add page size selector in service details page.
[#8107][#9109][#10169][#10176] Enhance hint when console ui session expired for default auth plugin.
[#9085] Add the Reachability Metadata required by native-image.
[#9821] Enhance datasource plugin to make more datasource implementation easier.
[#9881] Enhance configuration page to supports folding when editing configuration.
[#10067] Enhance Windows compatibility for configuration snapshot.
[#10155] Enhance hints for grpc request when request timeout.
[#10343] Use CMS as default GC when jdk less 9.
[#10361] Refactor module switches to make only load specified module but not only close in console ui.
[#10520] Validate for namespace show name when create new namespace.
[#10521] Enhance the hints for `No DataSourceSet` error by validate datasource after construction.
[#10539] Enhance logs when opeation configuration failed.
[#10730] Link to v2 document for console ui.
[#10811] Enhance compatibility for colorful service healthy status in console ui.
[#10891] Support setting maximum number of push retries.
[#10930] Forward compatible old version secretKey for default auth plugin.
[#11129] Remove the namespace information from the node list page.
[#11231] Optimize the handleSpringBinder method in PropertiesUtil.
## BugFix
[#10056] Fix loss revision of client for distro sync.
[#10128] Fix wrong judgement in raft stateMachine.
[#10149] Fix dead lock on sending connection reset request on server over limit.
[#10271] Fix nacos-client failover switch file path.
[#10318] Fix import configuration problem.
[#10347] Fix only admin role user can register service into default namespace when enabled default auth plugin.
[#10406] Fix jraft install leader snapshot error after disconnection.
[#10427] Fix nacos client no response when handle server request with exception.
[#10464] Fix NPE when concurrent operations for client.
[#10470] Fix some missed i18n for console ui.
[#10509] Fix out data connection not be disconnect problem.
[#10548] Fix switch domain might not load snapshot after restart.
[#10556] Fix index loss for client and service in extreme scenarios.
[#10583] Fix some new API loss auth check.
[#10585] Fix selectInstances and selectOneHealthyInstance methods will not subscribe service problem.
[#10593] Fix invalid create `file:` dir under `nacos.home`.
[#10598] Fix nacos-client not random get server address when using address.
[#10606] Fix memory leak for nacos client when user create and shutdown client frequently.
[#10657] Fix NPE when using derby datasource for cluster mode.
[#10935] Fix startsWith judgement wrong when ignoreCase is true.
[#11056] Fix Batch register count size wrong, when batch register sereval time.
[#11059] Fix RPC_CLIENT_TLS_PROTOCOLS setting error.
[#11192] Fix batchRegisterInstance not recalculate revision prblem.
[#11197] Fix frequent do query service when hit protect empty.
## Dependency
[#7698] Remove httpasyncclient version dependency management to avoid version conflicts.
[#10416] Upgrade console yaml editor.
[#10648] Optimize Guava Dependency.
[#10893] Upgrade spring boot to 2.7.15.
[#11199] Upgrade grpc version to 1.57.2.


开源之夏 OSPP 2023 以及编程夏令营 GLCC 2023


经过夏天如火如荼的努力,Nacos 今年的开源之夏也接近尾声,各项目进展稳步推进,均取得了不小的进展。


开源之夏 OSPP 2023

Nacos 在 2023 年度的开源之夏[4]中,发布了 9 个项目,其中 6 个项目成功匹配同学,并基本完成了项目课题,其中不乏大量社区期待的新增功能和优化,将在后续版本中加入。


入选项目列表:

  • 客户端订阅者合并和数据选择功能
  • 为 nacos-spring-boot-starter 支持适配 spring boot 3
  • ConfigMap 到 Nacos 配置中心自动同步工具
  • 客户端可观测性指标建设
  • 支持 Nacos 注册中心的模糊订阅能力
  • 实现其他部分 xDS 协议


感谢导师和同学们的辛苦付出,也感谢主办方中科院软件所提供的优秀平台和活动。


Nacos 荣获编程夏令营 GLCC 2023优秀社区

Nacos 在 2023 年度的编程夏令营[5]申报了一个 Nacos3.0 中呼声较高的一个功能作为课题 -- 支持分布式锁。目前已在导师和同学的共同努力下,初步完成了功能,预计会在 Nacos3.0 的 Alpha 版本中在社区公布。


由于导师和同学的努力,Nacos 社区荣获 CCF Gitlink 颁发的开源编程夏令营的优秀社区奖,感谢主办方 Gitlink 为社区提供的平台和活动。



展望


2.X 后续计划

从 2021 年 3 月 2.0.0 正式版发布至今,2.X 版本已经走了接近 2 年时间,如今 2.3.0 版本发布,完成了大部分功能的插件化提炼,在之后的 2.3.X 版本中,会主要对当前版本的问题进行修复,并做出小范围的功能优化。同时对于 2.4.0 版本,会作为一个 Nacos3.0 的过度版本,对大量代码进行优化重构,在提升稳定性、健壮性的同时,提升易用性和可观测性,向 Nacos3.0 版本平稳过度。


3.0 计划

Nacos 社区同时也开启了关于 Nacos3.0的畅想和规划,Nacos 将会从统一控制面、支持国产化、存储计算分离等方向进一步演进 Nacos 的功能和架构,欢迎社区积极参与到新版本的建设中。




About Nacos

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。


Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。


最后欢迎大家扫码加入 Nacos 钉钉社区群(群号:12810027056):



相关链接:

[1] 反脆弱插件

https://nacos.io/zh-cn/docs/v2/plugin/control-plugin.html

[2] 配置变更插件

https://nacos.io/zh-cn/docs/v2/plugin/config-change-plugin.html

[3] 参数校验规则

https://nacos.io/zh-cn/docs/v2/guide/user/parameters-check.html

[4] 开源之夏

https://summer-ospp.ac.cn/org/orgdetail/ab188e59-fab8-468f-bc89-bdc2bd8b5e64?lang=zh

[5] 编程夏令营

https://www.gitlink.org.cn/glcc/2023/projects

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5月前
|
JSON Kubernetes Go
iLogtail 社区开源之夏活动来了!
加入 iLogtail 社区,不只是参与一个活动,更是拥抱一个充满无限可能的未来!
|
5月前
|
存储 Cloud Native Nacos
恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”
恭喜 Nacos 和 Sentinel 荣获 2023 开源创新榜“优秀开源项目”
|
10月前
|
存储 运维 安全
Nacos 荣获 GLCC 优秀社区,同时 2.3.0-BETA 发布,欢迎试用
经过 4 个多月社区的大量贡献,Nacos 2.3.0 版本终于进入的 Beta 发布阶段,在经历了 2.2.X 的多个安全风险修复的版本后,又一次迎来了功能性上的更新版本。
Nacos 荣获 GLCC 优秀社区,同时 2.3.0-BETA 发布,欢迎试用
|
Kubernetes Java 开发者
【测评体验】探索阿里云MSE-Nacos的开源版
本文通过体验测评,分享对阿里云MSE-Nacos的开源版的测评,重点关注其在开源选型、最佳实践和开源需求方面的表现。通过对性能、功能、控制台体验、上下游生态和社区体验的比对,以及对使用过程中遇到的问题和需求的探讨,读者可以了解阿里云MSE-Nacos开源版的优势、挑战和未来发展方向。
434 1
【测评体验】探索阿里云MSE-Nacos的开源版
|
11月前
|
Nacos 数据安全/隐私保护 开发者
《开发者评测》之注册配置中心MSE-Nacos获奖名单
注册配置中心MSE-Nacos评测活动最优奖、潜力奖、争优奖获奖名单正式公布!
138 1
|
Prometheus Cloud Native JavaScript
Nacos 2.2 正式发布,新特性真香啊!
Nacos 2.2 正式发布,新特性真香啊!
Nacos 2.2 正式发布,新特性真香啊!
|
Kubernetes 网络协议 Dubbo
《Nacos 架构与原理》| Nacos社区首本电子书免费下载
《Nacos 架构与原理》是 Nacos 电子书系列计划的第一步,并且这部分内容希望和社区共同创作,社区会推动 Nacos 电子书持续更新迭代,也欢迎更多小伙伴能加入 Nacos 社区一起创作。我们把电子书文档通过语雀公开文档像社区开放评论和更新,希望大家针对于内容共同进行校对,并且也欢迎进行投稿,把经验向社区更多个人和企业进行分享。
2243 7
《Nacos 架构与原理》| Nacos社区首本电子书免费下载
|
供应链 Kubernetes Cloud Native
Nacos 开源之夏 2022 来了
欢迎在校同学们参与 Nacos 开源之夏,社区导师手把手让你的代码被社会广泛复用,来赚取最高 12000 奖金,可推荐入职/实习你心意公司,又拿钱又成长又有价值,你还等什么呢?报名马上截止,快来参与 Nacos 开源之夏。
Nacos 开源之夏 2022 来了
|
Java Nacos Maven
配置中心新贵:Nacos,阿里开源,真香!!
本文探讨Nacos作为配置中心,如何实现不同环境(开发、测试、灰度、正式)的配置管理问题。
配置中心新贵:Nacos,阿里开源,真香!!
|
Prometheus 监控 Cloud Native
Nacos Committers 团队首亮相,发布 0.9.0 版本
223 天,发布 14 个版本,19 位 Committers,39 位 Contributors。 在宣布开源后的第 223 天,Nacos 发布了其第14个版本 - 0.9.0,该版本提升了 Nacos-Sync 的稳定性,支持 Server 功能拆分部署,以及提供了对 Python 语言体系的支持。
5793 2