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 # 重试次数
直接对接口定义超时和重试次数
定义在服务提供方的超时和重试次数,表示服务接口最大响应时间和最大重试次数
定义在服务调用方的超时和重试次数,表示服务调用方最大等大时间和最大重试次数
幂等是指,不管执行多少次,最终的结果都一样,比如查询,更新,删除。
非幂等是指 ,不能重试,每次执行的结果不一样,比如数据的插入操作。
所以 幂等操作可以进行重试,非幂等操作不能重试。
retries=0 表示不重试(不配置也可以)