添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
我们知道 spring-cloud-starter-netflix-zuul 自身就包含了对 spring-cloud-starter-netflix-hystrix spring-cloud-starter-netflix-ribbon 模块的依赖,所以 Zuul 天生就拥有线程隔离和断路器的自我保护功能,以及对服务调用的客户端负载均衡功能。
同时我们还可以通过 Hystrix Ribbon 的参数来调整路由请求的各种超时时间等配置,下面分别进行介绍。 九、Hystrix 和 Ribbon 配置

1,断路器的超时时长设置

(1) hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds 参数可以用来设置 API 网关中路由转发请求的 HystrixCommand 执行超时时间,单位为毫秒。
#设置超时时间为10秒
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000
(2)当路由转发请求的命令执行时间超过该配置值后, Hystrix 会将该执行命令标记为 TIMEOUT 并抛出异常, Zuul 会对该异常进行处理并返回如下 JSON 信息给外部调用方。 2,Ribbon 的超时时长设置
(1) ribbon.ConnectTimeout 参数用来设置路由转发请求的时候,创建请求连接的超时时间。若路由请求出现超时时,会自动进行重试路由请求,如果重试依然失败,则返回重试失败的 JSON 信息给外部调用方。
注意: ribbon.ConnectTimeout 的配置值需要小于 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds 。否则当出现路由请求连接超时时,不会进行重试路由请求,而是直接按请求命令超时处理,返回 TIMEOUT 的错误信息。
#请求连接超时时间
ribbon.ConnectTimeout=1000
(2) ribbon.ReadTimeout 参数用来设置路由转发请求的超时时间。它的处理与 ribbon.ConnectTimeout 类似,只不过它的超时是对请求建立之后的处理时间。若路由请求的处理时间超过该配置只且依赖服务的请求还未响应的时候,会进行重试路由请求。如果重试后依然没有获得请求响应,则返回重试失败的 JSON 信息给外部调用方。 注意: ribbon.ReadTimeout 的配置值需要小于 hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds 。否则当出现路由请求连接超时时,不会进行重试路由请求,而是直接按请求命令超时处理,返回 TIMEOUT 的错误信息。
#请求处理的超时时间
ribbon.ReadTimeout=2000
3,关闭重试机制
在使用 Zuul 的服务路由时,如果路由转发请求发生超时时(连接超时或者处理超时),只要超时时间的设置小于 Hystrix 的命令超时时间,那么它就会自动发起重试。如果我们需要关闭该重试机制,可以通过如下两个参数进行设置。 (1)我们可以通过如下设置全局关闭重试机制:
zuul.retryable=false
(2)或者指定路由关闭重试机制(这里以 hello-service 这个路由为例):
zuul.routes.hello-service.retryable=false
上一篇 API网关服务组件Spring Cloud Zuul使用详解6(路由详解6:重定向问题) 下一篇 API网关服务组件Spring Cloud Zuul使用详解8(路由详解8:动态路由)
  • SpringBoot - 日志框架Log4j2的整合教程3(异步输出日志)
  • SpringBoot - Kafka的集成与使用详解1(安装配置、基本用法)
  • SpringBoot - Kafka的集成与使用详解2(手动创建、修改、查询Topic)
  • SpringBoot - resource资源文件的打包配置详解(指定资源文件位置)
  • SpringBoot - MyBatis-Plus使用详解2(设置实体类对应的表名、字段名 )
  • SpringBoot - Actuator应用监控使用详解5(info端点:应用信息展示)
  • SpringBoot - MyBatis-Plus使用详解19(使用乐观锁进行数据更新)
  • 消息驱动微服务框架Spring Cloud Stream使用详解5(消息类型转换)
  • 分布式服务跟踪Spring Cloud Sleuth使用详解3(设置采用率、抽样收集策略)
  • SpringBoot - 开启Druid监控统计功能教程(SQL监控、慢SQL记录、去广告)
  •