<dubbo:provider timeout="5000"/> 全局配置
<dubbo:service timeout="4000" .../> 接口类配置
<dubbo:method timeout="3000" ...> 方法配置
<dubbo:consumer timeout="4000" > 全局配置
<dubbo:reference timeout="3000" ...> 接口类配置
<dubbo:method timeout="2000" ...> 方法配置
@Slf4j
@DubboService(timeout = 5000)
public class TestDubboTimeOutFacadeImpl implements TestDubboTimeOutFacade {
@Override
public void sendMessage(String param) {
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("_________________服务提供者设置的超时时间是5s");
}
}
@DubboReference(timeout = 3000)
private TestDubboTimeOutFacade testDubboTimeOutFacade;
服务提供者注解方式配置
@Slf4j
@DubboService(timeout = 5000)
public class TestDubboTimeOutFacadeImpl implements TestDubboTimeOutFacade {
@Override
public void sendMessage(String param) {
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("_________________服务提供者设置的超时时间是5s");
}
}
服务消费者注解方式配置
@DubboReference(timeout = 3000)
private TestDubboTimeOutFacade testDubboTimeOutFacade;
执行结果如下:
消费者端报错:
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2022-01-06 15:06:59.482, end time: 2022-01-06 15:07:02.513, client elapsed: 0 ms, server elapsed: 3031 ms, timeout: 3000 ms, request: Request [id=92, version=2.0.2, twoway=true, event=false, broken=false, data=null], channel: /127.0.0.1:50076 -> /127.0.0.1:7890
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:181)
at org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker.invoke(AsyncToSyncInvoker.java:61)
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78)
at com.dahai.video.dubbotrace.DubboTransferTraceIdFilter.invoke(DubboTransferTraceIdFilter.java:43)
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
at org.apache.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:89)
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
at org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:51)
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
at com.dahai.video.dubbotrace.DubboTransferUserLidFilter.invoke(DubboTransferUserLidFilter.java:33)
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
at org.apache.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:69)
at org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:83)
at org.apache.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56)
at org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker.doInvoke(FailoverClusterInvoker.java:82)
... 107 more
Caused by: org.apache.dubbo.remoting.TimeoutException: Waiting server-side response timeout by scan timer. start time: 2022-01-06 15:06:59.482, end time: 2022-01-06 15:07:02.513, client elapsed: 0 ms, server elapsed: 3031 ms, timeout: 3000 ms, request: Request [id=92, version=2.0.2, twoway=true, event=false, broken=false, data=null], channel: /127.0.0.1:50076 -> /127.0.0.1:7890
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:210)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:175)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture$TimeoutCheckTask.notifyTimeout(DefaultFuture.java:298)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture$TimeoutCheckTask.lambda$run$0(DefaultFuture.java:285)
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.waitAndDrain(ThreadlessExecutor.java:93)
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:179)
... 121 more
服务提供者被重试3次
服务提供者注解方式配置
@Slf4j
@DubboService(timeout = 3000)
public class TestDubboTimeOutFacadeImpl implements TestDubboTimeOutFacade {
@Override
public void sendMessage(String param) {
try {
Thread.sleep(6000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("_________________服务提供者设置的超时时间是5s");
}
}
服务消费者注解方式配置
@DubboReference(timeout = 5000)
private TestDubboTimeOutFacade testDubboTimeOutFacade;
执行结果如下:
服务消费者端正常执行
服务提供者正常显示结果,不过有一个warn提醒
在Provider上尽量多配置Consumer端属性
在Provider可以配置的Consumer端属性
Provider上可以配置的Provider端属性
感谢您的阅读,如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哈。~~
引用:https://blog.csdn.net/dengnihuilaiwpl/article/details/86551720常见的修改文件时间有两种方式:方式一:修改访问和修改时间;使用utime函数方法二:修改创建时间使用pywin32file库以下代码可以实现两种方式,代码参考网络并根据实际情况做修改,完成对指定文件的时间的修改。import osimport os.pathimport datetimefrom win32file import CreateFile,S.
一、列表生成式示例:list1 = ['a','b','c']list2 = [1,2]# 普通的列表生成式print [x for x in list1]# 带有if条件判断的生成式print [y for y in list2 if y>1 and y<3]# 综合实践print [x*y for x in list1 for y in list2 i...
图解Qt安装(Linux平台)Linux 发行版虽然众多,但 Qt 安装过程大同小异,本节以 CentOS 7 为例来演示 Qt 的安装。在前一节中我们已经讲解了 Qt 安装包的下载方式,Qt 5.9.0 Linux 安装包的名称为 qt-opensource-linux-x64-5.9.0.run。下载的 run 文件不一定具有可执行权限, 可以执行如下命令开启执行权限:chmod +x /文件夹路径/qt-opensource-linux-x64-5.9.0.run将“文件夹路径”替换为自己系
两种方式建立Vsftpd虚拟用户 我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。本地用户登录:使用系统用户登录,在/etc/passwd中。虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。FTP虚拟用户是FTP服务器的专
《黑盒测试的测试用例设计方法 》等价类划分 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法. 1) 划分等价类: 等价类是指某个输
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
在素材平移窗口的底部的关键帧动画制作区域。顶部是时间线,它的持续时间和素材本身的持续时间一致。时间线的下方有两条轨道,一条是“位置”轨道,一条是“遮罩”轨道。我们要用的就是“位置”轨道。这里一定要小心,关键帧一定要定义在“位置”轨道上,如果不小心定义在“遮罩”轨道上的话,则不能实现位移动画。具体设置方法如下:1、打开vegas中文版的素材平移剪切窗口。2、利用添加和删除关键帧两个按钮,在适当位置添...
在这篇文章中,你将学会如何快速搭建 Cocos2d-HTML5 的开发和运行环境,对于脚本来说,大多编辑器提供语法高亮显示,而没有语义补全,虽然有些开发环境提供了自动补全功能,但都不大好用。这里推荐使用 WebStorm,作为一个 IDE(集成开发环境),它有非常强大的代码补全,而且其补全相当智能,提高了开发效率。还能与 Google Chrome 浏览器配合,完成实时编辑和调试功能。当然你可以有
有了eslint的校验,可以来规范开发人员的代码,是挺好的。但是有些像缩进、空格、空白行之类的规范,但是稍有不符合,就会在开发过程中一直报错,太影响心情和效率了。所以,还是会选择关闭eslint校验。在build/webpack.base.conf.js文件中,注释或者删除掉:module->rules中有关eslint的规则module: { rules: [ // ...(config.dev.useEslint ? [createLintingRule()] : []),
------- android培训、java培训、期待与您交流! ---------- 黑马程序员---构造方法 一、构造方法:1.函数名与类名相同2.不用定义返回值类型3.不可以加return语句class Person{Person(){System.out.println("hello");}}class Dem
Flex3学习笔记5Flex3数据绑定数据绑定是Flex非常棒的特征之一,它给了轻易传递信息的能力。数据绑定:当数据源对象的数据发生变化时,目标对象的数据会自动更新,而不需要再编写代码去强制更新。绑定实际也是借助事件机制来完成的,当目标使用了数据绑定的时候,目标对象就会监听数据源对象的某一固定事件。当数据源发生变化时,数据源会派发改变事件(ChangeEvent),通知目标对象更新数据。这个过程由
【获奖公布】“我的2016”主题征文活动 程序猿全指南,让【移动开发】更简单! 【观点】移动原生App开发和HTML 5开发,你更看好哪个?博客的神秘功能 ...