dubbo timeout 优先级以及最佳实践

dubbo配置优先级 阅读详情

理论

一般,接口都有设置超时时间,不管是http接口,还是dubbo接口。

为什么要设置超时时间?因为不设置的时候,一旦高并发,就会把系统搞挂。

具体就是可能部分交易请求很慢,耗时很久,但是没有设置超时,然后就一直占着dubbo线程池的线程资源,这个时候,就会因为部分慢交易,影响和导致了整个系统,因为其他本来正常的交易,现在由于dubbo线程池满了,也处理不了了,这个时候,系统就崩溃了,所有的交易都耗时很慢。

dubbo超时的维度

有2个维度,一个是作用域粒度,一个是消费者还是生产者。

粒度

有3个
1、所有接口
comsumer/provider

2、接口级别
reference/service

3、方法级别
一般很少用。


优先级

粒度越小,优先级越高,即方法>接口>所有服务。

消费者 生产者

优先级

消费者比生产者优先级高。

总结

如果2个维度都有设置,那么
1、粒度维度优先级更高
2、消费者生产者维度优先级比粒度维护优先级低


举个例子
1、消费者是在所有接口粒度设置60s
2、提供者是在接口级别粒度设置15s

那么这个时候,就是以提供者为准,因为提供者的粒度这个维度更小,并且粒度优先级高于消费者生产者维度优先级,所以,这个时候就以提供者的15s超时为准。


总结

所以dubbo的超时时间优先级为:消费者Method>提供者method>消费者Reference>提供者Service>消费者全局配置consumer>提供者全局配置provider。

最佳实践

image.png
最好在提供者设置超时时间。其实不仅仅是超时时间设置,其他消费者和生产者都有的配置,都应该在提供者设置,因为提供者是写代码的一方,最了解代码,所以超时时间等配置,就应该由你来设置。

只有特殊情况下,特殊场景下,消费者才需要配置,但这个也是属于定制超时时间。

实战

当前现状

网关:comsumer 60s——》统一订单:service 15s;消费者:?——》前置:提供者:无;消费者:30s——》交易:提供者:无;消费者:15s。

优化

前置和交易的提供者目前都没有设置超时时间,所以必须要设置超时时间,因为最佳实践就是提供者设置超时时间,为什么呢?因为提供者最懂服务提供者需要耗时多久,代码是你写的,肯定是你设置超时时间最合适。

最佳实践是设置多久?本来是15s,其实15s都太大了,一般接口耗时几s就已经很大了,现在为了逐渐优化,可以先设置为30s。然后再优化为15s。

目前公司交易的都是15s,大一点就是30s,还有更大的是60s,比如网关,所以网关也需要优化,最多15s,但是实际上线的时候可以逐渐优化,即先优化为30s,然后再优化为15s。不然高并发的时候,把系统拖死了。


非交易接口

比如营销,报备,风控,都是1s,最多3s。不重要的,非核心接口,即失败了也不会影响交易的接口,时间都设置的很短,一般就1s,不然的话,如果设置得很大,会让整个交易链路耗时太久。

参考

https://dubbo.apache.org/zh/docs/v2.7/user/recommend/

image.png

Windows NPS与华为、华三、思科设备RADIUS认证实战指南 本文详细介绍了Windows NPS与华为、华三、思科设备RADIUS认证的实战配置指南。通过NPS服务器统一管理网络设备认证,实现企业级安全访问控制,涵盖基础配置、设备对接及故障排查方法,助力管理员提升网络安全管理效率。 阅读详情

相关推荐

mysql笔记:23. 在Mac上安装与卸载MySQL

MySQL对Mac电脑的适配十分强大,再加上Mac本身就是Unix操作系统演化而来的,所以在Mac上安装MySQL的方式有多种。常见的方法有如下三种:DMG、brew、TAR。介绍这些方法前,我们先了解下MySQL安装文件的下载。

