目录

Eureka与Nacos的区别

1.功能差异

2.部署安装

3.稳定及扩展

4.总结

Spring gateway与zuul的区别

1. 产品对比

2 性能对比

3总结


Eureka与Nacos的区别

1.功能差异

模块

Nacos

Eureka

说明

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

2.部署安装

模块 Nacos Eureka 说明
Mysql Nacos需要采用Mysql镜像数据持久化
MQ Eureka需要采用MQ进行配置中心刷新
配置中心 Eureka解决Config实现配置中心
配置文件     Nacos支持在线编辑,Eureka本地文件或者git远程文件
集群 Nacos需要配置集群ip再启动

3.稳定及扩展

模块 Nacos Eureka 说明

版本

1.0.0

1.9.9

Eureka2.0已停止开发,Nacos处于1.x-2.0开发

厂商

阿里巴巴

Netflix

Netflix已长期用于生产,阿里刚起步

生产建议

Nacos0.8以前不可用于生产,建议生产采用Nacos1.0,便于节省配置中心集群和服务管理

生产建议

Nacos0.8以前不可用于生产,建议生产采用Nacos1.0,便于节省配置中心集群和服务管理

4.总结

采用Eureka方案的考虑

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

采用Nacos方案的考虑

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

Spring gateway与zuul的区别

1. 产品对比

下边以表格形式对Zuul1和Gateway作简单对比:

对比项 Zuul1.x Gateway
实现 基于Servlet2.x构建,使用阻塞的API。 基于Spring 5、Project Reactor、Spring Boot 2,使用非阻塞式的API。
长连接 不支持 支持
不适用场景 后端服务响应慢或者高并发场景下,因为线程数量是固定(有限)的,线程容易被耗尽,导致新请求被拒绝。 中小流量的项目,使用Zuul1.x更合适。
限流 内置限流过滤器
上手难度 同步编程,上手简单 门槛较高,上手难度中等
Spring Cloud集成
Sentinel集成
技术栈沉淀 Zuul1开源近七年,经受考验,稳定成熟。 未见实际落地案例
Github used by 1007 repositories 102 repositories
Github issues 88 Open / 2736 Closed 135 Open / 850 Closed

注:Github used by和Github issues统计时间截止2019/8/26。

2 性能对比

2.1.1 低并发场景

不同的tps,同样的请求时间(50s),对两种网关产品进行压力测试,结果如下:

tps 测试样本Zuul1/Gateway,单位个 平均响应时间Zuul1/Gateway, 单位毫秒 99%响应时间小于Zuul1/Gateway,单位毫秒 错误比例Zuul1/Gateway
20tps 20977 / 20580 11 / 14 16 / 40 0% / 0%
50tps 42685 / 50586 18 / 12 66 / 22 0% / 0%

并发较低的场景下,两种网关的表现差不多

2.1.2 高并发场景

配置同样的线程数(2000),同样的请求时间(5分钟),后端服务在不同的响应时间(休眠时间),对两种网关产品进行压力测试,结果如下:

休眠时间 测试样本Zuul1/Gateway,单位个 平均响应时间Zuul1/Gateway, 单位毫秒 99%响应时间小于Zuul1/Gateway,单位毫秒 错误次数Zuul1/Gateway,单位个 错误比例Zuul1/Gateway
休眠100ms 294134 / 1059321 2026 / 546 6136 / 1774 104 / 0 0.04% / 0%
休眠300ms 101194 / 399909 5595 / 1489 15056 / 1690 1114 / 0 1.10% / 0%
休眠600ms 51732 / 201262 11768 / 2975 27217 / 3203 2476 / 0 4.79% / 0%
休眠1000ms 31896 / 120956 19359 / 4914 46259 / 5115 3598 / 0 11.28% / 0%

Zuul网关的tomcat最大线程数为400,hystrix超时时间为100000。

Gateway在高并发和后端服务响应慢的场景下比Zuul1的表现要好。

2.1.3 官方性能对比

Spring Cloud Gateway的开发者提供了benchmark项目用来对比Gateway和Zuul1的性能,官方提供的性能对比结果如下:

网关 Avg Req/sec/Thread Avg Latency
Spring Cloud Gateway 3.24k 6.61ms
Zuul1 2.09k 12.56ms
none 11.77k 2.09ms

测试工具为wrk,测试时间30秒,线程数为10,连接数为200。

