Spring Cloud实战小贴士:Zuul的饥饿加载(eager-load)使用

上一篇我们介绍了如何使用Ribbon的earger-load配置加速Spring Cloud中对服务接口的第一次调用。可是这样只是解决了内部服务间的调用,另外一个问题依然经常困扰我们,那就是网关到内部服务的访问。由于Spring Cloud Zuul的路由转发也是通过Ribbon实现负载均衡的,所以它也会存在第一次调时比较慢的情况。那么这个时候我们要如何设置呢?

Zuul中的Eager Load配置

在Spring Cloud Zuul中也提供了一个配置参数来实现earger-load,具体如下:


  1. zuul.ribbon.eager-load.enabled=true 

但是,可能你尝试一下之后会发现,并没有起效?为什么呢?这是由于Spring Cloud Zuul中实现eager-load的时候同Ribbon中一样,都需要指定具体哪些服务需要饥饿加载。那么在Spring Cloud Zuul中如何具体指定呢?

在Spring Cloud Zuul的饥饿加载中没有设计专门的参数来配置,而是直接采用了读取路由配置来进行饥饿加载的做法。所以,如果我们使用默认路由,而没有通过配置的方式指定具体路由规则,那么zuul.ribbon.eager-load.enabled=true的配置就没有什么作用了。

因此,在真正使用的时候,我们可以通过zuul.ignored-services=*来忽略所有的默认路由,让所有路由配置均维护在配置文件中,以达到网关启动的时候就默认初始化好各个路由转发的负载均衡对象。 

原文发布时间为:2017-10-20

本文作者:翟永超

本文来自合作伙伴“51CTO”,了解相关信息可以关注。

时间: 2024-10-08 12:20:01

Spring Cloud实战小贴士:Zuul的饥饿加载(eager-load)使用的相关文章

Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式

2017年架构师最重要的48个小时 | 8折倒计时 我们在使用Spring Cloud的Ribbon或Feign来实现服务调用的时候,如果我们的机器或网络环境等原因不是很好的话,有时候会发现这样一个问题:我们服务消费方调用服务提供方接口的时候,第一次请求经常会超时,而之后的调用就没有问题了.下面我们就来说说造成这个问题的原因,以及如何解决的方法. 问题原因 造成第一次服务调用出现失败的原因主要是Ribbon进行客户端负载均衡的Client并不是在服务启动的时候就初始化好的,而是在调用的时候才会去

Spring Cloud内置的Zuul过滤器详解

我是51CTO学院讲师周立,在51CTO学院"4.20 IT充电节"(4月19~20日)到来之际,和大家分享一下<Spring Cloud内置的Zuul过滤器应用>的经验.正文来啦~~~ Spring Cloud默认为Zuul编写并启用了一些过滤器,这些过滤器有什么作用呢?我们不妨按照@EnableZuulServer.@EnableZuulProxy两个注解进行展开,相信大家对这两个注解都不陌生(至少都见过吧).如果觉得陌生也没有关系,可将@EnableZuulProxy

SPRING CLOUD服务网关之ZUUL

服务网关是微服务架构中一个不可或缺的部分.通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由.均衡负载功能之外,它还具备了权限控制等功能.Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性. pom.xml <?xml version="1.0" encoding="UTF-8"

EntityFramework Core饥饿加载忽略导航属性问题

前言 .NET Core项目利用EntityFramework Core作为数据访问层一直在进行中,一直没有过多的去关注背后生成的SQL语句,然后老大捞出日志文件一看,恩,有问题了,所以本文产生了,也是有点疑惑,若有知情者,还望告知. EntityFramework Core忽略导航属性  在前面我们已经探讨过利用Serilog日志框架来输出日志,所以对于本节查询日志的输出依然借助Seilog.我们在Startup.cs类中Starup方法中是创建日志实例. Log.Logger = new L

SpringCloud实战小贴士:Zuul的路径匹配

路径匹配 不论是使用传统路由的配置方式还是服务路由的配置方式,我们都需要为每个路由规则定义匹配表达式,也就是上面所说的path参数.在Zuul中,路由匹配的路径表达式采用了Ant风格定义. Ant风格的路径表达式使用起来非常简单,它一共有下面这三种通配符: 通配符说明 我们可以通过下表的示例来进一步理解这三个通配符的含义并参考着来使用: URL路径说明 /user-service/?它可以匹配/user-service/之后拼接一个任务字符的路径,比如:/user-service/a./user

spring cloud源码分析-zuul路由的部分源码解析

版本:spring-boot:1.5.3.RELEASE:spring cloud:Dalston.RELEASE(1.3.0.RELEASE) 路由定位器 配置所在jar包:spring-cloud-netflix-core-1.3.0.RELEASE.jar 顶层接口:RouteLocator 可刷新的路由:RefreshableRouteLocator extends RouteLocator 路由处理器:CompositeRouteLocator implements Refreshab

《Spring Cloud与Docker微服务架构实战》配套代码

不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将代码放出. 本次放出的代码: 共计70+个DEMO 覆盖Eureka.Ribbon.Feign.Hystrix.Zuul.Spring Cloud Config.Spring Cloud Bus.Spring Cloud Sleuth.Docker.Docker Compose等. 1-11章代码地址: ht

服务网关 Spring Cloud Zuul

(git上的源码:https://gitee.com/rain7564/spring_microservices_study/tree/master/fifth-spring-cloud-zuul) 对于服务网关是什么.有什么用?使用API Gateway这篇文章已经讲得很清楚了,这里就不再赘述.当然这只是翻译版,原版在这里:Building Microservices: Using an API Gateway Spring Cloud和Netflix Zuul Using an API Ga

Spring Cloud -- Zuul

Zuul可以通过加载动态过滤机制,从而实现以下各项功能: 验证与安全保障: 识别面向各类资源的验证要求并拒绝那些与要求不符的请求. 审查与监控: 在边缘位置追踪有意义数据及统计结果,从而为我们带来准确的生产状态结论. 动态路由: 以动态方式根据需要将请求路由至不同后端集群处. 压力测试: 逐渐增加指向集群的负载流量,从而计算性能水平. 负载分配: 为每一种负载类型分配对应容量,并弃用超出限定值的请求. 静态响应处理: 在边缘位置直接建立部分响应,从而避免其流入内部集群. 多区域弹性: 跨越AWS