Spring Cloud Ribbon 负载均衡组件-超时、重试、自定义服务列表

Ribbon 是Spring Cloud 微服务框架中弹性扩展的基础组件,与其他组件结合可以发挥很多的作用,支持丰富的负载均衡策略、重试机制等等。

Spring Cloud Ribbon 负载均衡组件-超时、重试、自定义服务列表

Ribbon 与负载均衡

Ribbon 是客户端的负载均衡,也叫进程内(Inter-Process Communication,IPC)负载均衡,指从注册中心获取一个实例进行流量导入。

Spring Cloud Ribbon 负载均衡组件-超时、重试、自定义服务列表

Ribbon 默认使用轮询的方式访问源服务,此外Ribbon 对服务实例节点的增减也能动态感知。

Ribbon 超时与重试

通过Ribbon进行服务间HTTP调用时,可以进行超时和重试的设置。

client-b: #被调用的service name

ribbon:

ConnectTimeout: 3000

ReadTimeout: 60000

MaxAutoRetries: 1 #对第一次请求的服务的重试次数

MaxAutoRetriesNextServer: 1 #要重试的下一个服务的最大数量(不包括第一个服务)

OkToRetryOnAllOperations: true

Ribbon 脱离Eureka 使用

默认情况下,Ribbon 客户端会从 Eureka 注册中心读取服务注册列表信息,来达到动态负载均衡的功能。但如果Eureka 不可用,或者只是为了和service provider 进行简单联调,可以临时脱离Eureka,而在Ribbon 客户端自行指定服务地址,让Ribbon脱离Eureka 注册中心来使用。

Spring Cloud Ribbon 负载均衡组件-超时、重试、自定义服务列表

首先,需要再Ribbon 中禁用 Eureka的功能:

#取消Ribbon使用Eureka

ribbon:

eureka:

enabled: false

然后,对service provider设置地址列表:

#配置Ribbon能访问的微服务节点,多个节点用逗号隔开

microservice-provider-user:

ribbon:

listOfServers: localhost:7900,localhost:7901,localhost:7902

相关推荐