Spring Cloud 负载均衡后,某个服务挂掉后保证数据一致性

前提是有zuul服务!

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

1、使用Hystrix

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

  <dependency>
      <groupId>com.squareup.okhttp3groupId>
      <artifactId>okhttpartifactId>
      <version>3.6.0version>
    dependency>

配置文件添加:

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

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

你可能感兴趣的:(Spring,Cloud,Spring,Cloud)