首页 > 其他分享 >spring cloud 上nacos理解

spring cloud 上nacos理解

时间:2023-07-12 10:22:40浏览次数:27  
标签:spring nacos Eureka AP 实例 client eureka cloud

erueka 和 nacos 的区别:

1、CAP理论的区别;2、连接方式不同;

3、服务异常剔除区别;

4、操作实例方式不同;

5、自我保护机制不同。

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

 

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,nacos,Eureka,AP,实例,client,eureka,cloud
From: https://www.cnblogs.com/yishuo/p/17546828.html

相关文章

  • Spring AOP、拦截器、过滤器的区别
    一:区别与概念   Filter过滤器:拦截web访问url地址。   Interceptor拦截器:拦截以.action结尾的url,拦截Action的访问 (控制层Controller)。   Spring AOP拦截器:只能拦截Spring管理Bean的访问(业务层Service)。   概念:   SpringAOP:   SpringAOP,......
  • SpringBoot 如何处理 CORS 跨域?
    Springboot跨域问题,是当前主流web开发人员都绕不开的难题。但我们首先要明确以下几点跨域只存在于浏览器端,不存在于安卓/ios/Node.js/python/java等其它环境跨域请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了。之所以会跨域,是因为受到了同源策略的限......
  • SpringBoot 集成和使用 Dubbo
    Dubbo是阿里开源的产品,采用二进制通信,相比OpenFeign的http通信,具有性能优势,可以轻松集成到SpringBoot和SpringCloud中使用,对于性能要求比较高的场景,使用比较广泛。早期的Dubbo都采用Zookeeper作为注册中心,现在基本上大家都使用Nacos作为注册中心,毕竟Dubbo和Nac......
  • Spring整合MyBatis
     主要是把xml中的mysql数据源、mysql映射还有SqlSessionFactoryBean工厂给放到bean类中    还有把Dao使用@Autowired注解注入到Service中 包 下面是全部的代码(从上到下)这是sql数据源配置 这里面是工厂和映射 这是核心配置 Dao Service业务逻辑层......
  • springcloud -分布式事务解决方案 seata 分布式id生成方案
     使用三个服务来进行演示三个服务的共同部分 pom相关依赖 <!--nacos--> <dependency>   <groupId>com.alibaba.cloud</groupId>   <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!--seata-->......
  • 基于java+springboot的宠物商店、宠物管理系统
    该系统是基于java+springboot开发的宠物商城,用户可以登录该网站购买宠物。该系统是给师弟开发的课程作业。运行过程中的问题,可以咨询github或留言。演示地址前台地址:http://pet.gitapp.cn后台地址:http://pet.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123源......
  • 基于java+springboot的旅游信息网站、旅游景区门票管理系统
    该系统是基于java+springboot开发的旅游景区门票管理系统。是给师弟开发的大四实习作品。学习过程中,遇到问题可以咨询github作者。演示地址前台地址:http://travel.gitapp.cn后台地址:http://travel.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123源码地址htt......
  • 基于java+springboot的家教预约网站、家教信息管理系统
    该系统是基于java+springboot开发的家教预约网站。是给师妹开发的实习作品。学习过程中,遇到问题可以在github咨询作者。演示地址前台地址:http://jiajiao.gitapp.cn后台地址:http://jiajiao.gitapp.cn/admin后台管理帐号:用户名:admin123密码:admin123源码地址https://git......
  • spring中的设计模式
    视频资料最后三分钟:https://www.bilibili.com/video/BV1Us4y167cN/?spm_id_from=top_right_bar_window_dynamic.content.click&vd_source=46d50b5d646b50dcb2a208d3946b1598......
  • 基于java+springboot的求职招聘网站-求职招聘管理系统
    该系统是基于java+springboot开发的求职招聘网站、网上招聘管理系统、网上人才招聘系统、毕业生求职招聘系统、大学生求职招聘系统、校园招聘系统、企业招聘系统。是给师弟开发的毕业设计。大家学习过程中,遇到问题可以咨询作者vx(lengqin1024)演示地址前台地址:http://job.gitap......