当前位置: 首页 > news >正文

nacos和eureka的区别

nacoseureka的区别

  • Eureka是什么
    • Eureka详解
  • Nacos是什么
    • Nacos详解
  • NacosEureka的区别
    • CAP理论
    • 连接方式
    • 服务异常剔除
    • 操作实例方式
    • 自我保护机制

Eureka是什么

Eureka Spring Cloud 微服务框架默认的也是推荐的服务注册中心,
Netflix公司与2012将其开源出来,Eureka基于REST服务开发,主要用于实现AWS云的中服务定位,以实现中间层服务器的负载均衡和故障转移,遵循着CAP理论中的A(可用性)P(分区容错性)

Eureka详解

一个Eureka中分为eureka servereureka clint,其中eurka server是作为服务的注册与发现中心,eureka client既可以作为服务的生产者,又可以作为服务的消费者

Eurak2.0之后已经停止开源

Nacos是什么

Nacos是阿里巴巴最新开源的项目,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。更敏捷和容易地构建、交付和管理微服务平台。

Nacos支持基于DNS和基于RPC的服务发现,动态配置服务(配置中心),动态DNS服务

Nacos详解

Provider APP:服务提供者
Consumer APP:服务消费者
Name Server:通过VIPVirtual IP)或DNS的方式实现Nacos高可用集群的服务路由
Nacos ServerNacos服务提供者,里面包含的Open API是功能访问入口,Conig ServiceNaming Service Nacos提供的配置服务、命名服务模块。Consitency Protocol是一致性协议,用来实现Nacos集群节点的数据同步,这里使用的是Raft算法(EtcdRedis哨兵选举)
Nacos Console:控制台

Nacos的实现原理
1.客户端providernacos serveropen api发起调用,把自己的服务地址链接,服务名称注册上去
2.nacos server与服务提供者provider建立心跳机制,用来检测服务状态
3.服务消费者consumer查询出提供服务实例列表
4.并且默认10snacos server拉取服务实例列表
5.当服务消费者检测到服务异常,基于UDP协议推送更新
6.服务消费者即可调用了

NacosEureka的区别

CAP理论

C一致性,A高可用,P分区容错性

  • eureka只支持AP
  • nacos支持CPAP两种
    nacos是根据配置识别CPAP模式,如果注册Nacosclient节点注册时是ephemeral=true即为临时节点,那么Naocs集群对这个client节点效果就是AP,反之则是CP,即不是临时节点
  •  #false为永久实例,true表示临时实例开启,注册为临时实例
  •  spring.cloud.nacos.discovery.ephemeral=true

连接方式

  1. nacs使用的是netty和服务直接进行连接,属于长连接
  2. eureka是使用定时发送和服务进行联系,属于短连接

服务异常剔除

eureka:
Eureka client在默认情况每隔30sEureka 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秒未收到心跳后将实例设置为不健康状态,可以正常接收到请求
超过30nacos将实例删除,不会再接收请求

操作实例方式

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

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

自我保护机制

相同点:保护阈值都是个比例,0-1 范围,表示健康的 instance 占全部instance 的比例。

不同点:

1)保护方式不同

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

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

2)范围不同

Nacos 的阈值是针对某个具体 Service 的,而不是针对所有服务的。但 Eureka的自我保护阈值是针对所有服务的。

http://www.lryc.cn/news/58268.html

相关文章:

  • canvas.toDataURL生成图片报错的解决方案
  • 电容笔和Apple pencil的区别是什么?好用电容笔推荐
  • 关于onnx 转ncnn 的问题
  • 设计模式之《责任链模式》
  • Android Studio实现多功能日记本
  • 只依赖Tensorrt和opencv的yolov5源代码
  • 多路I/O转接 poll(了解)
  • 听说你也在为配置tomcat server而烦恼,看我这一篇,让你醍醐灌顶!
  • 【从零开始学Skynet】工具篇(二):虚拟机文件的复制粘贴
  • 全球自动驾驶竞争力最新排行榜,4家中国企业上榜
  • APP启动流程分析
  • IIR数字滤波器简介与实现
  • 3.5 函数的极值与最大值和最小值
  • 第五十八天打卡
  • 双一流大学计算机专业月薪拿2000?网友:我裂开
  • ChatGPT的“N宗罪”?|AI百态(上篇)
  • 48.现有移动端开源框架及其特点—MDL(mobile-deep-learning)
  • 4.9--计算机网络之TCP篇之TCP Keepalive 和 HTTP Keep-Alive --(复习+大总结)---沉淀ing
  • qt完善登录界面(2023-4-6)
  • 104.(cesium篇)cesium卫星轨道模拟
  • Linux shell编程
  • Rasa 3.x 学习系列-Rasa [3.5.4] -2023-04-05新版本发布
  • 进程和线程
  • ps 备忘清单_开发速查表分享
  • 【ROS】基于WIFI网络实现图像消息跨机实时传输
  • 一次性说清楚 JAVA的 ThreadPoolExecutor 、newFixedThreadPool 和newCachedThreadPool 等
  • Android双目三维重建:Android双目摄像头实现双目测距
  • 解决Avoid using non-primitive value as key, use string/number value instead.
  • 重构·改善既有代码的设计.03之重构手法(上)
  • 闭关修炼(0.0 pytorch基础学习)1