前提是有zuul服务!

说一下背景:一个eureka做的服务发现,2个微服务,1个zuul,当一个微服务挂掉后,由于eureka是默认集成了轮询策略,所以,当访问服务时,有50%几率是请求失败的,如何保证挂掉一个服务后还能100%请求成功呢?

1、使用Hystrix

2、让zuul只路由到活着的那个服务:
添加依赖:

  <dependency>
      <groupId>com.squareup.okhttp3</groupId>
      <artifactId>okhttp</artifactId>
      <version>3.6.0</version>
    </dependency>

配置文件添加:

ribbon.connectTimeout: 2000
ribbon.readTimeout: 10000
ribbon.maxAutoRetries: 1
ribbon.maxAutoRetriesNextServer: 2
ribbon.okToRetryOnAllOperations: true
ribbon.okhttp.enabled: true

注意:这样有违背Spring Cloud设计的初衷,即违背了AP原则,转而成为了CP,不过,好用就行了!!!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