使用Dubbo的SPI扩展机制实现自定义LoadBalance——方法二 不改源码添加META-INF/dubbo元数据...

一.官网提供的方法

参考官网

http://dubbo.apache.org/zh-cn/docs/dev/impls/load-balance.html

 

二.方法总结

在工程中创建类并实现LoadBalance接口

public class SimpleLoadBalance implements LoadBalance {
    public <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {
        return invokers.get(invokers.size()-1);
    }
}

在resources中构建如下目录结构

在com.alibaba.dubbo.rpc.cluster.LoadBalance文件中配置如下内容,simpleloadbalance就是该负载均衡的名字。

simpleloadbalance=com.xxx.testdubbo.loadbalance.SimpleLoadBalance

最终的目录结构

 

三.踩过得一些坑

Dubbo使用的是2.5.10,版本比较老,所以在loadFile时使用的是com.alibaba.xxxx,而官网给的是org.apache.dubbo.xxxx,导致加载不到扩展类。

所以更改META-INF/dubbo/org.apache.dubbo.rpc.cluster.LoadBalance文件名为META-INF/dubbo/com.alibaba.dubbo.rpc.cluster.LoadBalance

 

在使用maven打包时,默认不会把META-INF文件夹编译到classpath中,加上<resource>把resources/下所有文件都输出到classpath

 

四.运行调试

 参考 https://www.cnblogs.com/Sicwen/p/10573617.html

 

转载于:https://www.cnblogs.com/Sicwen/p/10573099.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值