从官方的对比结果来看,Gateway的RPS是Zuul1的1.55倍,平均延迟是Zuul1的一半。

3总结

  Zuul1的开源时间很早,Netflix、Riot、携程、拍拍贷等公司都已经在生产环境中使用,自身经受了实践考验,是生产级的API网关产品。

  Gateway在2019年离开Spring Cloud孵化器,应用于生产的案例少,稳定性有待考证。

  从性能方面比较,两种产品在流量小的场景下性能表现差不多;并发高的场景下Gateway性能要好很多。从开发方面比较,Zuul1编程模型简单,易于扩展;Gateway编程模型稍难,代码阅读难度要比Zuul高不少,扩展也稍复杂一些。

对比Eureka和Nacos 的区别 Zuul和Spring Gateway的区别相关推荐

  1. 注册中心对比Zookeeper、Eureka、Nacos、Consul和Etcd

    一.注册中心概念 1.1 什么是注册中心 注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态. ...

  2. Eureka 和nacos 的区别

    目录 1 区别 1 区别 Eureka和Nacos都是用于服务发现和注册的工具,但它们有一些区别:语言支持:Eureka是Netflix开发的,使用Java编写, 而Nacos是阿里巴巴开发的,使用J ...

  3. 微服务01SpringCloud Eureka Ribbon Nacos Feign Gateway服务网关

    微服务技术栈导学 SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.0.学 ...

  4. springcloud2-注册中心eureka及nacos

    1,课程回顾 2,本章重点 eureka注册中心 nacos注册中心 3,具体内容 3.1 eureka注册中心 https://www.springcloud.cc/spring-cloud-bri ...

  5. SpringCloud学习笔记01——Eureka 和 Nacos注册

    SpringCloud01 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务 ...

  6. 微服务(二)——注册中心(Eureka、Nacos)

    目录 1. 概念 2. Eureka 1. 服务搭建 1. 依赖导入 2. 配置文件 3. 启动项目 2. 服务注册 1. 依赖导入 2. 配置文件 3. 启动多个实例 3. 服务发现 1. 依赖导入 ...

  7. 使用Zuul构建API Gateway

    一  微服务网关背景及简介 不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求.比如一个电影购票的收集APP,可能回调用电影分类微服务,用户微服务,支付微服 ...

  8. Spring Gateway集成 Nacos注册中心不能够发现服务的问题解决

    一.问题描述 我们现在是在用Nacos替换Eureka,原来Eureka和Spring gateway运行正常,可以通过Spring gateway调用注册到Eureka中的服务. 当前Spring ...

  9. 微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异

    导语:API Gateway是实现微服务重要的组件之一.面对诸多的开源API Gateway,如何进行选择也是架构师需要关注的焦点.本文作者对几个较大的开源API Gateway进行了压力测试,对于架 ...

最新文章

  1. Scrapy和MongoDB的应用
  2. 第六章:双指针,BFS,和图论 【完结】
  3. Kubernetes 下零信任安全架构分析
  4. 空集的cardinality是0
  5. junit测试spring_使用Spring JUnit规则进行参数化集成测试
  6. PowerDesigner初体验
  7. 深度学习发展与机器学习
  8. python之常用的数据类型
  9. uni-app引入极光im
  10. eclipse启动tomcat内存溢出解决方式
  11. 06-JavaWEB_Git
  12. 基于 esp-idf 的 UART 应用例程解读
  13. 【前端】vue阶段案例:组件化-房源展示
  14. SD卡无法格式化方法介绍
  15. 以字符串为例,谈谈Python到底要学到什么程度
  16. PHP屏蔽错误警告提示
  17. Java面试题-微服务
  18. 未来已来!阿里小蜜AI技术揭秘
  19. 在虚幻引擎4中播放视频文件超详细教程
  20. html中加入清除浮动,HTML中清除浮动的几种办法

热门文章

  1. vue.js中文官网下载vue.js失败了?
  2. 解决中文名单按拼音排序的问题
  3. 【LGCN】如何理解Large-Scale Learnable Graph Convolutional Networks?
  4. 1. Emacs使用本地elpa镜像
  5. 数据之美(九):50个精美绝伦的 Infographics(上)
  6. 指法练习软件ECAI使用指南
  7. 【大数据】Hadoop (二) HDFS
  8. nginx反向代理加gitlab认证
  9. 抖音算法机制,抖音算法规则,抖音算法逻辑
  10. PYTHON实践——GUI界面