Ribbon
Ribbon 是一个消费侧的负载均衡工具。
如何引入?
- 引入依赖
org.springframework.cloud:spring-cloud-starter-netflix-ribbon。 - 使用
LoadBalancerClientbean 操作。
@Service
public class SimpleOrderService {
@Resource
private LoadBalancerClient loadBalancerClient;
public String order(SString goodCode) {
ServiceInstance storeInstances = loadBalancerClient.choose("store");
String storeUrl = storeInstances.getUri().toString();
// dosth....
}
}
配置(以负载均衡规则为例)
- 高优先级:使用配置文件
application.properties配置。
<clientName>.ribbon.NFLoadBalancerClassName=ILoadBalancer
<clientName>.ribbon.NFLoadBalancerRuleClassName=IRule
<clientName>.ribbon.NFLoadBalancerPingClassName=IPing
<clientName>.ribbon.NIWSServerListClassName=ServerList
<clientName>.ribbon.NIWSServerListFilterClassName=ServerListFilter
- 低优先级:使用
@RibbonClient配置。
// 这个类不允许被 @ComponentScan 扫描到
@Configuration
public class PayLoadBalanceBeanConfig {
@Bean
public IRule payRule() {
return new MyRule();
}
}
@RibbonClient(name = "pay", configuration = PayLoadBalanceBeanConfig.class)
public class PayLoadBalanceConfig {
}
- 修改默认配置:使用
@RibbonClients配置。
@RibbonClients(defaultConfiguration = LoadBalanceConfig.class)
public class LoadBalanceConfig {
@Bean
public IRule defaultRule() {
return new MyRule();
}
}
//TODO:经测试,方法2个方法三不能同时使用,会提示存在两个
IRule。具体原因待探索。

本文介绍Spring Cloud中Ribbon作为消费侧负载均衡工具的应用。通过引入依赖和使用LoadBalancerClient bean进行操作,展示了如何配置不同优先级的负载均衡规则,包括使用配置文件、@RibbonClient注解和@RibbonClients注解。
1380

被折叠的 条评论
为什么被折叠?



