erueka 和 nacos 的区别有哪些

erueka 和 nacos 的区别有:1、CAP理论的区别;2、连接方式不同;3、服务异常剔除区别;4、操作实例方式不同;5、自我保护机制不同。CAP理论中C代表一致性,A表示高可用,P代表分区容错性。eureka只支持AP,nacos支持CP和AP两种。

erueka 和 nacos 的区别有哪些-Worktile社区

1、CAP理论的区别

CAP理论:C一致性,A高可用,P分区容错性。eureka只支持AP,nacos支持CP和AP两种。

nacos是根据配置识别CP或AP模式,如果注册Nacos的client节点注册时是ephemeral=true即为临时节点,那么Naocs集群对这个client节点效果就是AP,反之则是CP,即不是临时节点

 #false为永久实例,true表示临时实例开启,注册为临时实例

 spring.cloud.nacos.discovery.ephemeral=true

2、连接方式不同

nacs使用的是netty和服务直接进行连接,属于长连接。

eureka是使用定时发送和服务进行联系,属于短连接。

3、服务异常剔除区别

eureka:

Eureka client在默认情况每隔30s想Eureka Server发送一次心跳,当Eureka Server在默认连续90s秒的情况下没有收到心跳, 会把Eureka client 从注册表中剔除,在由Eureka-Server 60秒的清除间隔,把Eureka client 给下线

EurekaInstanceConfigBean类下

private int leaseRenewalIntervalInSeconds = 30;  //心跳间隔30s

private int leaseExpirationDurationInSeconds = 90;  //默认90s没有收到心跳从注册表中剔除

EurekaServerConfigBean  类下

private long evictionIntervalTimerInMs = 60000L; //异常服务剔除下线时间间隔

也就是在极端情况下Eureka 服务 从异常到剔除在到完全不接受请求可能需要 30s+90s+60s=3分钟左右(还是未考虑ribbon缓存情况下)

nacos:

nacos client 通过心跳上报方式告诉 nacos注册中心健康状态,默认心跳间隔5秒,

nacos会在超过15秒未收到心跳后将实例设置为不健康状态,可以正常接收到请求

超过30秒nacos将实例删除,不会再接收请求

4、操作实例方式不同

nacos:提供了nacos console可视化控制话界面,可以对实例列表进行监听,对实例进行上下线,权重的配置,并且config server提供了对服务实例提供配置中心,且可以对配置进行CRUD,版本管理

eureka:仅提供了实例列表,实例的状态,错误信息,相比于nacos过于简单

5、自我保护机制不同

Eureka保护方式:当在短时间内,统计续约失败的比例,如果达到一定阈值,则会触发自我保护的机制,在该机制下,Eureka Server不会剔除任何的微服务,等到正常后,再退出自我保护机制。自我保护开关(eureka.server.enable-self-preservation: false)

Nacos保护方式:当域名健康实例 (Instance) 占总服务实例(Instance) 的比例小于阈值时,无论实例 (Instance) 是否健康,都会将这个实例 (Instance) 返回给客户端。这样做虽然损失了一部分流量,但是保证了集群的剩余健康实例 (Instance) 能正常工作。

延伸阅读:

什么是Spring Cloud?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量非常多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开发者来说,名列前茅类子项目就已经足够使用。

文章标题:erueka 和 nacos 的区别有哪些,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37832

(8)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月12日 下午4:39
下一篇 2023年2月12日 下午4:42

