Nacos 多语言体系再添新员:首个 Rust 语言版本正式发布!

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 距离 2.1.1 版本发布2个月后,Nacos 社区又迎来一波大更新。本次发布包含了 2 个 server 版本,1 个 go-sdk 版本以及新语言 SDK 的预告。

作者:杨翊(席翁)


距离 2.1.1 版本发布2个月后,Nacos 社区又迎来一波大更新。本次发布包含了 2 个 server 版本,1 个 go-sdk 版本以及新语言 SDK 的预告。


Nacos 2.1.2


2.1.2 主要增强了控制台的 UI 效果,变更了控制台的样式,使得内容更加紧凑美观;


另外 2.1.2 对客户端大小进行了优化,大幅降低了客户端的 jar 包大小,同时还提供了纯净版 java-client,方便没有依赖 gRPC 或希望使用非 shaded 版本客户端用户使用,可以到 Java SDK[1]中查看纯净版使用方式。


最后 2.1.2 修复了许多旧版本的问题,提高了稳定性。具体变更内容可参考变更日志:


## Enhancement
[#6112] Unified derby-data variables.
[#7929] Reduce nacos-client jar size by minijar.
[#8941] Support Fuzzy Query in Authority Control--for api change.
[#8956] Internationalize product description content in nacos console.
[#8976] Create new namespace with duplicate namespace show name.
[#9091] build pure nacos-client when release.
[#9210] Naming Distro sync support revision.
## Refactor&dependency
[#8611] Close old datasource connection.
[#8650] Make cluster/report both receive and send metadata.
[#9013] refactor rpcClient and grpcClient to support set configuration.
[#9014] refactor TpsMonitorPoint.
[#9177] Upgrade org.yaml.snakeyaml version from 1.30 to 1.32
[#9325] Add switch for naming async query.
## BugFix
[#8882] Fix nacos-client 2.1.0 start error when using endpoint configuration.
[#8910] Fix calculate instance count error when using batch register.
[#8925] Fix the value of hasQueryString is always false.
[#8928] Fix the replaceAll operation is invalid for server list.
[#8931] Fix BatchInstanceData can't serialize problem.
[#8934] Fix header lost when request retrying.
[#8947] Fix the authentication/encryption plugin are not loaded on the nacos server.
[#9023] Fix corner case config dataId 'cipher-' can't be create.
[#9047] Fix ServerListMgr is not shutdown in nacos-client.
[#9060] Fix print logs for NamingTraceEvent continuously.
[#9062] Fix unsubscribe service failed problem.
[#9101] Fix the ConnectionTimeout property in the datasource connection is overwritten problem.
[#9227] Fix instance change event subscribe failed in 2.1.1 when no setting scope.
[#9230] Fix error event order for snapshot loading.
[#9269] Fix RpcClient parse ipv6 address error problem.
[#9271][#6876] Fix 'JraftServer' NPE after server exceptionally shutdown.
[#9277] Fix ClientServiceIndex not clean when service removed.
[#9305] Fix build resource with error dataId.
[#9311] Fix cache not removed when listener adding delay.
[#9323] Fix service checking problem in 1.x http openAPI.


2.2.0-BETA


2.2.0 版本是 2.X 中一个较为重要的版本,它包含了一些较为重大的改动:


首先,2.2.0 将会删除旧的冗余代码,即 1.X 模式服务发现和双写相关代码。删除后,2.2.0 版本将无法从 Nacos 1.X 服务器升级,只能从至少 2.0.0 版本升级。此更改不会影响对 1.X 客户端请求的适配,用户仍然可以使用 1.X 客户端链接 2.2.0 版本服务端。


其次,2.2.0 将会合并部分阿里巴巴编程之夏 2022 和开源之夏 2022 的课题结果,例如V2 版本的 openAPI[2]和数据源插件[3]。其他课题也将在未来版本中发布。


最后,2.2.0 增强了在 2.1.1 版本被列为 beta 功能的轨迹追踪插件和批量注册,这使它们更易于使用。关于如何开发和使用轨迹追踪插件,可以参考文末插件文档[4]进行开发。


由于这个版本中有许多重要的变化,所以社区计划做一个预发布的 BETA 版本。根据 BETA 测试的结果,下一个版本计划是 BETA2 或 GA 版本,欢迎广大用户积极下载[5]试用测试,帮助社区尽早发现问题。


注意:2.2.0-BETA 是一个预发布的 beta 版本,可能存在一些问题,请尽量避免在生产环境中使用。


2.2.0-BETA 版本具体变更内容可参考变更日志:


## feature
[#5863][#9331] Support batch register and batch deregister service.
[#8308] Add v2 openAPI for nacos 2.0.
[#8312] Support datasource plugins.
[#8481] Support track tracing plugins.
[#9366] Support Ldaps authentication.
## Enhancement
[#7930] Reomve old redundant codes about 1.x naming.
## BugFix
[#9334] Fix group_id data length different in many tables.
[#9341] Fix can not create bean ldapAuthenticationProvider.
[#9351] Fix instance count error in prometheus metrics.


多语言 SDK


Go


Nacos Go SDK v2.1.1[6]版本也在近期发布了正式版本,在 v2.1.0 带来大量新特性和改进的基础上,进一步加强了使用的稳定性,欢迎大家升级使用。


Rust


Rust 语言是最近非常如火如荼的新编程语言生态,Nacos 社区的小伙伴第一时间加入了对 rust 生态的建设,目前 nacos-rust-sdk[7]已完成基础的功能建设工作,同时实现了配置中心的核心功能,已发布 v0.1.1 版本供社区试用。


随着社区小伙伴的逐渐完善和更多愿意贡献的贡献者加入,nacos-rust-sdk 很快也能够支持注册中心的功能,发布 1.0 的正式版本,这里也欢迎更多对 rust 有兴趣,希望找个项目练手的小伙伴加入一起建设 nacos-rust-sdk。


PHP


PHP 语言作为老牌服务端编程语言,以往有不少用户询问关于 PHP 客户端的问题;虽然社区中有很多根据 openAPI 自行开发的 PHP 客户端,但一直没有功能较全的版本和愿意持续维护捐献的 PHP 客户端实现,导致社区中一直没有属于 nacos-group 的 PHP 客户端。


今年由 huangwh2014 贡献到社区的 PHP 客户端终于能够让 PHP 的项目能够接入 Nacos,享受 Nacos 所带来的各种功能。


由于该版本的 PHP 客户端[8]仍然是基于 openAPI 进行开发的,因此不具备 gRPC 的能力,希望社区的各位小伙伴积极参与项目,早日让 PHP 客户端进入 2.X 的时代。


社区


编程之夏&开源之夏


经历了 6 月-9 月的夏日,Nacos 的编程之夏和开源之夏活动也圆满结束。参与课题的9位同学也完成了他们的开源社区体验。在此期间,有些同学完成了 Nacos 新 openAPI,新插件的开发;有些同学完成了 Nacos 对 K8s,Mesh 化的探索;也有些同学深耕于 Nacos 客户端与服务端的协商机制。根据当前功能的完成程度和 Nacos 社区的版本的规划,这些重要的改动会在后续版本中逐渐与大家见面。在这里感谢参加编程之夏与开源之夏的同学和导师们的热情付出,同时也感谢阿里巴巴和中科院举办的优秀的开源活动。期待明年再见。


Committer


Nacos 社区新晋级了两位 Committer 同学。


自由开发者 onewe 同学主要优化统一了 Nacos 客户端的配置参数的加载逻辑,同时优化了 LDAP 鉴权插件和大量控制台使用内容,找到并修复了不少 Nacos 的问题。经社区 PMC 及 Committer 的投票表决,提名为 Nacos 社区的 Committer。


1.png

2.png


另外来自小米科技的 chenhao26-nineteen 同学主要完成了 Nacos 批量注册的新功能,并且使用该新功能优化了 Nacos-Sync 的同步逻辑,极大提升了 Nacos-Sync 的性能,同时也修复了不少 Nacos 的问题。经社区 PMC 及 Committer 的投票表决,提名为 Nacos 社区的 Committer。


3.png

4.png


期望更多小伙伴一起参与贡献~~


About Nacos


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


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


Nacos 社区同时也开启了关于 Nacos 3.0的畅想和规划,欢迎社区积极参与到新版本的建设中。


5.png


最后欢迎大家钉钉扫码加入 Nacos 社区群


6.jpeg


相关文档链接


[1] Java SDK

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


[2] V2 版本的 openAPI

https://nacos.io/zh-cn/docs/v2/guide/user/open-api.html


[3] 数据源插件

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


[4] 插件文档

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


[5] 下载链接

https://github.com/alibaba/nacos/releases/tag/2.2.0-BETA


[6] Go SDK v2.1.1

https://github.com/nacos-group/nacos-sdk-go/releases/tag/v2.1.1


[7] nacos-rust-sdk

https://github.com/nacos-group/nacos-sdk-rust


[8] PHP 客户端

https://github.com/nacos-group/nacos-sdk-php

相关文章
|
15天前
|
Rust 安全 Java
探索Rust语言的并发编程模型
探索Rust语言的并发编程模型
|
21天前
|
Rust 安全 区块链
探索Rust语言:系统编程的新选择
【10月更文挑战第27天】Rust语言以其安全性、性能和并发性在系统编程领域受到广泛关注。本文介绍了Rust的核心特性,如内存安全、高性能和强大的并发模型,以及开发技巧和实用工具,展示了Rust如何改变系统编程的面貌,并展望了其在WebAssembly、区块链和嵌入式系统等领域的未来应用。
|
23天前
|
Rust 安全 Java
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第27天】Rust语言以其独特的特性和优势在编程领域迅速崛起。本文介绍Rust的核心特性,如所有权系统和强大的并发处理能力,以及其性能和安全性优势。通过实战示例,如“Hello, World!”和线程编程,帮助读者快速入门Rust。
45 1
|
24天前
|
Rust 安全 编译器
编程语言新宠:Rust语言的特性、优势与实战入门
【10月更文挑战第26天】Rust语言诞生于2006年,由Mozilla公司的Graydon Hoare发起。作为一门系统编程语言,Rust专注于安全和高性能。通过所有权系统和生命周期管理,Rust在编译期就能消除内存泄漏等问题,适用于操作系统、嵌入式系统等高可靠性场景。
35 2
|
9天前
|
Rust 安全
深入理解Rust语言的所有权系统
深入理解Rust语言的所有权系统
18 0
|
15天前
|
Rust 安全 前端开发
探索Rust语言的异步编程模型
探索Rust语言的异步编程模型
|
25天前
|
Rust 安全 云计算
Rust语言入门:安全性与并发性的完美结合
【10月更文挑战第25天】Rust 是一种系统级编程语言,以其独特的安全性和并发性保障而著称。它提供了与 C 和 C++ 相当的性能,同时确保内存安全,避免了常见的安全问题。Rust 的所有权系统通过编译时检查保证内存安全,其零成本抽象设计使得抽象不会带来额外的性能开销。Rust 还提供了强大的并发编程工具,如线程、消息传递和原子操作,确保了数据竞争的编译时检测。这些特性使 Rust 成为编写高效、安全并发代码的理想选择。
17 0
|
3月前
|
Rust 安全 Go
揭秘Rust语言:为何它能让你在编程江湖中,既安全驰骋又高效超车,颠覆你的编程世界观!
【8月更文挑战第31天】Rust 是一门新兴的系统级编程语言,以其卓越的安全性、高性能和强大的并发能力著称。它通过独特的所有权和借用检查机制解决了内存安全问题,使开发者既能享受 C/C++ 的性能,又能避免常见的内存错误。Rust 支持零成本抽象,确保高级抽象不牺牲性能,同时提供模块化和并发编程支持,适用于系统应用、嵌入式设备及网络服务等多种场景。从简单的 “Hello World” 程序到复杂的系统开发,Rust 正逐渐成为现代软件开发的热门选择。
69 1
|
1月前
|
Rust 安全 网络安全
在 Rust 语言中,寻找企业上网行为管理软件的突破
在数字化企业环境中,上网行为管理软件对于保障网络安全和提升工作效率至关重要。Rust 语言凭借其安全性、高性能和并发性,为开发此类软件提供了新机遇。本文通过几个 Rust 代码示例,展示了如何实现网址检查、访问频率统计及访问控制等功能,旨在探索 Rust 在企业上网行为管理中的应用潜力。
36 0
|
3月前
|
Rust 安全 编译器
初探 Rust 语言与环境搭建
Rust 是一门始于2006年的系统编程语言,由Mozilla研究员Graydon Hoare发起,旨在确保内存安全而不牺牲性能。通过所有权、借用和生命周期机制,Rust避免了空指针和数据竞争等问题,简化了并发编程。相较于C/C++,Rust在编译时预防内存错误,提供类似C++的语法和更高的安全性。Rust适用于系统编程、WebAssembly、嵌入式系统和工具开发等领域。其生态系统包括Cargo包管理器和活跃社区。学习资源如"The Book"和"Rust by Example"帮助新手入门。安装Rust可通过Rustup进行,支持跨平台操作。
155 2
初探 Rust 语言与环境搭建
下一篇
无影云桌面