dubbo超时

使用dubbo进行远程调用的过程中,需要设置远程调用的超时间.超时时间分别可以在服务的提供者配置中设置,也可以在服务调用这配置中设置.

在puhui 业务系统中服务提供者可以如下配置                                                      

<dubbo:service interface="com.**.demo.Service" ref="demoService" timeout="30000"/>    超时时间的单位是毫秒.

在puhui业务系统中服务调用者可以如下配置                                                      

 <dubbo:reference id="demoService" interface="com.**.demo.Service" timeout="30000" />

 

两种超时时间分别代表的意义:

     1.服务提供者的timeout: 指远程调用服务的方法执行的超时时间.

     2.服务调用者的timeout: 指服务调用者调用远程方法的执行超时时间.

 

dubbo的机制是 如果服务的调用者配置了超时时间,会覆盖服务的提供者设置的超时时间. 请注意,如果服务的调用者覆盖了服务提供者的远程方法调用超时时间,那么对于服务的提供者就会变得不可控,即服务的

调用者控制了服务提供者方法执行的超时时间,这对于一次远程调用是非常不合理的,所以dubbo非常不建议在服务的调用者配置中配置服务的超时时间.

 

dubbo如果方法调用超时,会自动重试,默认重试2次,不包括第一次调用,通过retries属性可以设置(集群容错机制为Failover 时方可生效)

 

<dubbo:service interface="com.**.demo.Service" ref="demoService" timeout="30000" retries="0"/> 设置0,不再重试.
posted @ 2015-12-10 18:25  kangye1014  阅读(945)  评论(0编辑  收藏  举报