文章目录

  • 前言
  • 启动时检查
  • 超时时间
  • 重试次数
  • 超时和重试
  • 幂等的概念


前言

dubbo的一些配置

启动时检查

当微服务启动时,消费者就会检查依赖的生产者是否启动,即使我们不调用对应的接口,它也会检查生产者。有时候我们不希望它检查生产者。
配置 dubbo.consumer.check=false 表示不检查依赖的服务。
配置 dubbo.registry.check=false 表示不检查注册中心。

#dubbo相关
dubbo:
  scan:
    base-packages: com.it2.service2  #服务扫描基准包(扫描被dubbo注解的类)
  protocol:
    name: dubbo  #协议
    port: ${dubbo_port:20891}  #协议端口 -1 表示不限制
  registry:
    address: spring-cloud://localhost #注册中心,表示使用配置文件中的注册中心(依据配置而定)
    check: false # 注册中心检查
  application:
    qos-enable: false #dubbo运维服务是否开启
  consumer:
    check: false #启动时就检查依赖的服务
    timeout: 3000 # 超时时间

超时时间

配置dubbo调用的超时时间,
timeout默认是1000,单位毫秒
dubbo.consumer.timeout:3000 #表示消费方调用生产方的超时时间为3秒

#dubbo相关
dubbo:
  scan:
    base-packages: com.it2.service2  #服务扫描基准包(扫描被dubbo注解的类)
  protocol:
    name: dubbo  #协议
    port: ${dubbo_port:20891}  #协议端口 -1 表示不限制
  registry:
    address: spring-cloud://localhost #注册中心,表示使用配置文件中的注册中心
    check: false # 注册中心检查
    timeout: 3000 # 超时时间
  application:
    qos-enable: false #dubbo运维服务是否开启
  consumer:
    check: false #启动时就检查依赖的服务
    timeout: 3000 # 超时时间

消息生产方超时时间配置,需要在生产方配置
表示消息生成方最大超时时间

#dubbo相关
dubbo:
  provider:
    timeout: 2000 # 提供方超时时间

配置优先级: 同级情况下,消费方大于生产方,方法级大于接口级,而接口级大于全局配置。

注意:timeout可以配置在服务消费方和提供方,但是通常建议配置在提供方

重试次数

dubbo调用远程接口可能会失败,所以它提供了重试机制。
retries默认是2,失败后重试2次,一共3次。
dubbo.consumer.retries: 3 # 重试次数
如果请求失败,那么dubbo会最多重试3次,尝试调用。实际执行次数是本次+重试次数,也就是4次。
注意: 如果服务提供者有负载均衡,那么它会按照负载均衡策略去调用多个服务提供者。

#dubbo相关
dubbo:
  scan:
    base-packages: com.it2.service2  #服务扫描基准包(扫描被dubbo注解的类)
  protocol:
    name: dubbo  #协议
    port: ${dubbo_port:20891}  #协议端口 -1 表示不限制
  registry:
    address: spring-cloud://localhost #注册中心,表示使用配置文件中的注册中心
    check: false # 注册中心检查
    timeout: 3000 # 超时时间
  application:
    qos-enable: false #dubbo运维服务是否开启
  consumer:
    check: false #启动时就检查依赖的服务
    timeout: 3000 # 超时时间
    retries: 3 #重试次数

同样的,重试次数,也可以配置针对方法级别,接口级和全局配置。
也可以配置在消息生产方。

#dubbo相关
dubbo:
  provider:
    timeout: 2000 # 提供方超时时间
    retries: 3 # 重试次数

超时和重试

直接对接口定义超时和重试次数

dubbo nacos 健康检测_幂等


dubbo nacos 健康检测_幂等_02


定义在服务提供方的超时和重试次数,表示服务接口最大响应时间和最大重试次数

定义在服务调用方的超时和重试次数,表示服务调用方最大等大时间和最大重试次数

dubbo nacos 健康检测_分布式_03

幂等的概念

幂等是指,不管执行多少次,最终的结果都一样,比如查询,更新,删除。
非幂等是指 ,不能重试,每次执行的结果不一样,比如数据的插入操作。
所以 幂等操作可以进行重试,非幂等操作不能重试。
retries=0 表示不重试(不配置也可以)