Dubbo的配置

作者: 文萃北 | 来源:发表于2019-07-04 11:36 被阅读0次

    Dubbo的配置其实已经在[官网](http://dubbo.apache.org/zh-cn/docs/user/configuration/xml.html

    )说的很详细了。

    分为以下三类:

    1.Xml配置
    2.API配置
    3.注解配置

    配置之间的关系

    配置之间的关系.png

    不同粒度配置的覆盖关系

    • 方法级优先,接口级次之,全局配置再次之。
    • 如果级别一样,则消费方优先,提供方次之。

    配置覆盖关系的优先级

    1.JVM System Properties,-D参数
    2.Externalized Configuration,外部化配置
    3.ServiceConfig、ReferenceConfig等编程接口采集的配置
    4.本地配置文件dubbo.properties


    image.png

    Dubbo的Config的源码结构图

    image.png

    AbstractInterfaceConfig

    AbstractInterfaceConfig是抽象类,ConsumerConfig和ProviderConfig都实现了它。先看看这里的源码

    checkRegisty()源码

       protected void checkRegistry() {
            // 当 RegistryConfig 对象数组为空时,若有 `dubbo.registry.address` 配置,进行创建。
            // for backward compatibility 向后兼容
            if (registries == null || registries.isEmpty()) {
                String address = ConfigUtils.getProperty("dubbo.registry.address");
                if (address != null && address.length() > 0) {
                    registries = new ArrayList<RegistryConfig>();
                    String[] as = address.split("\\s*[|]+\\s*");
                    for (String a : as) {
                        RegistryConfig registryConfig = new RegistryConfig();
                        registryConfig.setAddress(a);
                        registries.add(registryConfig);
                    }
                }
            }
            if ((registries == null || registries.isEmpty())) {
                throw new IllegalStateException((getClass().getSimpleName().startsWith("Reference")
                        ? "No such any registry to refer service in consumer "
                        : "No such any registry to export service in provider ")
                        + NetUtils.getLocalHost()
                        + " use dubbo version "
                        + Version.getVersion()
                        + ", Please add <dubbo:registry address=\"...\" /> to your spring config. If you want unregister, please set <dubbo:service registry=\"N/A\" />");
            }
            // 读取环境变量和 properties 配置到 RegistryConfig 对象数组。
            for (RegistryConfig registryConfig : registries) {
                appendProperties(registryConfig);
            }
        }
    

    相关文章

      网友评论

        本文标题:Dubbo的配置

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