• Dubbo 配置注意事项


    检查依赖的服务

    
    
    • 1

    Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时抛出异常,阻止Spring初始化完成,以便上线时,能及早发现问题,默认check=true。

    如果你的Spring容器是懒加载的,或者通过API编程延迟引用服务,请关闭check,否则服务临时不可用时,会抛出异常,拿到null引用,如果check=false,总是会返回引用,当服务恢复时,能自动连上。

    关闭某个服务的启动时检查:(没有提供者时报错)
    
    关闭所有服务的启动时检查:(没有提供者时报错)
    
    关闭注册中心启动时检查:(注册订阅失败时报错)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    也可以用dubbo.properties配置:

    dubbo.reference.com.xxx.XxxService.check=false
    dubbo.reference.check=false
    dubbo.consumer.check=false
    dubbo.registry.check=false
    
    • 1
    • 2
    • 3
    • 4

    也可以用-D参数:

    java -Ddubbo.reference.com.xxx.XxxService.check=false
    java -Ddubbo.reference.check=false
    java -Ddubbo.consumer.check=false
    java -Ddubbo.registry.check=false
    
    • 1
    • 2
    • 3
    • 4

    注意区别:

    • dubbo.reference.check=false,强制改变所有reference的check值,就算配置中有声明,也会被覆盖。
    • dubbo.consumer.check=false,是设置check的缺省值,如果配置中有显式的声明,如:,不会受影响。
    • dubbo.registry.check=false,前面两个都是指订阅成功,但提供者列表是否为空是否报错,如果注册订阅失败时,也允许启动,需使用此选项,将在后台定时重试。

    引用缺省是延迟初始化的,只有引用被注入到其他Bean,或被getBean()获取,才会初始化。

    如果需要饥饿加载,即没有人引用也立即生成动态代理,可以配置:

    
    
    • 1

    超时与重试

    dubbo提供在provider 和 consumer端 都提供了设置超时(timeout)和重试(retries)配置。

    默认值

    timeout默认值为1000,单位毫秒,表示超时时间是1秒;

    retries默认值为2,表示重试2次,加上本身调用1次,一共有3次调用;

    org.apache.dubbo.common.Constants类可以找到:

    public static final int DEFAULT_TIMEOUT = 1000;
    public static final int DEFAULT_RETRIES = 2;
    
    • 1
    • 2

    配置优先级别

    1 consumer端配置优先于provider端配置

    2 provider和consumer端的timeout和retires均不设置,使用默认值

    3 consumer的timeout优先级较高,两端都设置的情况下,以consumer端的timeout为准

  • 相关阅读:
    Shell命令操作Linux文件系统
    CTF之信息收集
    SpringBoot 2.x 实战仿B站高性能后端项目
    关于晋升与跳槽的一些思考
    CentOS 7 安装 JDK11(注意版本号要与自己的版本一致)
    Typescript-----面试题
    淘宝电商数据API接口
    Kubernetes(k8s)的核心设计介绍
    学习c++的第十天
    闲话 ASP.NET Core 数据校验(一):内置数据校验
  • 原文地址:https://blog.csdn.net/m0_67390379/article/details/126327805