定义:
Ribbon是一个客户端负载均衡器,可以让您对HTTP和TCP客户端的行为进行大量控制。Feign已经使用了Ribbon,因此,如果您使用@FeignClient,此部分也适用。
Ribbon中的一个核心概念是指定客户端的概念。每个负载均衡器都是一组组件的一部分,这些组件一起工作以按需联系远程服务器,并且该集合具有您作为应用程序开发人员提供的名称(例如,通过使用@FeignClient批注)。
根据需要,Spring Cloud通过使用RibbonClientConfiguration为每个命名客户端创建一个新的集合作为ApplicationContext。这包含(除其他外)ILoadBalancer,RestClient和ServerListFilter。
Ribbon与Spring Retry一起使用
将Ribbon与Spring Retry一起使用时,可以通过配置某些功能区属性来控制重试功能。
- client.ribbon.MaxAutoRetries 最大重试次数
- client.ribbon.MaxAutoRetriesNextServer 下一个服务器重试次数
- client.ribbon.OkToRetryOnAllOperations 重试所有操作包括post会缓存很多信息
此外,您可能希望在响应中返回某些状态代码时重试请求。
您可以通过设置clientName.ribbon.retryableStatusCodes属性列出您希望Ribbon客户端重试的响应代码you can also create a bean of type LoadBalancedRetryPolicy and implement the retryableStatusCode method to retry a request given the status code.1
2
3clientName:
ribbon:
retryableStatusCodes: 404,502