斌斌(Java) 2247

dubbo服务超时时间设置以及优先级

一:dubbo服务超时时间设置以及优先级 dubbo服务超时时间有xml和注解两种方式进行实现配置超时功能。在配置范围上分为全部超时配置、接口类上超时配置、以及接口方法上超时配置。同类型上的配置消费端优先提供着端,靠近原则方法配置优先于接口类全局配置优先级最低。所以dubbo的超时时间优先级为:消费者Method>提供者method>消费者Reference>提供者Service>消费者全局配置provider>提供者全局配置consumer。 二、基于xml方式的超时配置 服

m0_67391907的博客 4769

DolphinScheduler+DataX实战:5分钟搞定MySQL到Hive数据同步(附完整JSON配置)

本文详细介绍了如何利用DolphinScheduler与DataX构建企业级数据同步流水线,实现MySQL到Hive的高效数据同步。文章提供了从环境部署、核心组件配置到完整JSON配置的实战指南,并深入探讨了性能调优、增量同步策略以及生产环境下的监控与错误处理,帮助读者快速搭建稳定可靠的数据同步方案。

5b6n7m8的博客 252

Dubbo(十) dubbo服务超时时间设置以及优先级

dubbo服务超时时间有xml和注解两种方式进行实现配置超时功能。在配置范围上分为全部超时配置、接口类上超时配置、以及接口方法上超时配置。同类型上的配置消费端优先提供着端,靠近原则方法配置优先于接口类全局配置优先级最低。所以dubbo的超时时间优先级为:消费者Method>提供者method>消费者Reference>提供者Service>消费者全局配置provider>提供者全局配置consumer。 一、基于xml方式的超时配置 服务提供者xml方式超时配置如下: &

liuhenghui5201的专栏 1万+

Mamba再封神!与YOLO结合,拿下二区!好发不卷!

相比传统的YOLO改进,Mamba是新技术,两者结合尚在蓝海阶段,可发挥空间大!更为关键的是,它在检测精度和速度方面,都让以往的YOLO模型难以望其项背!比如代表模型Mamba YOLO,便在参数减少45.5%、FLOPs减少50%的同时,精度还比YOLOv8高6.1%!这主要得益于,Mamba能够捕捉长期依赖关系,而YOLO则擅长捕捉局部特征,两者能够优势互补,且Mamba线性复杂度的特性,也有利于提高计算效率!为了让大家能够紧跟前沿发展,找到更多灵感启发,我给大家10种。

2401_88190197的博客 2506

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5527

Map 综述(三):彻头彻尾理解 ConcurrentHashMap

ConcurrentHashMap是J.U.C的重要成员,它是HashMap的一个线程安全的版本。在默认理想状态下,ConcurrentHashMap可以支持16个线程执行并发写操作及任意数量线程的读操作。本文将结合Java内存模型和JDK源代码,剖析其高并发的具体实现机制,包括在JDK中的定义和结构、并发存取、重哈希和跨段操作,并着重剖析了ConcurrentHashMap读操作不需要加锁的内在奥秘和原理。

Rico's Blogs 14万+

对极几何 —两相机相对位置关系与相机姿态估计方法(基础矩阵,本征矩阵,单应矩阵梳理)附c++源码

对极几何 —两相机相对位置关系与相机姿态估计方法(基础矩阵,本质矩阵,单应矩阵梳理)附c++源码对极几何是什么,它有什么用(整体流程理解)对极约束(描述两相机关系)基础矩阵特性与求解方法本质矩阵特性与求解方法相机姿态恢复方法怎么又冒出了个单应矩阵H? 对极几何是什么,它有什么用(整体流程理解) 如图,当空间上有一个点分别在相机1和相机2上进行成像,这两个点存在什么变换关系呢?再扩展一下,真实世界下的场景分别用两个相机进行拍摄,获得两张照片,两张照片有什么变换关系呢?那么对极几何就是用来描述这种变换关系的。

