Nacos 2.0 正式发布,性能提升 10 倍!!
3月20号,Nacos 2.0.0 正式发布了!
Nacos 简介:
一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
通俗点讲,Nacos 就是一把微服务双刃剑:注册中心 + 配置中心,由阿里巴巴于 2018 年开源。
Nacos 2.0.0
架构模型
新架构:
Nacos 2.0 架构最主要的变化就是增加了对长连接的支持,gRPC 和 Rsocket 实现了长连接 RPC 调用和推送能力。
新服务模型:
相比 1.x 有不少的变化。
依赖升级
- 升级 Nacos Api / Client 模块以支持 JDK 1.8
新特性
Nacos 2.0 新增了 13 个新特性:
- 增加 gRPC 连接核心功能
- 配置模块支持 gRPC
- 命名模块支持 gRPC
- 客户端支持 gRPC
- gRPC 客户端支持重新连接
- 支持通过 gRPC 推送数据
- 支持 gRPC 连接事件通知
- 支持连接负载平衡
- 支持 gRPC 请求认证
- 命名模块支持 Jraft 元数据操作
- 支持基本连接限制
- 支持健康检查
- 支持升级和降级
最主要的特性是新增了对 gRPC 框架的支持,gRPC 是一款开源的基于 HTTP/2 标准设计的高性能 RPC 框架,最早由 Google 开源,这也是为啥是 gRPC 名字的原因了。
增强功能
Nacos 2.0 还带来了 6 个增强功能:
- 异步执行一些耗时的操作
- SDK 多语言支持
- 增加一些度量、日志支持
- 全面支持自定义实例注册
- 支持单推当首次订阅服务时
- 支持通过阈值健康保护
重构
Nacos 2.0 的 2 个重构项:
- 命名客户端重构网络代理
- 重构和适配 v1 openAPI
Bug 修复
- 修复了 14 个 Nacos 1.x 中的 bug
测试
- 添加 Nacos 2.0 单元测试
性能提升
看下官方对 Nacos 2.0 的测试数据总结:
1)Nacos 2.0 注册性能相比较 Nacos 1.x 总体提升至少 2 倍;
2)Nacos 2.0 查询性能相比较 Nacos 1.x 总体提升至少 3 倍,单机多线程甚至提升了 10 倍;
3)Nacos 2.0 注销实例性能比较 Nacos 1.x 总体提升至少 2 倍。
规划路线图
Nacos 2.x 到 3.x 整体规划是插件化提升拓展性,提升易用性,到了 3.x 还会计划支持 Service Mesh,这毕竟是未来微服务的发展趋势。
总结
Nacos 2.x 改动还是挺大的,包括底层架构、服务模型,另外,性能也更牛叉,最高性能之处 Nacos 2.0 硬是比 1.x 提升了 10 倍,可想 Nacos 2.x 还是很香的!
另外说下 Spring Cloud Eureka,Eureka 2.0 已经停止维护了:
现在主流用的都是 Eureka 1.x,看了下仓库,1.x 也几乎也没怎么更新了,这个确实有点伤,其实市面上也有其他替代品, Nacos 就是一个不错的选择,Nacos 可以同时搞定注册中心、配置中心,开源、高性能,发展势头很猛,并且提供了 Spring Cloud 依赖集成。
注册中心:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${latest.version}</version>
</dependency>
配置中心:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>${latest.version}</version>
</dependency>
更多参考 Spring Cloud 集成文档:
更多 Spring Cloud 教程,大家可以关注公众号Java技术栈,在后台回复:spring,可以阅读栈长整理的一系列 Spring C loud 系列教程。
如果你现在使用的 Nacos 1.x,官方也提供了升级教程:
不过目前只支持 Nacos 1.x 到 Nacos 2.0.0-BETA 版本的平滑升级,暂不支持 Nacos 1.x 版本到 Nacos 2.0.0-ALPHA 正式版的平滑升级,后续会支持部分版本到该版本的平滑升级,大家可以关注后续的升级文档。
你们用的啥注册中心呢?来,一起来投票看看大家都用的啥~
最后,觉得我的文章对你用收获的话,动动小手,给个在看、转发,原创不易,栈长需要你的鼓励。
关注公众号Java技术栈,可以获取后续更多技术干货、最新技术动态推送。
参考:
https://github.com/alibaba/nacos/releases
https://my.oschina.net/u/3585447/blog/4818143
版权申明:本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重他人劳动成果和知识产权。
Nacos 2.0 正式发布,性能提升 10 倍!!的更多相关文章
- Web 应用性能提升 10 倍的 10 个建议
转载自http://blog.jobbole.com/94962/ 提升 Web 应用的性能变得越来越重要.线上经济活动的份额持续增长,当前发达世界中 5 % 的经济发生在互联网上(查看下面资源的统计 ...
- Elasticsearch Reindex性能提升10倍+实战
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484134&idx=1&sn=750249a ...
- 八年技术加持,性能提升10倍,阿里云HBase 2.0首发商用
摘要: 早在2010年开始,阿里巴巴集团开始研究并把HBase投入生产环境使用,从最初的淘宝历史交易记录,到蚂蚁安全风控数据存储,HBase在几代阿里专家的不懈努力下,已经表现得运行更稳定.性能更高效 ...
- 如何把 MySQL 备份验证性能提升 10 倍
JuiceFS 非常适合用来做 MySQL 物理备份,具体使用参考我们的官方文档.最近有个客户在测试时反馈,备份验证的数据准备(xtrabackup --prepare)过程非常慢.我们借助 Juic ...
- 一次 Spark SQL 性能提升10倍的经历(转载)
1. 遇到了啥问题 是酱紫的,简单来说:并发执行 spark job 的时候,并发的提速很不明显. 嗯,且听我慢慢道来,啰嗦点说,类似于我们内部有一个系统给分析师用,他们写一些 sql,在我们的 sp ...
- 存算分离下写性能提升10倍以上,EMR Spark引擎是如何做到的?
引言 随着大数据技术架构的演进,存储与计算分离的架构能更好的满足用户对降低数据存储成本,按需调度计算资源的诉求,正在成为越来越多人的选择.相较 HDFS,数据存储在对象存储上可以节约存储成本,但与此 ...
- 如何把Go调用C的性能提升10倍?
目前,当Go需要和C/C++代码集成的时候,大家最先想到的肯定是CGO.毕竟是官方的解决方案,而且简单. 但是CGO是非常慢的.因为CGO其实一个桥接器,通过自动生成代码,CGO在保留了C/C++运行 ...
- Databricks缓存提升Spark性能--为什么NVMe固态硬盘能够提升10倍缓存性能(原创)
我们兴奋的宣布Databricks缓存的通用可用性,作为统一分析平台一部分的 Databricks 运行时特性,它可以将Spark工作负载的扫描速度提升10倍,并且这种改变无需任何代码修改. 1.在本 ...
- 重构、插件化、性能提升 20 倍,Apache DolphinScheduler 2.0 alpha 发布亮点太多!
点击上方 蓝字关注我们 社区的小伙伴们,好消息!经过 100 多位社区贡献者近 10 个月的共同努力,我们很高兴地宣布 Apache DolphinScheduler 2.0 alpha 发布.这是 ...
随机推荐
- 2015 - 2020 最新 Linux 命令大全
# 2015 - 2020 最新 Linux 命令大全 ## VIM 命令模式(Command mode):vi 插入模式(Insert mode):i底线命令模式(Last line mode):e ...
- 如何在没有显示器的情况下,查看 Raspberry Pi 3的 IP 信息(Raspberry Pi 3 ,IP Address)
1. 如何在没有显示器的情况下,查看 Raspberry Pi 3的 IP 信息(Raspberry Pi 3 ,IP Address) 1 IP Address Any device connect ...
- React useMemo
React useMemo react hooks https://reactjs.org/docs/hooks-reference.html#usememo useCallback & us ...
- react hooks & props change & pagination current bug
react hooks & props change & pagination current bug multi tables & pigination bug & ...
- js add Struct to ArrayBuffer
使用struct-buffer为ArrayBuffer添加结构体 $ npm i struct-buffer 1. 创建结构体 import { DWORD, string_t, StructBuff ...
- C++算法代码——纪念品分组[NOIP2007 普及组]
题目来自:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1099 https://www.luogu.com.cn/problem/P1094 ...
- UDP编程详解
目录 报文格式 通信过程 UDP客户端流程 UDP客户端编码 UDP服务器流程 UDP服务器编码 参考文献 UDP与TCP的不同之处是:他的通信不需要建立连接的过程.中文名称用户数据报协议.时OSI参 ...
- Django Admin 配置和定制基本功能(基本二次开发配置)
一 列表显示页面 1. list_display,列表时,定制显示的列 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdm ...
- 小白养成记——JavaWeb之文件的上传
文件的上传推荐使用commons的fileupload组件来完成.该组件还依赖于io包,因此需要用到两个jar包: commons-fileupload-X.X.jar commons-io-X.X. ...
- C++核心篇
C++核心编程 本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓. 1 内存分区模型 C++程序在执行时,将内存大方向划分为4个区域 代码区:存放函数体的二进制代码,由操作系统 ...