专业版再增强 | MSE 无缝兼容 Eureka 协议,性能提升50%-阿里云开发者社区

开发者社区> 中间件小哥> 正文

专业版再增强 | MSE 无缝兼容 Eureka 协议,性能提升50%

简介: MSE 注册配置中心专业版完全兼容了 Eureka 协议,并对其读写性能、实例容量进行了大幅优化。
+关注继续查看


作者:涌月

审核&校对:彦林、草谷、望宸

编辑&排版:酒圆


Eureka 是一款优秀的注册与发现产品,其作为 Netflix 公司重要的开源项目,已经成为 Spring-cloud-netflix 生态默认的注册中心。在过去的数年中,Eureka 为大量的中国互联网公司提供了开箱即用的注册中心服务解决方案。


但由于 Eureka 开源社区停止维护,并且在业务规模增大的时候存在性能问题,因此需要寻找一个可替代的高性能注册中心,进行平滑迁移和演进。



Eureka 的性能问题


随着业务的发展,Eureka 逐步暴露出一些性能问题。上万量级实例的频繁变更、洪水般的流量请求,即便通过部署高配服务器,也无法解决 Eureka 的性能瓶颈:


1、服务状态更新滞后:由于 Eureka 存在缓存机制,基于其搭建的微服务系统通常会出现服务状态更新滞后,30-60s 才能够获取到准确的服务实例列表;


2、同步速度慢:当业务流量大时,为了保证高可用和高性能,通常 Eureka 需要以集群模式运行。然而,Eureka 集群之间的读写同步速度相对缓慢,即在一台 Eureka 上注册实例,需要等待较长延迟之后,才能在另一台机器上查询到相关信息,导致了业务出现经常线上 Bug。


1.png


Eureka的社区问题


除了上述的性能问题外,Eureka 社区当前已经宣布停止维护(如下图),锁死在一个不发展的社区上有很高的技术风险和不确定性。


2.png


MSE注册配置中心专业版的优势


为了降低 Eureka 技术体系停止维护的不确定性,并增强 Eureka 注册中心的稳定性和高并发能力,我们首次在 MSE 注册配置中心专业版(以下简称专业版)上完全兼容了 Eureka 协议,并对其读写性能、实例容量进行了大幅优化。


某大型教育机构用户反馈,相对于开源 Eureka,专业版性能大幅提升,目前已经在其业务场景中落地。专业版的核心能力和性能表现如下:


1、多协议支持:用户使用 Eureka 注册中心的实例,完全可以使用 Nacos 协议进行发现,保证用户技术栈的多层次兼容性;


2、高性能支持:极大地优化了读写同步速度,使得基于此搭建的微服务系统具有更高的性能和易用性;根据实验室的压测数据,MSE-Nacos 下的 Eureka 注册中心的读写性能、实例容量均提升达 50%以上。


3、融入服务网格生态:通过支持 MCP 协议和 XDS 协议,服务网格生态领域已完全兼容专业版的 Eureka 协议,为 Istio 接入 Eureka 提供零侵入、高性能的微服务以及网关解决方案。


1、对比压测报告


我们对开源 Eureka 和专业版,在读写性能、容量评估上进行了压测,主要包括如下两个场景。


  • 场景1: 容量评估测试


注册尽可能多的 App 和 Instance,并维持心跳,观察注册中心的容量。测试指标包括 Instance 容量、是否发生 Full GC 以及 CPU 开销。实验机器包括3*8C16G或10*8C16G,我们进行了不同注册规模的多次压测实验。


表1.jpg


容量方面,Eureka 容量较小,3 台机器容量超过 1.5w 就会出现大量同步超时报错,频繁发生 Full GC(每分钟至少发生一次)。


经过问题定位,Eureka 在容量测试场景中,其集群间批量复制较为频繁;另外,开源 Eureka 在初次超时之后,很快会将复制请求重试,导致泛滥,这是造成 CPU 飙升接近100%的主要原因。该问题也导致了 Eureka 的横向扩展性能瓶颈。


