Skip to content

负载均衡(Ribbon)

概述

Ribbon是一个为客户端提供基于HTTP和TCP负载均衡功能的工具,内部提供了一个叫做ILoadBalance的接口代表负载均衡器的操作,能够自动的基于某种规则,将REST请求自动转换成客户端负载均衡进行服务调用。

适用范围

Pangea v2.0.1.6+

快速上手

1、添加依赖

Sentinel的starter依赖已经添加到了盘古common-core核心包中,使用时,引入common包即可。

html
<!--maven依赖包 -->
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>

2、使用方法

▪️启动多个服务实例并注册到一个注册中心或是多个相关联的服务注册中心。

▪️为RestTemplate配置类添加@LoadBalanced注解即可。

html
@Bean
@LoadBalanced
  public RestTemplate restTemplate() {
  return new RestTemplate();
}

3、常用配置

html
# 请求连接的超时时间
ribbon:
   ConnectTimeout: 2000

# 请求处理的超时时间
ribbon: 
   ReadTimeout: 5000

# 每个Ribbon客户端设置不同的超时时间, 通过服务名称进行指定:
ribbon-config-demo: 
   ribbon: 
      ConnectTimeout: 2000
ribbon-config-demo: 
   ribbon:
      ReadTimeout: 5000

# 最大连接数
ribbon: 
   MaxTotalConnections: 500

# 每个host最大连接数
ribbon:
   MaxConnectionsPerHost: 500

# 对当前实例的重试次数
ribbon:
   maxAutoRetries: 1

# 切换实例的重试次数
ribbon:
   maxAutoRetriesNextServer: 3

# 对所有操作请求都进行重试
ribbon: 
   okToRetryOnAllOperations: true

# 对Http响应码进行重试
ribbon:
   retryableStatusCodes: 500,404,502

参考文档