Dubbo服务容错
当一个服务调用另一个远程服务出现错误时的外观
Dubbo提供了多种容错方案,默认值为failover(重试)
1)、Failover Cluster(默认)
失败自动切换,当出现失败,重试其他服务器,通常用于读操作,但重试会带来更长延迟,可以通过属性retries来设置重试次数(不含第一次)
2)、Failfast Cluster
快速失败,只发起一次调用,失败立即报错,通常用于非幂等性的写操作,比如新增记录。
3)、Failsafe Cluster
失败安全,出现异常时,直接忽略,不做任何操作,通常用于写入审计日志等操作。
4)、Failback Cluster
失败自动重发,后台记录失败请求,定时重发,用于一些一定要成功的服务调用,例如消息通知等。
5)、Forking Cluster
并行调用多个服务器,只要有一个成功即返回,用于实时性较高的读操作,但需要浪费更多的服务资源,可通过forks=“2”来设置最大并行数量。
6)、Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则认为这次调用是失败的,适用于类似于同步的效果,例如通知所有提供者更新缓存或日志等本地资源信息。
*配置方式(二选其一即可)
服务消费者
@Reference(cluster = "failsafe")
private UserService userService;
服务提供者
@Component //org.springframework.stereotype.Component
@Service(cluster = "failsafe") //com.alibaba.dubbo.config.annotation.Service
public class UserServiceImpl implements UserService {
...
}
Dubbo服务容错的更多相关文章
- Dubbo服务容错(整合hystrix)
简介:Hystrix旨在通过控制那些访问远程系统.服务和第三方库的节点从而对延迟和故障提供更强大的容错能力,Hystrix具备拥有回退机制和断路器功能的线程和信号隔离.请求缓存和请求打包以及监控和配置 ...
- Dubbo 服务容错Hystrix
一.服务者 1.pom <dependency> <groupId>org.springframework.cloud</groupId> <artifact ...
- Dubbo服务集群容错
Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...
- dubbo服务提供与消费
一.前言 项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法.现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考. 二.Dubbo是什么 Dubbo ...
- Dubbo服务集群、服务启动依赖检查
一.什么叫Dubbo服务集群 指把同一个服务部署到多台机器,然后通过Dubbo服务集群的容错配置实现一台机器的服务挂掉之后自动切换到另外的一台机器 二.Dubbo服务集群容错配置--集群容错模式 标签 ...
- Dubbo学习笔记10:Dubbo服务消费方启动流程源码分析
同理我们看下服务消费端启动流程时序图: 在<Dubbo整体架构分析>一文中,我们提到服务消费方需要使用ReferenceConfig API来消费服务,具体是调用代码(1)get()方法来 ...
- Dubbo服务降级设置
dubbo降级服务 dubbo开发中,通常是微服务架构,那么在使用过程中可能会遇到多种问题: 1)多个服务之间可能由于服务没有启动或者网络不通,调用中会出现远程调用失败; 2) 服务请求过大, ...
- Dubbo服务注册与发现
目录 一.分布式基本理论 1.1.分布式基本定义 1.2 架构发展演变 1.3.RPC简介 二.Dubbo理论简介 三.Dubbo环境搭建 3.1 Zookeeper搭建 3.2 Dubbo管理页面搭 ...
- dubbo服务治理框架
Dubbo的概述 1.1. Dubbo的背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进. ...
随机推荐
- 查看本地Git仓库历史修改内容
查看历史内容 在.git文件 同级目录下,右键 选择 git history 但是红框中的路径无法拷贝.右键红框中的任一文件,有 HighLight this only, Highlight this ...
- OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
解决方案:oracle 版本太低,请装11G或以上版本..
- Qtree3题解(树链剖分+线段树+set)
外话:最近洛谷加了好多好题啊...原题入口 这题好像是SPOJ的题,挺不错的.看没有题解还是来一篇... 题意 很易懂吧.. 题解 我的做法十分的暴力:树链剖分(伪)+线段树+ std :: set ...
- 自学Linux Shell6.3-系统环境变量持久化
点击返回 自学Linux命令行与Shell脚本之路 6.3-系统环境变量持久化 在你登录Linux系统启动一个bash shell时,默认情况下bash在几个文件中查找命令,这几个文件成为启动文件:b ...
- Hihocoder 1329 平衡树·Splay(平衡树)
Hihocoder 1329 平衡树·Splay(平衡树) Description 小Ho:小Hi,上一次你跟我讲了Treap,我也实现了.但是我遇到了一个关键的问题. 小Hi:怎么了? 小Ho:小H ...
- maven 排除test测试类
<!-- 不编译test --> <plugin> <groupId>org.apache.maven.plugins</groupId> <ar ...
- Java需要强制捕获的异常
Java编译器要求我们强制捕获Excetion,但不包括RuntimeException 不强制要求捕获Error和RuntimeException是因为,这两种异常我们程序一般无能为力,而其他Exc ...
- 用Java实现几种常见的排序算法
用Java语言实现的各种排序,包括插入排序.冒泡排序.选择排序.Shell排序.快速排序.归并排序.堆排序.SortUtil等. 插入排序: package org.rut.util.algorith ...
- python---ORM之SQLAlchemy(2)外键使用
import sqlalchemy from sqlalchemy import create_engine from sqlalchemy import Column,String,Integer, ...
- mysql常用sql汇总
给一张表新增一个字段 ALTER table student add zz INT() DEFAULT COMMENT '0是授权 1未授权' 给表student 新增一个zz的字段 默认是0 后面是 ...