qq_37764141的博客 5103

万字详细解析Dubbo

Dubbo使用Netty作为底层通信框架,能够带来更快的响应速度和更好的可靠性,同时还支持多种序列化方式,例如Hessian、Java原生序列化等,使得Dubbo在跨语言、跨平台的服务调用中也具有很好的扩展性和兼容性。同时,在设计和开发阶段,也需要考虑多实现的问题,从接口定义和实现的角度进行合理划分和设计,以便更好地适应后续的需求变化。以上就是在代码中绕过注册中心进行点对点直连的步骤,需要注意的是,这种方式适用于测试和开发阶段,不建议在生产环境中使用,因为无法实现服务的动态发现和负载均衡等功能。

Java技术攻略的博客 1296

SQL注入绕过information_schema:实战技法与替代路径详解

SQL注入是Web安全领域的核心漏洞类型,其原理是通过构造恶意SQL语句,干扰应用程序与数据库的正常交互逻辑,从而窃取或篡改数据。在渗透测试与CTF竞赛中,绕过常见防护措施是提升技术能力的关键。当标准的信息收集方式受阻时,例如无法访问information_schema数据库,攻击者需要掌握替代的元数据获取方法。这些技术价值在于模拟真实环境中日益严密的防御体系,锻炼在受限条件下的系统性信息收集思维。典型的应用场景包括存在WAF过滤、权限限制或编码干扰的实战环境。本文将围绕SQL注入这一核心,深入探讨如何利用

weixin_33980459的博客 427

基于ESP32的智能无线广播系统开发博客

通过本项目的开发,我们成功地实现了基于ESP32的智能无线广播系统。该系统不仅具备传统广播的功能,还实现了通过Wi-Fi无线传输音频、实时广播和智能控制等多种先进功能。未来,随着技术的进一步发展,我们还可以扩展更多功能,如智能推荐广播内容、支持语音识别和控制等。希望本项目能够为嵌入式开发人员提供一些思路和参考,帮助大家在实际开发中更好地应用ESP32平台,开发出更加智能和实用的无线广播系统。

2201_76125393的博客 423

Czkawka 免费重复文件清理工具:14 种扫描快速找齐相似图片与大文件

把手机照片拷进电脑后,磁盘一周就从 20% 涨到 90%。系统存储管理只告诉你"图片占了 128 GB",却说不出哪些能删;自己翻文件夹找重复,找一小时也就省出几百 MB,还总漏掉那些改了分辨率的副本。 Czkawka 是一款用 Rust 编写的开源免费存储清理工具,内置重复文件、相似图片、大文件、空目录等 14 个扫描工具,在本地跑一次,就能帮你定位 GB 级可释放的空间。 它的三个核心卖点

gitblog_00807的博客 629

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

调用dubbo接口返回timeout_dubbo之timeout超时分析

背景在使用dubbo时,通常会遇到timeout这个属性,timeout属性的作用是:给某个服务调用设置超时时间,如果服务在设置的时间内未返回结果,则会抛出调用超时异常:TimeoutException,在使用的过程中,我们有时会对provider和consumer两个配置都会设置timeout值,那么服务调用过程中会以哪个为准?本文主要针对这个问题进行分析和扩展三种设置方式以provider配置...

weixin_39640085的博客 3451

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Dubbo关于timeout等相关配置的优先级

关于配置中timeout,有的服务有时是provider的身份,有时是consumer的身份,配置的timeout属性到底哪个生效,哪个优先,折腾了我一阵子,于是自己测试了半天,总结一下 原则: 1.精度优先(方法级优先,接口级次之,全局配置再次之) 2.消费者设置优先(如果级别一样) 下面简单demo记录下: 用户模块xml配置: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springfr

脑壳疼 987

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Dubbo调优 -- 超时TimeOut

