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

为什么使用Nacos而不是Eureka(Nacos和Eureka的区别)

文章目录

  • 前言
  • 一、Eureka是什么?
  • 二、Nacos是什么?
  • 三、Nacos和Eureka的区别
    • 3.1 支持的CAP
    • 3.2连接方式
    • 3.3 服务异常剔除
    • 3.4 操作实例方式
  • 总结


前言

为什么如今微服务注册中心用Nacos相对比用Eureka的多了?本文章将介绍他们之间的区别和优缺点。


一、Eureka是什么?

简介:
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。


详解:
Eureka包含两个组件:Eureka Server和Eureka Client。

  • Eureka Server:Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  • Eureka Client:Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。

Eureka闭源影响
在这里插入图片描述
在Euraka的GitHub上,宣布Eureka 2.x闭源。近这意味着如果开发者继续使用作为 2.x 分支上现有工作
repo 一部分发布的代码库和工件,则将自负风险。

二、Nacos是什么?

简介:
Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。简单来说 Nacos 就是 注册中心 + 配置中心的组合,提供简单易用的特性集,帮助我们解决微服务开发必会涉及到的服务注册 与发现,服务配置,服务管理等问题。 Nacos 还是 Spring Cloud Alibaba 组件之一,负责服务注册与发现。


Namespace隔离设计
Nacos提供了namespace来实现环境隔离功能。

  • nacos中可以有多个namespace
  • namespace下可以有group
  • 不同namespace之间相互隔离,例如不同namespace的服务互相不可见
    命名空间用于进行隔离,Namespace 的常用场景之一是不同环境的隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
    在这里插入图片描述

三、Nacos和Eureka的区别

3.1 支持的CAP

  • Consistency(一致性) :数据一致更新,所有数据的变化都是同步的
  • Availability(可用性) :在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求
  • Partition tolerance(分区容忍性) :某个节点的故障,并不影响整个系统的运行
注册中心APCP
Eureka支持不支持
Nacos支持支持

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

3.2连接方式

  • Nacos使用的是netty和服务直接进行连接,属于长连接
  • Eureka是使用定时发送和服务进行联系,属于短连接

3.3 服务异常剔除

Nacos:
Nacos client 通过心跳上报方式告诉 nacos注册中心健康状态,默认心跳间隔5秒,nacos会在超过15秒未收到心跳后将实例设置为不健康状态,可以正常接收到请求超过30秒nacos将实例删除,不会再接收请求


Eureka:
Eureka client在默认情况每隔30s想Eureka Server发送一次心跳,当Eureka Server在默认连续90s秒的情况下没有收到心跳, 会把Eureka client 从注册表中剔除,在由Eureka-Server 60秒的清除间隔,把Eureka client 给下线,也就是在极端情况下Eureka 服务 从异常到剔除在到完全不接受请求可能需要 30s+90s+60s=3分钟左右(还是未考虑ribbon缓存情况下)


所以Nacos服务异常剔除效率高于Eureka

3.4 操作实例方式

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


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


所以Nacos相对于Eureka操作更详细,多元化


总结

综上所述,Nacos更优于Eureka,这也是为什么我们更倾向于使用Nacos而不是Eureka。(而且Eureka闭源了)

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

相关文章:

  • Python作业一
  • protobuf概览
  • <C++> SSE指令集
  • cortex-A7核LED灯实验--STM32MP157
  • WPF实战项目十三(API篇):备忘录功能api接口、优化待办事项api接口
  • clickhouse(十四、分布式DDL阻塞及同步阻塞问题)
  • 怎么入门网络安全(黑客)?
  • c++ boost::json
  • 《Flink学习笔记》——第九章 多流转换
  • openmmlab出现KeyError: ‘xxx is not in the model registry....‘
  • 错误代码0x80131500要怎么解决?快速修复方法
  • PMO(Project Management Office)
  • STM32 CUBEMX CAN通信数据发送失败原因分析
  • 长安链并行调度机制(2):DAG构建和从节点执行流程
  • leetcode做题笔记110. 平衡二叉树
  • iOS开发Swift-字符串与字符
  • Linux Kernel:syscall之fork与exec
  • CentOS 修改MySQL密码
  • Android通过setaffinity实现绑核
  • stm32的位带操作
  • Java 电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展
  • https协议经过SpringMVC重定向之后变成http协议
  • iOS 分别对一张图的局部进行磨砂,拼接起来不能贴合
  • 与面试官互动:建立积极的技术讨论氛围
  • 计算机竞赛 基于YOLO实现的口罩佩戴检测 - python opemcv 深度学习
  • 完美解决Ubuntu网络故障,连接异常,IP地址一直显示127.0.0.1
  • 手机无人直播软件有哪些,又有哪些优势?
  • 解密算法与数据结构面试:程序员如何应对挑战
  • 分布式事务7种(秒懂-2PC、3PC、TCC、Saga、本地事务表、MQ事务消息、最大努力通)
  • 基于Java+SpringBoot+Vue前后端分离美食推荐商城设计和实现