• 使用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

  • 相关阅读:
    RedMine 1.3.3 安装攻略
    .net 4.0 framework 安装时发生严重错误
    MYSQL安装配置
    接口隔离ISP
    依赖倒置DIP
    VS2010添加WP模板
    VS2012尝鲜
    OCP开放闭合
    单一职责
    里氏替换
  • 原文地址:https://www.cnblogs.com/Sicwen/p/10573099.html
Copyright © 2020-2023  润新知