SpringCloud-Ribbon:负载均衡工具

摘要

Ribbon是SpringCloud框架中使用比较广泛的负载均衡工具,很多组件中都通过其作为负载均衡工具,如:Feign

参考文档:http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html#spring-cloud-ribbon
略:16.5,16.8-17

正文

1 Ribbon的maven坐标

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>

2 配置Ribbon客户端

2.1 针对某个服务配置

  针对某个服务配置Ribbon,有两种方式。
1. 通过在配置文件加入<service-name>.ribbon.*进行配置,优先生效于配置类,具体的配置属性可以查看CommonClientConfigKey类。常用配置如下:

`<service-name>.ribbon.NFLoadBalancerClassName`: Should implement ILoadBalancer
`<service-name>.ribbon.NFLoadBalancerRuleClassName`: Should implement IRule
`<service-name>.ribbon.NFLoadBalancerPingClassName`: Should implement IPing
`<service-name>.ribbon.NIWSServerListClassName`: Should implement ServerList
`<service-name>.ribbon.NIWSServerListFilterClassName`: Should implement ServerListFilter
  1. 通过配置类进行配置。

      下面以user-service服务为例,讲解如何通过配置类配置。

@Configuration
@RibbonClient(name = "user-service", configuration = UserServiceRibbonConfig.class)
public class UserServiceConfig {
}

  UserServiceConfig不能被Spring容器扫描到,否则将会成为全局Ribbon配置类。

  下面是Ribbon默认的配置

Bean TypeBean NameClass Name
IClientConfigribbonClientConfigDefaultClientConfigImpl
IRuleribbonRuleZoneAvoidanceRule
IPingribbonPingDummyPing
ServerListribbonServerListConfigurationBasedServerList
ServerListFilterribbonServerListFilterZonePreferenceServerListFilter
ILoadBalancerribbonLoadBalancerZoneAwareLoadBalancer
ServerListUpdaterribbonServerListUpdaterPollingServerListUpdater
2.2 全局Ribbon配置
@RibbonClients(defaultConfiguration = DefaultRibbonConfig.class)
public class RibbonClientDefaultConfig {

}

3 同Eureka一起使用

  当Eureka被使用时,Ribbon的服务列表将从Eureka获取。

4 没有Eureka使用方式

  当没有Eureka时,可以将服务列表配置在配置文件中

user-service:
    ribbon:
        listOfServers: url1,url2...

5 禁止Eureka

  加入配置:ribbon.eureka.enabled=false

设置启动加载服务列表

每个服务的客户端默认延迟加载,即在服务第一次请求时加载。
设置程序启动加载服务客户端

ribbon:
    earger-load:
        enable:true
        clients:client1,client2...

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值