Spring Cloud - Nacos与Eureka区别及如何选型

Nacos与Eureka均提供注册中心和服务治理功能,以下为两者差异和选型方案。

功能差异

模块 Nacos Eureka 说明
注册中心 服务治理基本功能,负责服务中心化注册
配置中心 Eureka需要配合Config实现配置中心,且不提供管理界面
动态刷新 Eureka需要配合MQ实现配置动态刷新,Nacos采用Netty保持TCP长连接实时推送
可用区AZ 对服务集群划分不同区域,实现区域隔离,并提供容灾自动切换
分组 Nacos可用根据业务和环境进行分组管理
元数据 提供服务标签数据,例如环境或服务标识
权重 Nacos默认提供权重设置功能,调整承载流量压力
健康检查 Nacos支持由客户端或服务端发起的健康检查,Eureka是由客户端发起心跳
负载均衡 均提供负责均衡策略,Eureka采用Ribion
管理界面 Nacos支持对服务在线管理,Eureka只是预览服务状态

部署安装

模块 Nacos Eureka 说明
MySql Nacos需要采用MySql进行数据进行持久化
MQ Eureka需要采用MQ进行配置中心刷新
配置中心 Eureka结合Config或者Consul实现配置中心
配置文件 在线编辑 本地文件或者Git远程文件 Eureka结合Config或者Consul
集群 Nacos需要配置集群ip再启动

稳定及扩展性

模块 Nacos Eureka 说明
版本 1.0.0 1.9.9 Eureka2.0已停止开发,Nacos处于1.x-2.0开发
厂商 阿里巴巴 Netflix Netflix已长期用于生产,阿里刚起步
生产建议 Nacos0.8以前不可用于生产,建议生产采用Nacos1.0,便于节省配置中心集群和服务管理
未来发展 Nacos 2.0主要关注在统一服务管理、服务共享及服务治理体系的开放的服务平台的建设

选型建议

采用Eureka方案的考虑

  • 想用Spring Cloud原生全家桶
  • 想用本地文件和Git作为配置管理的,将配置与服务分开管理
  • 考虑短期的稳定性

采用Nacos方案的考虑

  • 想在线对服务进行上下线和流量管理
  • 不想采用MQ实现配置中心动态刷新
  • 不想新增配置中心生产集群
  • 考虑引入Spring Cloud Alibaba生态
------ 本文结束------

本文标题:Spring Cloud - Nacos与Eureka区别及如何选型

文章作者:Perkins

发布时间:2019年04月23日

原始链接:https://perkins4j2.github.io/posts/35353/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。