• dubbo(3): 启动时检查/超时/重试/幂等


    前言

    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 # 超时时间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    超时时间

    配置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 # 超时时间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

    #dubbo相关
    dubbo:
      provider:
        timeout: 2000 # 提供方超时时间
    
    • 1
    • 2
    • 3
    • 4

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

    注意: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 #重试次数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

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

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

    超时和重试

    直接对接口定义超时和重试次数
    在这里插入图片描述
    在这里插入图片描述
    定义在服务提供方的超时和重试次数,表示服务接口最大响应时间和最大重试次数
    定义在服务调用方的超时和重试次数,表示服务调用方最大等大时间和最大重试次数

    在这里插入图片描述

    幂等的概念

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

  • 相关阅读:
    LLVM学习笔记(62)
    获取元数据和隔离策略
    怎么将pdf怎么压缩的小一点?
    数据结构之-----二叉树
    PHP房屋租售信息管理系统可以用wamp、phpstudy运行定制开发mysql数据库BS模式
    Java实验案例(一)
    springboot vue elementui理发店预约系统源码
    dart 学习 之 在 构造方法中使用 this
    TortoiseGit安装和配置详细说明
    中南民族大学计算机考研资料汇总
  • 原文地址:https://blog.csdn.net/u011628753/article/details/126658929