而专业版的容量超过 Eureka,只需 9 台机器就可以支持 6w 左右的实例规模;另外,其 Full GC 的频率大大降低,CPU 使用率维持在较低水位。


  • 场景2: 读写性能 TPS 测试


经过测试发现,Eureka 在大量频繁的写操作场景中,其集群间批量复制操作更加频繁,导致大量的 Timewait 线程;另外,Eureka 在初次超时之后,很快会将复制请求重试,导致泛滥,这是造成 CPU 飙升接近100%的主要原因。其表现形式是,在 Eureka 的 CPU 打满之后,Eureka 端会出现下方的报错,每台节点的响应速度达到瓶颈。


com.sun.jersey.api.client.ClientHandlerException: java.net.SocketTimeoutException: Read timed out


而专业版采用阿里云自研的 Distro 协议,对于数据进行分片,其集群间的数据同步粒度相对于开源 Eureka 更小。因此,专业版兼容的 Eureka 集群间数据同步量相对较低,CPU 开销较小。其 TPS 提升,RT 下降,整体性能提升了约50%。下面,我们再分别从读场景和写场景,分别对专业版和 Eureka 进行比对:


表2.jpg

读场景


表3.jpg

写场景



如何将开源 Eureka 迁移至专业版


相信看到这里,你一定想早点上车,但是你接着会问,是否支持无缝迁移呢?我们针对不同的场景分别提供了对应的解决方案。


1、云上自建 Eureka 用户如何迁移?


云上自建 Eureka 用户,可以直接按照 《将Spring Cloud应用从开源Nacos迁移到MSE Nacos》平滑迁移(见文末链接)。


2、已经购买 MSE 的用户如何迁移?


对于已经购买了 MSE 注册配置中心基础版的用户,我们也提供了平滑升级至专业版的能力。可以直接通过点击“实例规格变更”,并选择“专业版”进行操作。


3.png


4.png


整个迁移过程完全平滑,业务基本无感知。升级完成之后,用户便可以在专业版上,进行高性能的 Eureka 协议服务发现与注册了。



参考链接

 《将Spring Cloud 应用从开源 Nacos 迁移到 MSE Nacos》:

https://help.aliyun.com/document_detail/263565.html


双十一大促,微服务引擎 MSE (注册配置中心和云原生网关)首购 8 折优惠!

点击下方链接,了解更多!

https://cn.aliyun.com/product/aliware/mse

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9573 0
PolarDB-X 私有协议:提升集群的性能和稳定性
PolarDB-X的私有协议作为计算节点和存储节点之间的桥梁,主要实现查询下发和结果回传等基础功能,同时针对一些常用的场景进行了特殊优化。私有协议设计时借鉴了RPC的处理思路,采用了异步化协议设计、会话连接解耦、实例级连接池、流量控制等机制,解决了大部分使用传统连接池遇到的问题,使得PolarDB-X的性能和稳定性都有所提升。
427 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2934 0
《Linux高性能服务器编程》——第1章 TCP/IP协议族 1.1 TCP/IP协议族体系结构以及主要协议
本节书摘来自华章计算机《Linux高性能服务器编程》一书中的第1章,第1.1节,作者 游双,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1484 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13274 0
C#高性能大容量SOCKET并发(七):协议字符集
原文:C#高性能大容量SOCKET并发(七):协议字符集 UTF-8 UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建。
960 0
解读PostgreSQL Oracle 兼容性之 - performance insight(性能洞察)
标签 PostgreSQL , perf insight , 等待事件 , 采样 , 发现问题 , Oracle 兼容性 背景 通常普通的监控会包括系统资源的监控: cpu io 内存 网络 等,但是仅凭资源的监控,当问题发生时,如何快速的定位到问题在哪里?需要更高级的监控: 更高级的监控方法通常是从数据库本身的
422 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11579 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
6991 0
+关注
中间件小哥
阿里中间件(Aliware)官方账号
1062
文章
51
问答
来源圈子
更多
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载