dubbo提供在provider和consumer端,都提供了超时(timeout)和重试(retries)的参数配置。
provider端在<dubbo:service>
中配置,consumer端在<dubbo:reference>
中配置。
timeout默认值为1000,单位毫秒,表示超时时间是1秒;
retries默认值为2,表示重试2次,加上本身调用1次,一共有3次调用;
在org.apache.dubbo.common.Constants
类可以找到:
public static final int DEFAULT_TIMEOUT = 1000;
public static final int DEFAULT_RETRIES = 2;
consumer端配置优先于provider端配置
通过一个例子来对这2个参数进行详细学习和解读。
建立如下工程结构:
其中:
demo-consumer为consumer端应用(SpringBoot工程)
demo-provider为provider端父工程,它下面有2个子工程,
demo-interface为dubbo服务接口定义
demo-service为provider端应用(SpringBoot工程),实现了demo-interface接口,
demo-interface里接口定义如下:
public interface HelloService {
String hello(String name);
}
定义了1个HelloService接口,里面一个hello方法,请求参数为1个String,返回String。
在demo-service里对该接口的实现类如下:
@Service("helloService")
public class HelloServiceImpl implements HelloService {
@Override
public String hello(String name) {
System.out.println("hello begin=>" + name);
System.out.println("hello end=>" + name);
return "hello " + name;
}
}
原文:https://www.cnblogs.com/cdfive2018/p/10204720.html