一 ribbon初级
1 配置配置文件yum
2 application配置eureka客户端
LoadBalanced配置结合restful接口类
3 找到目标内部server接口
@GetMapping
(
"/log-instance"
)
public
void
logInstance(){
ServiceInstance serviceInstance =
this
.loadBalancerClient.choose(
"flim-user"
);
log.info(
"{}:{}:{}"
,serviceInstance.getServiceId(),serviceInstance.getHost(),serviceInstance.getPort());
}
运行测试程序
{"id":1,"username":"account1","name":"张三","age":20,"balance":100.00}
二 ribbon自定义的配置
Ribbon提供了多种策略,例如轮询round robin、随机Random、根据响应时间加权等。
可以使用Java代码或属性自定义 Ribbon 的配置,Ribbon 默认配置类是 RibbonClientConfiguration,也可以使用一个 POJO 自定义 Ribbon 配置,这种 配置是细粒度的,不同的 Ribbon 客户端可以使用不同的配置
/**
* 该类为配置类
* 不应该被ComponentScan扫描
*/
@Configuration
public
class
RibbonConfiguration {
@Bean
public
IRule ribbonRule(){
//配置负载均衡的规则,更改为随机
return
new
RandomRule();
}
}
使用 @RibbonClient 或 @RibbonClients 注解为服务提供者指定配置类
@SpringBootApplication
@EnableDiscoveryClient
@RibbonClient
(name =
"flim-user"
,configuration = RibbonConfiguration.
class
)
public
class
FlimConsumerApplication {
@Bean
@LoadBalanced
public
RestTemplate restTemplate(){
return
new
RestTemplate();
}
public
static
void
main(String[] args) {
SpringApplication.run(FlimConsumerApplication.
class
, args);
}
}