zuul中关于ribbon和hystrix的一些配置问题

Zuul的负载均衡ribbon和熔断hystrix

在zuul的配置文件中配置

server:
  port: 10010
spring:
  application:
    name: zuul
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka
zuul:
  routes:
  user-service:
    path: /user/**
    serviceId: user-service
    strip-prefix: false
  ignored-services:
    - consumer-service
zuul:
  retryable: true
ribbon:
  ConnectTimeout: 250 # 连接超时时间(ms)
  ReadTimeout: 2000 # 通信超时时间(ms)
  OkToRetryOnAllOperations: true # 是否对所有操作重试
  MaxAutoRetriesNextServer: 2 # 同一服务不同实例的重试次数
  MaxAutoRetries: 1 # 同一实例的重试次数
hystrix:
  command:
  	default:
        execution:
          isolation:
            thread:
              timeoutInMillisecond: 6000 # 熔断超时时长:6000ms


由于ribbon一次访问失败后会自动重试一次,因此 ( ConnectTimeout + ReadTimeout ) × 2 < timeoutInMillisecond

即:

timeoutInMillisecond的真实值是: ( ConnectTimeout + ReadTimeout ) × 2

公式:

timeoutInMillisecond = ( ribbon ConnectTimeout + ribbon ReadTimeout ) * (maxAutoRetries + 1) * ( maxAutoRetriesNextServer + 1 );

Spring Cloud是一个用于构建分布式系统的开发工具集合,它提供了许多有用的组件,包括ZuulRibbonHystrix和@FeignClient。 ZuulSpring Cloud的网关服务,它可以将各个微服务的请求路由到相应的微服务上。Zuul具有负载均衡和过滤器等功能,可以对请求进行拦截和处理。 Ribbon是一个负载均衡器,它可以根据负载情况将请求分发给不同的微服务实例。Ribbon可以与Eureka等注册心配合使用,动态地获取可用的服务实例列表,并根据一定的负载均衡策略选择合适的实例。 Hystrix是一个容错和延迟容忍的库,可以帮助我们构建稳定的分布式系统。它可以防止由于某一微服务的故障或延迟而导致整个系统的崩溃。通过为每个外部服务的调用添加断路器,Hystrix可以在外部服务不可用时提供备选方案,并且可以对外部服务的调用进行监控和度量。 @FeignClient是一个用于声明式REST客户端的注解。通过在接口添加@FeignClient注解,并指定要访问的微服务名称,我们可以方便地进行REST调用。Feign会根据接口定义自动生成实现类,并将请求发送到相应的微服务。 综上所述,Spring CloudZuulRibbonHystrix和@FeignClient是用于构建分布式系统的重要组件。它们可以帮助我们解决微服务架构的路由、负载均衡、容错和服务间调用等问题。利用这些组件,我们可以更方便地构建可靠、高效的分布式系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值