相关推荐

  • 台湾的编程术语叫什么

    台湾的编程术语主要以 1、繁体中文 、2、英文 为主,在这两种语言的使用上,它们各有侧重。繁体中文经常被应用于教育和官方文件中,以便更好地与本地文化和语言环境融合。其中,繁体中文的使用在台湾编程界占据了一席之地。它不仅仅是因为文化上的偏好,而且还因为在国际编程社群中,英文已经成为一种普及的交流语言。…

    2024年4月27日
    2000
  • 高三学编程看什么好

    高中生学习编程首先应该关注编程逻辑和基本概念的建立,在此基础上可以拓展到特定的编程语言学习。对于高中生来说,Python通常是推荐的初学语言,因为其语法简单,易于理解,同时在数据科学、网络开发、人工智能等领域都有广泛应用。另外,接触HTML和CSS也有助于学生快速了解网页结构,为深入学习前端开发奠定…

    2024年4月27日
    1700
  • 学电脑编程需要什么配置

    学习电脑编程不仅需求了解基础概念与逻辑思维能力,还需要一台性能合适的计算机。以下是推荐的计算机配置:1、处理器性能要强大;2、内存容量要数据;3、固态硬盘的速度要快;4、显示器分辨率要高。 对于内存容量,推荐最少拥有8GB RAM;对于进行更高阶的开发工作,如游戏开发或者大数据处理,16GB或更高的…

    2024年4月27日
    2100
  • Python的解释器种类以及相关特点

    Python 是一种高级编程语言,主要有两种执行 Python 代码的方式:解释执行和编译执行。解释执行是逐行读取并解释代码,而编译执行则是将代码转换成机器码后再执行。Python 的解释器种类繁多,本文将对 Python 解释器的种类及其特点进行详细讲解。 CPython CPython 是 Py…

    2023年3月2日
    57800
  • 什么编程语言适合笨人看

    学习编程对初学者而言,选择合适的编程语言极为关键。对于初学者,推荐的编程语言有: 1、Python,2、JavaScript,3、Ruby。 Python因其简洁的语法和强大的社区支持,被广泛认为是最适合初学者的编程语言之一。其语法接近自然语言,使得新手更易于理解和编写代码。Python的应用范围广…

    2024年4月27日
    1800
  • 从锁的类别上分MySQL都有哪些锁

    MySQL的锁有三种类别:1. 表级锁:包括表共享锁和表独占锁;2. 行级锁:包括共享锁和排他锁;3. 页面锁。表级锁中表共享锁允许一个事务读取一张表,同时阻止其他事务对该表进行写操作。表独占锁阻止其他事务对表进行读写操作,通常用于对整个表的操作如删除表。页面锁定是MySQL中InnoDB存储引擎的…

    2023年7月12日
    78500
  • 黑客编程用什么程序

    摘要 在黑客编程中,使用多种程序对攻击目标进行分析与入侵是常见的做法。1、KALI LINUX 是其中最受欢迎的操作系统,它提供了大量的工具和资源,尤其是在网络安全和渗透测试方面。比如,Metasploit框架,作为一款功能强大的渗透测试工具,它内置于Kali Linux中,可以用于开发和执行针对远…

    2024年4月27日
    2200
  • 小孩什么时候学编程好

    是的,小孩在7-10岁之间开始学习编程是最佳时期,原因在于此阶段孩子的逻辑思维开始迅速发展,而编程能够有效促进逻辑思维和问题解决能力的提升。在这个阶段,孩子对新鲜事物充满好奇心,而且他们通常拥有较好的记忆力和学习能力,这使他们能够相对容易地吸收编程的基本概念和技能。此外,学习编程不仅仅是为了成为程序…

    2024年4月26日
    1900
  • 什么语言是编程未来

    编程未来将受多种编程语言共同影响,主要包括1、Python、2、JavaScript、3、Go、4、Kotlin。其中,Python 凭借其简洁和高效在未来编程语言的竞争中占据先机。Python语言以其广泛的应用范围从数据分析到人工智能和简单的易用性,赢得了全球开发者的喜爱。其丰富的库和框架如Num…

    2024年4月26日
    2000
  • 怎么编写测试用例

    编写测试用例的流程:1、需求分析;2、提取测试点;3、测试用例编写;4、测试用例评审。需求分析分为业务需求、用户需求和功能需求,业务需求关注系统是否满足业务。 1、需求分析 2、提取测试点 测试点是针对软件所列出的功能各个情况的梳理在某种程度上来说,他是功能模块的细化,但是又比写出的用例要粗糙,更像…

    2023年1月31日
    73600

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部