dubbo parameters参数用法示例

4e70cca9ed128448bb89e21290baa12b.png

        由于各种原因,目前我司有些项目还在使用dubbox2.8.4 版本,有些功能需要通过parameters参数设置才能实现,现分享如下,希望可以帮助需要的同学

一、自定义路由策略的生效

1、通过xml配置生效

你会发现没有类似 router=xxx 的选项可用,这时候就得使用parameter了

<dubbo:registry address="xx" file="xx" group="xx" >


      <dubbo:parameter key="router" value="myRouterFactory" />


</dubbo:registry>

2、通过bean配置生效

也是没有类似router的api可用,只能使用parameter搞定

@Bean


public RegistryConfig registryConfig(){


   RegistryConfig registryConfig = new RegistryConfig(dubboRegistryAddress);


   HashMap<String, String> hashMap = new HashMap<>();


   hashMap.put("router","myRouterFactory");


   registryConfig.setParameters(hashMap);


   return registryConfig;


}

二、设置某个方法的超时时间

1、通过xml方式实现

<dubbo:service interface="xxxxxx" ref="xxxxx">


   <dubbo:method name="xxxxx" timeout="60000" retries="1" />


</dubbo:service>

2、通过注解的方式实现

以Service注解为例,Reference用法类似

某个类的超时时间这样设置,针对类中所有方法生效:

@Service(timeout = 5000)
public class  A{
    a1(){}
    a2(){}
    a3(){}
}

如果想单独设置a1方法的超时时间呢,你会发现注解里面是没有类似 methods 的参数的,这时候可以通过parameters方式进行配置,如下:

@Service(timeout = 5000,parameters = {"a1.timeout", "10000"})
public class  A{
    a1(){}
    a2(){}
    a3(){}
}

多个方法配置:

@Service(timeout = 5000,parameters = {"a1.timeout", "10000","a2.timeout", "15000"})
public class  A{
    a1(){}
    a2(){}
    a3(){}
}

三、总结

1、如果你在使用低版本的dubbo,建议升级到 apache 高版本的dubbo,高版本里的配置参数是更完善的;

2、如果你在配置dubbo时发现没有找到自己想要的标签或者属性或者api,这时候就要考虑通过万能的parameter来实现;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕哥架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值