微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异
- 直接访问
- Nginx反向代理访问
- Zuul访问
- Spring Cloud Gateway访问
- Linkerd访问
- 尽管我们不选择直接访问,但是我们在第一步额外做了直接访问的测试,用于衡量代理的理想值,这个测试我们不会在后面的步骤中进行。
- 尽管Spring Cloud Gateway依然没有官方稳定版,我们会在最后那步评估它。
- Zuul随后的性能比第一次压测的性能更好。我们估计出现这种情况的原因是第一次压测进行了JIT优化,所以我们把针对Zuul的第一次压测当成“预热”。在总结表中的值是预热之后的性能。
- 我们知道Linkerd是资源密集型代理,所以我们只在高资源配置的最后一步对比。
- 我们计划去评估Envoy。事实上,Envoy不止是API网关,它是service mesh,但是也提供了API网关功能,能放在应用的前面。
- Undertow也有反向代理能力,所以我们也计划去评估一下。
- Netflix基于Netty的非阻塞重新设计了Zuul应用,新的版本叫“Zuul 2”。如果官方发布了新版本的Zuul,我们也会进行性能压测,然后将压测结果分享出来。
- Spring Cloud Gateway依然在开发中,基于Netty的非阻塞的Java网关,所以对我们来说是一个很好的候选。我们将会评估它的官方稳定版的性能。
- 一些API网关(Zuul 1)是阻塞的,另外一些(Zuul 2、Linkerd、Envoy)是非阻塞的。阻塞架构对开发和跟踪请求友好,但是阻塞可能产生扩展性问题。非阻塞架构对于团队开发和跟踪更复杂,但是有更好的可扩展和弹性。我们之后将会决定使用阻塞架构还是使用非阻塞架构。
- 我们将使用Gatling做性能测试,将在我们的下一篇博客中共享结果。
- 微服务网关终结者?Spring Cloud推出新成员Spring Cloud Gateway
- 模块化还是微服务 - 为什么说大部分团队微服务化都走入了陷阱
- Java 微服务框架新选择:Spring 5
- 从单体应用走向微服务:一次API Gateway升级的启示
微服务网关哪家强?一文看懂Zuul, Nginx, Spring Cloud, Linkerd性能差异的更多相关文章
- 使用 Node.js 搭建微服务网关
目录 Node.js 是什么 安装 node.js Node.js 入门 Node.js 应用场景 npm 镜像 使用 Node.js 搭建微服务网关 什么是微服务架构 使用 Node.js 实现反向 ...
- 微服务网关 Spring Cloud Gateway
1. 为什么是Spring Cloud Gateway 一句话,Spring Cloud已经放弃Netflix Zuul了.现在Spring Cloud中引用的还是Zuul 1.x版本,而这个版本是 ...
- SpringCloud Gateway微服务网关实战与源码分析-上
概述 定义 Spring Cloud Gateway 官网地址 https://spring.io/projects/spring-cloud-gateway/ 最新版本3.1.3 Spring Cl ...
- 微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍
微服务架构学习与思考(10):微服务网关和开源 API 网关01-以 Nginx 为基础的 API 网关详细介绍 一.为什么会有 API Gateway 网关 随着微服务架构的流行,很多公司把原有的单 ...
- Bumblebee微服务网关的部署和扩展
Bumblebee是.netcore下开源基于BeetleX.FastHttpApi扩展的HTTP微服务网关组件,它的主要作用是针对WebAPI集群服务作一个集中的转发和管理:作为应用网关它提供了应用 ...
- spring cloud 学习(6) - zuul 微服务网关
微服务架构体系中,通常一个业务系统会有很多的微服务,比如:OrderService.ProductService.UserService...,为了让调用更简单,一般会在这些服务前端再封装一层,类似下 ...
- 基于 orange(nginx+openresty) + docker 实现微服务 网关功能
摘要 基于 orange(nginx+openresty) + docker 实现微服务 网关功能 ;以实现 docker 独立容器 来跑 独立语言独立环境 在 同一个授权下 运行相关组合程序..年初 ...
- 王院生:Apache APISIX 微服务网关极致性能架构解析
2019 年 10 月 27 日,又拍云联合 Apache APISIX 社区举办 API 网关与高性能服务最佳实践丨Open Talk 杭州站活动,Apache APISIX PPMC 成员王院生做 ...
- 畅购商城(八):微服务网关和JWT令牌
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 畅购商城(一):环境搭建 畅购商 ...
随机推荐
- POJ 3735 Training little cats(矩阵乘法)
[题目链接] http://poj.org/problem?id=3735 [题目大意] 有一排小猫,给出一系列操作,包括给一只猫一颗花生, 让某只猫吃完所有的花生以及交换两只猫的花生, 求完成m次操 ...
- Orchard 事件通知小坑
public void GetTagLogRecord(int tagId, string keyword, string area) { var tag = _repositoryTagRecord ...
- sql server 带有OUTPUT的INSERT,DELETE,UPDATE
原文:sql server 带有OUTPUT的INSERT,DELETE,UPDATE OUTPUT是SQL SERVER2005的新特性.可以从数据修改语句中返回输出.可以看作是"返回结果 ...
- Visual Studio Debug和Release的区别及obj的作用
一.Debug和Release的区别 1.Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂), ...
- react热加载失败
react热加载失败 原因:路径名字大小写错误, 不是全部加载失败,有的时候可以用,有的时候不可以 热加载插件:webpack-dev-server
- redis打开非英文存储显示问题
使用jedis 在redis中如果存储非英文的值,入 中文,印地语,马拉蒂语,泰米尔语等.在执行get 或者 hget的时候查询出来的数据会以16进制显示.如何显示原有的值 在redis启动的时候加上 ...
- 【Hadoop】Hadoop MR 自定义分组 Partition机制
1.概念 2.Hadoop默认分组机制--所有的Key分到一个组,一个Reduce任务处理 3.代码示例 FlowBean package com.ares.hadoop.mr.flowgroup; ...
- win10 如何配置 java jdk1.8环境变量(2017.8.17 )jdk1.8.0_144
win10 如何配置 java jdk 环境变量 2017.8.17 本篇还适用于 windows server 2012. windows server 2014+ 一.安装 下载 jdk 64位 ...
- PHP 在源代码中实现换行使得页面源代码更精致美观
常量 : PHP_EOL 换行实例: <? php echo $this->doctype($this->doctype) . PHP_EOL;?> <html> ...
- python可hash 不可hash类型
不可变类型是可hash #tuple str freezeset 可变类型是不可hash ##list set