学习Dubbo源码的过程中,首先看到的是dubbo的集群容错模式,以下简单介绍10种集群容错模式

  1.AvailableCluster

  顾名思义,就是可用性优先,遍历所有的invokers,选择可用的

  2.MergeableCluster:当接口需要多个服务组合返回值时,使用该接口

  3.ForkingCluster:并行执行,当有一个返回值时,取该值,该方法中使用了线程池和LinkedBlockingQuene来并发所有的子任务,并阻塞父线程,实现很优雅。可用于查询等要求性能高的,不适用于非幂等的插入删除等操作

  

  4.FailoverCluster:Dubbo的默认容错机制,失败重试,默认次数为2(不包含第一次),会优先选择未执行过的invoker。

  5.RegistryAwareCluster:优先选择本地的invoker

  6.FailsafeCluste:安全失败,当抛出异常时直接catch掉,只打印日志,一般用于记录日志等操作

  7.FailfastCluster:快速失败,当失败后,立刻抛出异常,适用于非接口幂等的写操作。有类似于AvailableCluster

  8.MockClusterWrapper,流程如下:

  

  9.BroadcastCluster:异常自己吃掉,遍历所有invoker,广播所有的invoker做一件事。

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

  参考大神文章:https://www.jianshu.com/p/e0235110fb74

  

Dubbo的10种集群容错模式的更多相关文章

  1. Dubbo学习(二) Dubbo 集群容错模式-负载均衡模式

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  2. Dubbo 源码分析 - 集群容错之 LoadBalance

    1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载"均摊"到不同的机器上.避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况.通 ...

  3. Dubbo 源码分析 - 集群容错之 Cluster

    1.简介 为了避免单点故障,现在的应用至少会部署在两台服务器上.对于一些负载比较高的服务,会部署更多台服务器.这样,同一环境下的服务提供者数量会大于1.对于服务消费者来说,同一环境下出现了多个服务提供 ...

  4. Dubbo 源码分析 - 集群容错之 Router

    1. 简介 上一篇文章分析了集群容错的第一部分 -- 服务目录 Directory.服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由.上一篇文章关于服务路由相关逻辑没有 ...

  5. Dubbo工作原理,集群容错,负载均衡

    Remoting:网络通信框架,实现了sync-over-async和request-response消息机制. RPC:一个远程过程调用的抽象,支持负载均衡.容灾和集群功能. Registry:服务 ...

  6. dubbo服务引用与集群容错

    服务引用无非就是做了两件事 将spring的schemas标签信息转换bean,然后通过这个bean的信息,连接.订阅zookeeper节点信息创建一个invoker 将invoker的信息创建一个动 ...

  7. Dubbo 源码分析 - 集群容错之 Directory

    1. 简介 前面文章分析了服务的导出与引用过程,从本篇文章开始,我将开始分析 Dubbo 集群容错方面的源码.这部分源码包含四个部分,分别是服务目录 Directory.服务路由 Router.集群 ...

  8. Dubbo负载均衡与集群容错机制

    1  Dubbo简介 Dubbo是一款高性能.轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现. 作为一个轻量级RPC框架,D ...

  9. dubbo源码分析- 集群容错之Cluster(一)

    1.集群容错的配置项 failover - 失败自动切换,当出现失败,重试其他服务器(缺省),通常用于读操作,但重试会带来更长的延时. failfast - 快速失效,只发起一次调用,失败立即报错.通 ...

随机推荐

  1. git 清除所有untracked file

    上次合并分支的时候,出现了一些没见过的文件,有.orig等等.如下图: 接下来,就是git的神奇操作命令: git  clean  -f 将所有untracked file 一次性删除

  2. [转]windows环境下启动与停止.jar文件

    原文地址:https://www.jianshu.com/p/b12fc379d171 1 .启动 在xx.jar同级目录下建立run.bat文件,在run.bat文件中编辑下列文本. @echo o ...

  3. 安装TensorFlow后import tensorflow时,出现CXXABI_1.3.11和GLIBCXX_3.4.22 not found

    Ubuntu16.04使用Anaconda搭建TensorFlow使用环境但是在安装TensorFlow后,import tensorflow报出如下错误: 该问题的错误原因是由于gcc的动态库较老导 ...

  4. Excel如何输入负数

    一般红字发票很少开,以前都是单独把红字发票摘出来放到一行里,然后加减一下,前段时间有个客户因为普票无法报销,改要了专票,因为是电子发票,无法作废,开了张红字.虽然红字很少开,但是想着百度一下如何在ex ...

  5. LeetCode Top Interview Questions

    LeetCode Top Interview Questions https://leetcode.com/problemset/top-interview-questions/ # No. Titl ...

  6. Asp.net SignalR 让实时通讯变得如此简单

    巡更项目中,需要发送实时消息,以及需要任务开始提醒,于是便有机会接触到SignalR,在使用过程中,发现用SignalR实现通信非常简单,下面我思明将从三个方面分享一下: 一.SignalR是什么 A ...

  7. win10系统svn传图片卡死

        win10系统svn传图片或者文件有时候会卡死,原因是此种文件的默认打开程序与svn冲突了 svn提交的时候要打开图片,但是图片默认打开程序也要打开 所以冲突了 改下不冲突的默认打开程序就行了 ...

  8. 使用ObjectARX 2012向导生成的自定义实体类无法捕捉的问题解决方式

    使用ObjectARX 2012自定实体向导的时候,获取捕捉点的重写函数的向导中模板有点问题, C:\Program Files (x86)\Autodesk\ObjectARX 2019 Wizar ...

  9. elasticsearch的数据写入流程及优化

    Elasticsearch 写入流程及优化 一. 集群分片设置:ES一旦创建好索引后,就无法调整分片的设置,而在ES中,一个分片实际上对应一个lucene 索引,而lucene索引的读写会占用很多的系 ...

  10. 在ensp上VLAN基础配置以及Access接口

    什么是VLAN? 早期的局域网技术是基于总线型的结构,也就是说所有主机共享一条传输线路.这就带来了很多问题:冲突域和安全问题.为了避免冲突域,我们使用二层交换机.但想想,一台计算机在总线上传输数据的时 ...