一、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®ister=true®ister.ip=10.4.41.51&release=2.7.3&remote.application=user-service-provider&retries=3&revision=2.0.0&side=consumer&sticky=false×tamp=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®ister=true®ister.ip=10.4.41.51&release=2.7.3&remote.application=user-service-provider&retries=3&revision=2.0.0&side=consumer&sticky=false×tamp=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®ister=true®ister.ip=10.4.41.51&release=2.7.3&remote.application=user-service-provider&retries=3&revision=2.0.0&side=consumer&sticky=false×tamp=1599573920786&version=2.0.0 to the consumer 10.4.41.51 use dubbo version 2.7.3
3,当关闭检查后,先启动服务消费者工程,则正常启动不会报错。