dubbo3超时时间延长

Java教程 2025-09-25

前言

dubbo支持对rpc方法设置超时时间,本文使用dubbo3

超时时间配置

dubbo超时时间配置文档

dubbo超时时间配置文档可以参考

https://cn.dubbo.apache.org/zh-cn/overview/mannual/java-sdk/tasks/framework/timeout/

全局配置

如果是消费者的话

dubbo:
  consumer:
    timeout: 5000

生产者的话

dubbo:
  provider:
    timeout: 5000

生产者配置

@Slf4j
@Component
@DubboService(timeout = 15000)
public class UserServiceImpl implements UserService {

    private static Logger logger = LoggerFactory.getLogger(UserServiceImpl.class);

    @Override
    public String getData(String data) {
        logger.info("=============请求数据为:{{}}", data);
        try {
            Thread.sleep(6 * 1000L);
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        return data + ":success";
    }
}

消费者单个方法配置

@DubboReference(timeout = 7000,
methods = {
        @Method(name = "save", timeout = 15000)
})
private UserService userService;

超时时间顺序

超时时间设置,生效的优先级

设置在方法上的优先级最高,设置在服务上的优先级次之,全局配置的优先级最次

消费者和生产者都配置了超时时间,优先级关系

在消费者和生产者同级配置中,消费者优先级比生成者优先级高

在消费者和生成者不同级配置中,级别高的优先级高

总结

dubbo支持对rpc方法设置超时时间