github测试Demo项目地址:https://github.com/HopeAndStart/spring-dubbp.git 一:概述 官网传送门,需要了解有关超时基础的配置请移步官网,Dubbo的官网绝对良心作品。本文主要的目的是通过简单的Demo论证三个问题: 简单的超时配置效果 通过多优先级配置论证优先级效果 加上重试机制后新增数据接口数据重复问题 二:配置效果 2.1 服务提供者...

知识点滴 1万+

dubbo使用4----> dubbo配置的优先级分析

1、我们知道dubbo服务的很多地方都可以对服务进行配置,那么我们怎么知道到到底生效的是呢个配置呢?距离说明比如配置服务的调用超时时间timeout属性: 方式1:在注解@DubboReference上配置timeout属性 @DubboReference(timeout = 1000) ISayHelloService sayHelloService; 方式2:在注解@DubboReference上为具体的某一个方法配置timeout...

qq_34978129的博客 1065

正确设置dubbo timeout

正确设置dubbo timeout 目的和意义 为了规范地、透明地、合理地使用 dub...

在路上2017的专栏 4839

dubbo配置timeout超时时间

在dubbo的provider和consumer的配置文件中,如果都配置了timeout的超时时间,dubbo默认以consumer中配置的时间为准。provider.xml的配置:<dubbo:service timeout="4000" retries="0" interface="com.dingding.tms.bms.service.BillingZfbCodOrderService" r

潇湘申的博客 1万+

dubbo的 timeout 与 retries

问题描述: dubbo消费者端向 dubbo 服务提供者端发起RPC远程调用,服务提供者端任务正常执行,但是却执行了3次。后来发现,虽然 provider 端程序正常执行,但是执行超时了,此时,consumer 端在超时前没有收到响应,就按照 dubbo 默认的重试机制一共调用了3次。 这种超时导致的重试,如果是读操作,影响倒是不大,但如果是写操作,会导致多次insert,应该避免这种问题。 由于我的项目中, provider 端是执行shell脚本,向服务器写文件,同时将执行日志与shell执行结果文件存

zxjdC的博客 2371

Dubbo 接口 timeout 与 retries 用法

dubbo 版本 :2.7.10,SpringBoot:2.4.5 使用 Springboot 作为脚手架,加入 dubbo 依赖,服务 B 调用 服务 A,查看 timeout 与 retries 用法 。 先说结论(重要!): timeout 用法: 默认值为 0, 若仅在 provider 设置 timeout,那么任意 consumer 调用 provider 方法超过 timeout 时间时都会抛出 RpcException 若仅在 consumer 设置了 timeout,那么仅该 c.

菜鸟日常 3885

【DUBBO】dubbo超时处理机制浅析

我们从源码的角度上介绍了Dubbo的超时处理机制,感兴趣可以自己追踪调用链路。对于Dubbo中的超时设置,可以在服务端、消费端,官方建议是设置在服务端,客户端做特殊处理即可,原因是服务端更清楚接口的性能情况。不过实际情况是,它仅将该参数传导到客户端,然后由客户端来控制。

qq_40023049的博客 3082

Dubbo调优 -- 超时TimeOut

官网传送门,需要了解有关超时基础的配置请移步官网,Dubbo的官网绝对良心作品。简单的超时配置效果通过多优先级配置论证优先级效果加上重试机制后新增数据接口数据重复问题分布式系统确实让系统性能各方面都得到跨越阶级的提升,但是所带来的麻烦事儿确实不少。超时问题仅仅只是其中一个比较简单的问题,只要充分评估好业务时限设置相对的超时即可,当然根据业务类型设置不同的集群方式或者是失败重试的时候注意写操作关闭即可。祝福看到这里的同学技术高歌猛进,荡平一切来犯Bug。

1175
上一篇: jedis源码分析-写数据
下一篇: dubbo消费者新增了一个字段,上线的时候兼容吗?
Java个体户
博客等级 码龄6年 6粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值