美文网首页
Ribbon规则IRule调整遇到的坑

Ribbon规则IRule调整遇到的坑

作者: 逝去的风信子 | 来源:发表于2021-03-05 12:01 被阅读0次

    背景

    技术线,springcloud,zookeeper,ribbon

    由于公司发版比较频繁,每次服务提供方发版总会有些有些异常

    No instances available for ***

    解决方式

    ribbon的配置主要在RibbonClientConfiguration中。

    通过变更IRule可以更改获取server的规则

    规则图

    实际使用准备结合这2中rule来替换。

    问题点

    这里的${ribbon.client.name}无法配置,因为每个server是一个独立的context,具体实现是SpringClientFactory,每个server name一个独立的AnnotationConfigApplicationContext。我们项目中设置配置会出错。

    替补

    项目启动的时候扫描所有feignclinet注解类,拿到所有的server-name

    这时候可以通过System.setProperty("XXX.ribbon.NFLoadBalancerRuleClassName",MyRetryRule)的方式设置。

    虽然绕了一点,但是在不改变底层设计的方式上实现了需求。

    相关文章

      网友评论

          本文标题:Ribbon规则IRule调整遇到的坑

          本文链接:https://www.haomeiwen.com/subject/jodssftx.html