Dubbo(十一)dubbo的超时重试配置以及启动检查

一、dubbo超时重试配置

dubbo重试次数配置使用的是retries 属性。可以配置于服务提供者、消费者的接口方法、接口类、以及全局配置范围上。与超时配置优先级一样遵循就近原则,方法上的配置优先于接口类的,全局配置优先级最低。同级别的配置,消费者的配置优先于提供者的配置。

1,使用xml方式配置服务提供者

分别配置在<dubbo:provider  retries="2" ...>全局、<dubbo:service retries="3" ...>接口、<dubbo:method retries="4" ...>方法

2,使用注解方式配置服务提供者

配置在服务提供接口类上的重试方式,在Service注解内进行配置,貌似无方法以及全局方式的注解。

3,使用xm方式配置服务消费者工程

分别配置在<dubbo:consumer  retries="2" ...>全局、<dubbo:reference retries="3" ...>接口、<dubbo:method retries="4" ...>方法

4,使用注解配置服务消费者重试次数

配置在属性引用的注解@Reference上,貌似也没找到全局以及方法级别的配置。

二、dubbo的启动检查

dubbo的启动检查是在启动服务消费者的时候,是否进行检查消费者中引用的服务接口是否在注册中心中是否存在。默认检查开启。检查只存在与dubbo消费者工程中,只要全局级别和类级别上。

2.1 使用xml方式配置开启关闭检查

与 timeout、retries 一样 全局配置与 <dubbo:consumer > 全局、<dubbo:reference >引用接口上。

2.2 使用注解方式配置开启检查

作用与属性注解@Reference中。

1,默认开启检查时,正常启动时先启动服务提供者工程,在启动服务消费者工程,启动过程无问题;

2,默认开启检查时,先启动服务消费者工程,则在启动过程中进行检查,当有引用的服务不存在时,则会抛出异常:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderController': Unsatisfied dependency expressed through field 'orderService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderServiceImpl': Injection of @Reference dependencies is failed; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.xiaohui.service.UserService. No provider available for the service com.xiaohui.service.UserService:2.0.0 from the url zookeeper://172.18.230.163:2181/org.apache.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&bean.name=ServiceBean:com.xiaohui.service.UserService:2.0.0&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.xiaohui.service.UserService&lazy=false&methods=queryAllUserAddress&pid=11228&qos.enable=false&register=true&register.ip=10.4.41.51&release=2.7.3&remote.application=user-service-provider&retries=3&revision=2.0.0&side=consumer&sticky=false&timestamp=1599573920786&version=2.0.0 to the consumer 10.4.41.51 use dubbo version 2.7.3

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderServiceImpl': Injection of @Reference dependencies is failed; nested exception is java.lang.IllegalStateException: Failed to check the status of the service com.xiaohui.service.UserService. No provider available for the service com.xiaohui.service.UserService:2.0.0 from the url zookeeper://172.18.230.163:2181/org.apache.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&bean.name=ServiceBean:com.xiaohui.service.UserService:2.0.0&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.xiaohui.service.UserService&lazy=false&methods=queryAllUserAddress&pid=11228&qos.enable=false&register=true&register.ip=10.4.41.51&release=2.7.3&remote.application=user-service-provider&retries=3&revision=2.0.0&side=consumer&sticky=false&timestamp=1599573920786&version=2.0.0 to the consumer 10.4.41.51 use dubbo version 2.7.3
Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.xiaohui.service.UserService. No provider available for the service com.xiaohui.service.UserService:2.0.0 from the url zookeeper://172.18.230.163:2181/org.apache.dubbo.registry.RegistryService?anyhost=true&application=order-service-consumer&bean.name=ServiceBean:com.xiaohui.service.UserService:2.0.0&check=false&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=com.xiaohui.service.UserService&lazy=false&methods=queryAllUserAddress&pid=11228&qos.enable=false&register=true&register.ip=10.4.41.51&release=2.7.3&remote.application=user-service-provider&retries=3&revision=2.0.0&side=consumer&sticky=false&timestamp=1599573920786&version=2.0.0 to the consumer 10.4.41.51 use dubbo version 2.7.3

3,当关闭检查后,先启动服务消费者工程,则正常启动不会报错。

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值