dubbo学习笔记(1):dubbo与springboot集成

配置传递

服务端设置超时时间

在这里插入图片描述
超时时间配置为1000ms,但是睡眠了1110ms,然后启动服务端。客户端不做任何更改,

然后启动客服端后访问服务,比如在命令端输入curl命令来访问接口地址。这时服务端并不会报超时异常,但是客服端会报超时异常

org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer

进入docker启动的zk客户端,进入bin目录,输入

zkCli.sh

然后输入

ls /dubbo/服务名称/providers

比如该项目就是

ls /dubbo/cxylk.dubbo.UserService/providers

如果查询结果不为空,就是有服务

在这里插入图片描述

粘贴到url解码网站,可以看到服务详细信息

dubbo://192.168.63.15:20880/cxylk.dubbo.UserService?anyhost=true&application=boot-server&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&interface=cxylk.dubbo.UserService&metadata-type=remote&methods=getUser&pid=22412&release=2.7.8&side=provider&timeout=1000&timestamp=1614952379834

可以看到超时时间为1000

现在在客户端配置超时时间

在这里插入图片描述

这时候访问服务就不会出现超时异常。

也就是说,服务端配置的超时时间只是一个参考,一个建议,如果客户端没有配置超时时间,那么就是以服务端为准,否则就是以客户端为准

配置继承

如果服务端或者客户端没有配置超时时间,但是在yml文件或者properties文件配置了超时时间,那么就会去继承文件中的配置。

配置优先级

在这里插入图片描述

以上面的配置为例,客户端配置超时时间为3000,服务端配置超时时间,并且新加配置如下图

在这里插入图片描述

在DefaultFuter类的newFuter方法第一行打个断点,debug启动客户端,这个时候的超时时间就不再是以客户端的配置为准了,而是以服务端的超时配置为准,因为我们在@DubboService注解中加了@Method注解,这是最小粒度的配置。配置后,可以看到当前的超时时间为1500。

完整代码:github码云

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值