spring cloud feign如何定制负载均衡策略

dengdaip 2019-02-15 10:27:05
求教各路大虾,feign如何定制负载均衡策略,是feign的,不是ribbon的
...全文
1363 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 8 楼 DDPWY 的回复:
[quote=引用 7 楼 清风一阵吹我心 的回复:] 打错字了,集成
嗯嗯 我知道了 不好意思呀,已经结贴了。。。。[/quote]哈哈,没事,我就逛逛论坛
dengdaip 2019-02-25
  • 打赏
  • 举报
回复
引用 7 楼 清风一阵吹我心 的回复:
打错字了,集成
嗯嗯 我知道了 不好意思呀,已经结贴了。。。。
  • 打赏
  • 举报
回复
打错字了,集成
  • 打赏
  • 举报
回复
Feign默认继承Ribbon,所以负载均衡策略也是Ribbon控制。在配置文件中直接改为随机或者权重就行了,建议看一下SpringCloud官网
亲爱的Joe 2019-02-18
  • 打赏
  • 举报
回复
先弄清楚作用。
feign其实不是做负载均衡的,负载均衡是ribbon的功能,feign只是集成了ribbon而已,但是负载均衡的功能还是feign内置的ribbon再做,而不是feign。
feign的作用的替代RestTemplate,性能比较低,但是可以使代码可读性很强。

ribbon的负载均衡策略,默认的常见有随机规则,轮询规则,权重规则
随机不用说,轮询也不用说,权重意思是,请求时间越久的server,其被分配给客户端使用的可能性就越低。
ribbon也可以自定义策略。具体方法包括:
方法1.实现IRule接口
方法2.集成AbstractLoadBalancerRule 、PredicateBasedRule。

只要在配置中自动注入自定义的策略bean就可以
@Bean
public IRule ribbonRule() {
// 负载均衡规则,改为随机
return new RandomRule();
}

,当然你也可能会向使用配置的方式而非代码方式。
但是记住,配置方式优先级要大于代码方式。
亲爱的Joe 2019-02-18
  • 打赏
  • 举报
回复
引用 4 楼 DDPWY 的回复:
[quote=引用 3 楼 亲爱的Joe 的回复:]
先弄清楚作用。
feign其实不是做负载均衡的,负载均衡是ribbon的功能,feign只是集成了ribbon而已,但是负载均衡的功能还是feign内置的ribbon再做,而不是feign。
feign的作用的替代RestTemplate,性能比较低,但是可以使代码可读性很强。

ribbon的负载均衡策略,默认的常见有随机规则,轮询规则,权重规则
随机不用说,轮询也不用说,权重意思是,请求时间越久的server,其被分配给客户端使用的可能性就越低。
ribbon也可以自定义策略。具体方法包括:
方法1.实现IRule接口
方法2.集成AbstractLoadBalancerRule 、PredicateBasedRule。

只要在配置中自动注入自定义的策略bean就可以
@Bean
public IRule ribbonRule() {
// 负载均衡规则,改为随机
return new RandomRule();
}

,当然你也可能会向使用配置的方式而非代码方式。
但是记住,配置方式优先级要大于代码方式。




springboot-h2.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
其中springboot-h2为application的name,这样做是不是也行[/quote]
记不清楚了,不知道你那样写行不行,不过各个版本可能配置方式都不一样,所以不指定版本也不好说话。网上很多spring cloud 系列教程,相信一定能够解决你的问题,建议花个十来分钟仔细看看负载均衡
dengdaip 2019-02-18
  • 打赏
  • 举报
回复
引用 3 楼 亲爱的Joe 的回复:
先弄清楚作用。 feign其实不是做负载均衡的,负载均衡是ribbon的功能,feign只是集成了ribbon而已,但是负载均衡的功能还是feign内置的ribbon再做,而不是feign。 feign的作用的替代RestTemplate,性能比较低,但是可以使代码可读性很强。 ribbon的负载均衡策略,默认的常见有随机规则,轮询规则,权重规则 随机不用说,轮询也不用说,权重意思是,请求时间越久的server,其被分配给客户端使用的可能性就越低。 ribbon也可以自定义策略。具体方法包括: 方法1.实现IRule接口 方法2.集成AbstractLoadBalancerRule 、PredicateBasedRule。 只要在配置中自动注入自定义的策略bean就可以
@Bean
  public IRule ribbonRule() {
    // 负载均衡规则,改为随机
    return new RandomRule();
  }
,当然你也可能会向使用配置的方式而非代码方式。 但是记住,配置方式优先级要大于代码方式。
springboot-h2.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule 其中springboot-h2为application的name,这样做是不是也行
dengdaip 2019-02-15
  • 打赏
  • 举报
回复
自己给自己顶下,比如说feign默认负载均衡策略为轮循,我现在想用随机或其他的策略,该怎么做
dengdaip 2019-02-15
  • 打赏
  • 举报
回复
再顶!!!!!!

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