dubbo之集群容错

在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。

集群容错模式

1. Failover Cluster

失败自动切换,当出现失败,重试其它服务器 。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)。
重试次数配置如下:
<dubbo:service retries="2" />
<dubbo:reference retries="2" />
<dubbo:reference>
    <dubbo:method name="findFoo" retries="2" />
</dubbo:reference>

2. Failfast Cluster

快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,比如新增记录。

3. Failsafe Cluster

失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。

4. Failback Cluster

失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。

5. Forking Cluster

并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最大并行数。

6. Broadcast Cluster

广播调用所有提供者,逐个调用,任意一台报错则报错 。通常用于通知所有提供者更新缓存或日志等本地资源信息。

集群模式配置

<dubbo:service cluster="failsafe" />或<dubbo:reference cluster="failsafe" />

 

时间: 2024-11-05 17:24:45

dubbo之集群容错的相关文章

Dubbo服务集群容错

Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配置就能够实现分布式服务调用,也就是说服务提供方(Provider)发布的服务可以天然就是集群服务,比如,在实时性要求很高的应用场景下,可能希望来自消费方(Consumer)的调用响应时间最短,只需要选择Dubbo的Forking Cluster模式配置,就可以对一个调用请求并行发送到多台对等的提供方

Dubbo之旅--集群容错和负载均衡

当我们的系统中用到Dubbo的集群环境,因为各种原因在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重试. Dubbo的集群容错在这里想说说他是因为我们实际的项目中出现了此类的问题,因为依赖的第三方项目出现异常,导致dubbo调用超时,此时使用的是默认的集群容错方式,而配置的reties='3',这样前段系统连续掉用了三次服务,结果可想而知. 先说一下各节点关系: 这里的Invoker是Provider的一个可调用Service的抽象,Invoker封装了Provider地

dubbo集群容错解决方案

dubbo主要核心部件 Remoting:网络通信框架,实现了sync-over-async和request-response消息机制. RPC:一个远程过程调用的抽象,支持负载均衡.容灾和集群功能. Registry:服务目录框架用于服务的注册和服务事件发布和订阅.(类似第一篇文章中的点菜宝) dubbo架构 Provider: 暴露服务的提供方. Consumer:调用远程服务的服务消费方. Registry: 服务注册中心和发现中心. Monitor: 统计服务和调用次数,调用时间监控中心

分布式的几件小事(四)dubbo负载均衡策略和集群容错策略

1.dubbo负载均衡策略 ①random loadbalance 策略 默认情况下,dubbo是random loadbalance 随机调用实现负载均衡,可以对provider不同实例设置不同的权重,会按照权重来进行负载均衡,权重越大分配的流量越高,一般就用这个默认的就可以了. ②roundrobin loadbalance策略 这个策略默认会将请求均匀的分布到各个provider上面,但是如果各个机器的性能不一样,很容易到杭州性能差 的机器负载过高. ③leastactive loadba

Dubbo 系列(07-5)集群容错 - Mock

Dubbo 系列(07-5)集群容错 - Mock [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 实战 - 服务降级 Dubbo 实战 - 本地伪装 Dubbo 实战 - 本地存根 Dubbo 的集群容错中默认会组装 MockClusterWrapper,它实现了 Dubbo 的服务降级和本地伪装. 1.1 服务降级 服务降级配置方式,更多参考官网 Dubbo 实战 - 服务降级 <dubbo:reference

Dubbo服务集群

一.什么叫Dubbo服务集群 指把同一个服务部署到多台机器,然后通过Dubbo服务集群的容错配置实现一台机器的服务挂掉之后自动切换到另外的一台机器 二.Dubbo服务集群容错配置--集群容错模式 属性:cluster 类型:string 是否必填:可选 缺省值:failover 作用:性能调优 集群方式:可选:failover/failfast/failsafe/failback/forking 兼容性:2.0.5以上版本 1.Failover Cluster(dubbo缺省配置) 失败自动切换

Dubbo点滴之集群容错

首先看来自官方文档 这里的Invoker是Provider的一个可调用Service的抽象,Invoker封装了Provider地址及Service接口信息. Directory代表多个Invoker,可以把它看成List<Invoker>,但与List不同的是,它的值可能是动态变化的,比如注册中心推送变更. Cluster将Directory中的多个Invoker伪装成一个Invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个. Router负责从多个Invoker中按路

Dubbo分布式服务框架(一)——集群容错详解

1.集群调用失败时,Dubbo提供了多种容错方案. 各节点关系: Invoker是Provider某个可调用Service的抽象,封装了Provider地址及Service接口信息. Directory可以看成List<Invoker>,与List不同的是,它的值可能是动态变化的,比如注册中心推送变更. Cluster将Directory中的多个Invoker伪装成一个Invoker,对上层透明,伪装过程包含了容错逻辑,调用失败后,重试另一个. Router负责从多个Invoker中按路由规则

Dubbo中集群Cluster,负载均衡,容错,路由解析

Dubbo中的Cluster可以将多个服务提供方伪装成一个提供方,具体也就是将Directory中的多个Invoker伪装成一个Invoker,在伪装的过程中包含了容错的处理,负载均衡的处理和路由的处理.这篇文章介绍下集群相关的东西,开始先对着文档解释下容错模式,负载均衡,路由等概念,然后解析下源码的处理.(稍微有点乱,心情不太好,不适合分析源码.) 集群的容错模式 Failover Cluster 这是dubbo中默认的集群容错模式 失败自动切换,当出现失败,重试其它服务器. 通常用于读操作,