`

Dubbo超时和重连机制

 
阅读更多
[color=violet][/color]dubbo启动时默认有重试机制和超时机制。
超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,
重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。

如果出现超时,通常是业务处理太慢,可在服务提供方执行:jstack PID > jstack.log 分析线程都卡在哪个方法调用上,这里就是慢的原因。
如果不能调优性能,请将timeout设大。

某些业务场景下,如果不注意配置超时和重试,可能会引起一些异常。

>>超时设置
DUBBO消费端设置超时时间需要根据业务实际情况来设定,
如果设置的时间太短,一些复杂业务需要很长时间完成,导致在设定的超时时间内无法完成正常的业务处理。
这样消费端达到超时时间,那么dubbo会进行重试机制,不合理的重试在一些特殊的业务场景下可能会引发很多问题,需要合理设置接口超时时间。
比如发送邮件,可能就会发出多份重复邮件,执行注册请求时,就会插入多条重复的注册数据。

(1)合理配置超时和重连的思路

1.对于核心的服务中心,去除dubbo超时重试机制,并重新评估设置超时时间。
2.业务处理代码必须放在服务端,客户端只做参数验证和服务调用,不涉及业务流程处理

(2)Dubbo超时和重连配置示例

1
2
<!-- 服务调用超时设置为6秒,超时不重试-->
<dubbo:service interface="com.provider.service.DemoService" ref="demoService"  retries="0" timeout="5000"/>
>>重连机制
dubbo在调用服务不成功时,默认会重试2次。
Dubbo的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,所以 dubbo的重试机器也能一定程度的保证服务的质量。
但是如果不合理的配置重试次数,当失败时会进行重试多次,这样在某个时间点出现性能问题,调用方再连续重复调用,
系统请求变为正常值的retries倍,系统压力会大增,容易引起服务雪崩,需要根据业务情况规划好如何进行异常处理,何时进行重试。
分享到:
评论

相关推荐

    Dubbo超时机制导致的雪崩连接

    ### Dubbo超时机制导致的雪崩连接问题分析 #### 一、背景介绍 在分布式系统中,服务间调用非常频繁,为了提高系统的稳定性和可用性,通常会采用诸如Dubbo这样的微服务框架来进行服务治理。Dubbo作为一款高性能、轻...

    Apache Dubbo:Dubbo服务治理:服务熔断与超时重试

    ### Apache Dubbo:服务熔断与超时重试 #### 一、服务熔断基础 ##### 1.1 服务熔断的概念 服务熔断,作为一种重要的服务稳定性保障措施,在分布式系统中扮演着至关重要的角色。它的工作原理是,当某个服务节点...

    37_基于dubbo如何做服务治理、服务降级以及重试?.zip

    在IT行业中,服务治理、服务降级和重试策略是微服务架构中不可或缺的重要组成部分,尤其是在基于Dubbo的分布式系统中。本资料包主要探讨了如何在Dubbo框架下实现这些功能,帮助提升系统的稳定性和容错性。 首先,...

    dubbo-demo-consumer、dubbo-demo-provider、dubbo-simple-monitor

    同时,提供者还可以配置服务的元数据,如服务版本、超时时间、重试次数等,以灵活控制服务行为。 `dubbo-simple-monitor`则是Dubbo的简单监控模块,它提供了对服务调用的实时监控能力。通过监控,我们可以了解服务...

    dubbo入门学习框架源码

    4. 服务治理:Configurator接口提供了动态配置服务的能力,如动态调整超时时间、重试次数等。 五、实战应用与优化 1. 配置优化:理解并合理设置Dubbo的各类配置参数,如超时时间、连接池大小等,能有效提升系统...

    dubbo-dubbo-2.7.2源码

    这两个配置类封装了服务的元数据,如:接口名、版本号、超时时间、重试次数等,方便服务的管理和调用。 七、过滤器链 Dubbo的过滤器机制允许在服务调用前后插入自定义逻辑,形成一个过滤器链。过滤器可以用来实现...

    dubbo-2.5.x version source code

    为保证服务的健壮性,Dubbo提供了超时设置和重试机制。`TimeoutStrategy`和`RetryFilter`在源码中定义了如何处理超时和重试逻辑。当调用超时时,Dubbo会根据配置决定是否进行重试,以及重试的次数和间隔。 5. **...

    dubbo官方中文文档pdf版

    4. 服务容错:提供了多种容错机制,如失败快速失败、失效切换、重试等,增强系统的稳定性。 三、配置项详解 1. application配置:定义应用的基本信息,如名称、组织、版本等。 2. registry配置:设置注册中心的相关...

    dubbo服务监控工具dubbo-admin

    6. 配置管理:支持查看和修改服务的配置信息,如元数据、超时设置、重试策略等。 二、使用dubbo-admin的步骤 1. 启动dubbo-admin:运行dubbo-admin-server-0.1.jar文件,一般通过Java的jar命令来启动,例如`java -...

    nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用.

    5. **服务治理**:理解Dubbo的服务治理特性,如负载均衡、熔断、超时和重试等,并学习如何在Node.js客户端实现这些功能。 6. **错误处理和调试**:学习如何处理网络通信中可能出现的异常情况,如网络中断、超时、...

    dubbo-demo

    5. **容错机制**:Dubbo提供了多种容错策略,如Failsafe(失败安全)、Failfast(快速失败)、Fallback(失败回退)、Retry(重试)等,以应对服务调用过程中的异常情况。 6. **服务治理**:包括服务的注册与发现、...

    dubbo2.5.3GA 全套源码和jar

    2. **服务配置**:允许用户查看和修改服务的配置,如元数据、超时时间、重试次数等。 3. **服务监控**:提供实时的服务调用统计,包括调用次数、成功率、平均耗时等。 4. **操作日志**:记录每一次服务调用的详细...

    Dubbo高级视频教程

    - **动态代理机制**:Dubbo内部使用JDK动态代理或CGLIB实现远程接口和服务动态代理。 - **集群容错策略**:包括Failover、Failfast、Failsafe等不同的集群容错方案。 #### 三、Dubbo配置详解 - **dubbo.xml配置...

    dubbo精品课程-基础篇

    7. **容错与重试机制**:讲解Dubbo的故障转移、失败重试、超时处理等机制,以及如何自定义容错策略,确保服务的高可用性。 8. **监控与管理**:学习使用Dubbo的监控中心,如Dubbo Admin,进行服务的监控和管理,...

    dubbo的简单小demo

    dubbo-provider模块是服务提供者部分,它实现了dubbo-api模块中定义的服务接口,并且配置了服务暴露的相关信息,如服务版本、Group、协议、超时时间等。服务提供者在启动时会注册到Zookeeper,等待服务消费者的调用...

    dubbo-provider/dubbo-consumer

    消费者同样可以配置超时时间、重试策略等参数来优化调用性能和容错性。 Dubbo的核心功能包括: 1. **服务注册与发现**:服务提供者向注册中心注册服务,服务消费者从注册中心获取服务信息,实现服务的动态发现。 ...

    dubbo2.0-源码阅读

    还包括故障重试、失败忽略、超时设置等容错机制。 4. **监控**:Dubbo内置了监控机制,用于监控服务的调用情况。主要包括监控中心、SimpleMonitorService等组件,以及监控数据的生成和传输机制。 以上内容涵盖了...

    Apache Dubbo+安装部署+附在均衡+限流与降级+服务熔断等

    Dubbo服务治理:服务熔断与超时重试 Dubbo服务治理:服务路由与动态配置 Dubbo监控与运维:服务调用监控 Dubbo监控与运维:服务性能分析 Dubbo高级特性:服务版本与分组 Dubbo高级特性:服务降级与熔断实战 Dubbo与...

    domain incubator-dubbo-dubbo-2.5.8版本

    2. 调用超时与重试:用户可以设置服务调用的超时时间和重试次数,以应对网络延迟或服务异常。 3. 熔断机制:当服务调用频繁失败时,Dubbo可启用熔断机制,避免雪崩效应。 五、服务监控 1. 日志监控:Dubbo支持...

    dubbo提供与调用

    Dubbo支持负载均衡、容错策略(如Failover、Failfast、Failsafe、Fallback、Retry等)、服务路由、超时设置、重试机制等,确保服务的稳定性和可靠性。 通过以上配置,Dubbo可以在分布式环境中构建出高效、稳定的...

Global site tag (gtag.js) - Google Analytics