Spring Cloud - Load Balance - Ribbon

Ribbon

Ribbon 是一个消费侧的负载均衡工具。

如何引入?

  • 引入依赖 org.springframework.cloud:spring-cloud-starter-netflix-ribbon
  • 使用 LoadBalancerClient bean 操作。
@Service
public class SimpleOrderService {
    @Resource
    private LoadBalancerClient loadBalancerClient;

    public String order(SString goodCode) {
        ServiceInstance storeInstances = loadBalancerClient.choose("store");
        String storeUrl = storeInstances.getUri().toString();
        // dosth....
    }
}

配置(以负载均衡规则为例)

  1. 高优先级:使用配置文件 application.properties 配置。
<clientName>.ribbon.NFLoadBalancerClassName=ILoadBalancer
<clientName>.ribbon.NFLoadBalancerRuleClassName=IRule
<clientName>.ribbon.NFLoadBalancerPingClassName=IPing
<clientName>.ribbon.NIWSServerListClassName=ServerList
<clientName>.ribbon.NIWSServerListFilterClassName=ServerListFilter
  1. 低优先级:使用 @RibbonClient 配置。
// 这个类不允许被 @ComponentScan 扫描到
@Configuration
public class PayLoadBalanceBeanConfig {
    @Bean
    public IRule payRule() {
        return new MyRule();
    }
}

@RibbonClient(name = "pay", configuration = PayLoadBalanceBeanConfig.class)
public class PayLoadBalanceConfig {
}
  1. 修改默认配置:使用 @RibbonClients 配置。
@RibbonClients(defaultConfiguration = LoadBalanceConfig.class)
public class LoadBalanceConfig {
    @Bean
    public IRule defaultRule() {
        return new MyRule();
    }
}

//TODO:经测试,方法2个方法三不能同时使用,会提示存在两个 IRule。具体原因待探索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值