关于dubbo服务超时的讨论
呵呵,偷点懒,直接把QQ上的讨论发下来。
huxin 10:35:19
你们现在超时了是咋办的,首先超时了,回复用户肯定是要的
huxin 10:36:14
超时了用户实际是不知道这业务是成功还失败了
后续你们如何处理
幂等性。根据业务来的
一种是用户在某个时间主动再来发起这个业务
一种是系统的监听机制发现业务成功主动推过来告知用户
当用户在某个时间主动再来发起这个业务的时候,服务必须要保证幂等性
那么你们有具体的幂等性机制吗,还是这个幂等性是要通过查数据库,从业务角度去完成呢
如果是这样,那么幂等性就强依赖业务代码了
就要强依赖程序员的逻辑了,检查起来就比较累,程序员素质高,幂等性就保证的好,反之就差。你测的时候还得分析他的业务代码,才能判断幂等性是不是保证了
是的
huxin 10:42:35
所以我认为,这个幂等性得从架构上来保证,至于程序愿意在业务层面上再保证那再好不过了
huxin 10:43:38
至于程序员愿意在业务层面上再保证那再好不过了
这样就是双保险
一棵小草 10:43:56
你觉得架构上怎么保证啊
huxin 10:44:18
可以用全局业务编号的机制
你要干一件事,先领一个号,这个号类似于MD5码,你同样的一次业务永远会是这个编号
huxin 10:46:17
这样我不管你的代码管不管业务的幂等性,架构上是把了一道关的
我检查冥等性的代码是所有业务可以共用的
huxin 10:47:41
程序员如果愿意在业务层面上再保证一次冥等性那再好不过了
huxin 10:48:47
以上就是我的服务超时解决方案
huxin 10:53:39
架构级的冥等性的好处是对程序员的依赖性降低了,对架构师的能力有依赖,但一般来说,架构师能力总是强于程序员的,所以架构师更靠谱些吧。
关于dubbo服务超时的讨论的更多相关文章
- Dubbo服务超时
服务消费者引用服务提供者的服务时可能由于网络原因导致长时间未返回相应,此时大量的线程将会阻塞,引起性能下降等问题.可以通过引入服务超时来解决该问题 服务超时指服务在给定的时间内未返回相应将立即终止该请 ...
- 记一次线上dubbo服务超时和线程池满问题排查
线上某dubbo服务A调用dubbo服务B的接口X方法,调用端A日志中出现了很多超时的情况,提供端B该接口X超时时间设置为60s: 查看提供端B的日志,报了很多线程池满的异常: Caused by: ...
- dubbo服务端响应超时错误一例记录
错误描述: Portlet J2AppsPortlet::QuickStartPortlet not available: Waiting server-side response timeout. ...
- Dubbo服务调用超时
服务降级的发生,其实是由于消费者调用服务超时引起的,即从发出调用请求到获取到提供者的响应结果这个时间超出了设定的时限.默认服务调用超时时限为1秒.可以在消费者端与提供者端设置超时时限. 一.创建提供者 ...
- dubbo的超时重试
dubbo的超时分为服务端超时 SERVER_TIMEOUT 和客户端超时 CLIENT_TIMEOUT.本文讨论服务端超时的情形: 超时:consumer发送调用请求后,等待服务端的响应,若超过ti ...
- dubbo服务提供与消费
一.前言 项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法.现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考. 二.Dubbo是什么 Dubbo ...
- 当当网开源Dubbox,扩展Dubbo服务框架支持REST风格远程调用
当当网近日开源了Dubbox项目,可为Dubbo服务框架提供多项扩展功能,包括REST风格远程调用.Kryo/FST序列化等等. 当当网架构部和技术委员会架构师沈理向InfoQ中文站介绍了Dubbox ...
- 跟我学习dubbo-使用Maven构建Dubbo服务的可执行jar包(4)
Dubbo服务的运行方式: 1.使用Servlet容器运行(Tomcat.Jetty等)----不可取 缺点:增加复杂性(端口.管理) 浪费资源(内存) 官方:服务容器是一个standalone的启动 ...
- dubbo RPC超时异常小结
dubbo消费者调用服务超时的原因可能有很多,今天排查问题花了两个小时,也查了很多资料,好像每一篇资料都是提出一个问题,所以简单总结几点: 1. 配置才是重中之重,仔细检查服务提供方的dubbo se ...
随机推荐
- Hbase balancer RSgroup shell 脚本
#!/bin/bashTMP_FILE=tmp_groupsGROUPS_FILE=groups.txtecho "list_groups" | hbase shell > ...
- JVM 启动参数及原理 转
Java虚拟机(JVM)是Java应用的运行环境,从一般意义上来讲,JVM是通过规范来定义的一个虚拟的计算机,被设计用来解释执行从Java源码编译而来的字节码.更通俗地说,JVM是指对这个规范的具体实 ...
- 【JS】js将 /Date(1518943415760+0800)/ 转换为2018-2-18 16:43:35格式
function formatDate(dt) { var year = dt.getFullYear(); var month = dt.getMonth() + 1; var date = dt. ...
- ntp 时间同步
NTP 是网络时间协议(Network Time Protocol)的简称,通过 udp 123 端口进行网络时钟同步 一.安装 # 既可做服务端也可做客户端 yum install -y ntp # ...
- Scrapy Shell的使用
Scrapy终端是一个交互终端,我们可以在未启动spider的情况下尝试及调试代码,也可以用来测试XPath或CSS表达式,查看他们的工作方式,方便我们爬取的网页中提取的数据. 如果安装了 IPyth ...
- Dubbo优雅关机原理
Dubbo是通过JDK的ShutdownHook来完成优雅停机的 所以如果用户使用 kill -9 PID 等强制关闭命令,是不会执行优雅停机的 只有通过 kill PID时,才会执行 原理: · 服 ...
- Hadoop记录-Yarn命令
概述 YARN命令是调用bin/yarn脚本文件,如果运行yarn脚本没有带任何参数,则会打印yarn所有命令的描述. 使用: yarn [--config confdir] COMMAND [--l ...
- ThinkSNS2.5前台getshell+后台任意文件删除
12年爆出的一个洞 前几天比赛的一个cms 于是跟出题人表哥要过来审计了看看 漏洞文件再根目录thumb.php中 <?php /* * 自动缩略图 参数 url|w|h|type=" ...
- 2016vijos 1-2 股神小L(堆)
维护前i天的最优解,那么在后面可能会对前面几天的买卖情况进行调整 如果前面买入,买入的这个在后面一定不会卖出 如果前面卖出,卖出的这个可能会在后面变成买入,因为买这个,卖后面的会获得更多的收益 用一个 ...
- [Android] Android 常见第三方库汇总地址
Android 常见第三方库汇总地址 https://github.com/wasabeef/awesome-android-libraries List of Android Libraries T ...