Dubbo服务降级设置
dubbo降级服务
dubbo开发中,通常是微服务架构,那么在使用过程中可能会遇到多种问题:
1)多个服务之间可能由于服务没有启动或者网络不通,调用中会出现远程调用失败;
2) 服务请求过大,需要停止部分服务以保证核心业务的正常运行;
以上两个问题可以使用Dubbo的服务降级来实现;
即:在服务宕掉或者并发数太高导致的RpcException异常时,进行友好的处理或者提示,而不是内部报错导致系统不可用。
解决方法:
dubbo提供了mock配置,可以很好的实现dubbo服务降级,
mock主要有两种配置方式,
第1种
在远程调用异常时,服务端直接返回一个固定的字符串(也就是写死的字符串)
具体配置:
在服务调用方配置mock参数:
<dubbo:reference id="xxxService" interface="com.x..service.xxxxService" check="false" mock="return 123456..." />
说明:配置了mock参数之后,假设在调用服务的时候,远程服务没有启动,或者各种网络异常了,那远程服务会把这个mock配置的值返回,也就是会返回123456...
通过这种方式就可以避免了因为服务调用不了而出现异常错误而带来的程序不可用(起码是有值返回的,然后可以根据值进行业务逻辑处理判断等等)。
注:除了配置mock参数之外,其它地方不用变。
第2种
在远程调用异常时,服务端根据自定义mock业务处理类进行返回)
具体配置:
在服务调用方配置mock参数:
<dubbo:reference id="xxxService" interface="com.x..service.xxxxService" check="false" mock="true" />
说明:配置了mock参数之后,假设在调用服务的时候,远程服务没有启动,或者各种网络异常了,那远程服务会去寻找自定义的mock业务处理类进行业务处理。
因此还需配置一个自定义mock业务处理类
在接口服务xxxxService的目录下创建相应的mock业务处理类,同时实现业务接口xxxxService(),接口名要注意命名规范:接口名+Mock后缀,mock实现需要保证有无参的构造方法。
public class xxxxServiceMock implements xxxxService {
@Override
public String getXXXX(int id) {
return "this is exception 自定义....";
}
}
配置完成后,此时如果调用失败会调用自定义的Mock业务实现。
注:除了以上两处之外,其它地方不用变。
管理界面手动配置:
以上的配置其实除了在代码中配置之外,还可以在dubb-adming管理界面直接手动配置:
分别是屏蔽和容错:
屏蔽:force.mock (即:屏蔽请求,直接返回某个值,如上面的字符串,mock="return 123456...");
容错:fail.mock (即:允许请求,在请求失败的时候,再返回某个值,如:mock="fail:return 123456...");
Dubbo服务降级设置的更多相关文章
- dubbo服务降级(2)
dubbo降级服务 使用dubbo在进行服务调用时,可能由于各种原因(服务器宕机/网络超时/并发数太高等),调用中就会出现RpcException,调用失败. 服务降级就是指在由于非业务异常导致的服务 ...
- dubbo服务降级(1)
1. 在 dubbo 管理控制台配置服务降级 上图的配置含义是:consumer 调用 com.zhang.HelloService 的方法时,直接返回 null,不发起远程调用. 实际操作是:在 z ...
- 13.1 dubbo服务降级源码解析
从 9.1 客户端发起请求源码 的客户端请求总体流程图中,截取部分如下: //代理发出请求 proxy0.sayHello(String paramString) -->InvokerInvoc ...
- Dubbo服务降级
当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或简单处理,从而释放服务器资源以保证核心业务正常运作或高效运作. 可以通过服务降级功能临时屏蔽某个出错的非关键服务并定义 ...
- Dubbo 服务降级,失败重试怎么做?
可以通过 dubbo:reference 中设置 mock="return null".mock 的值也可以修 改为 true,然后再跟接口同一个路径下实现一个 Mock 类,命名 ...
- (万字好文)Dubbo服务熔断与降级的深入讲解&代码实战
原文链接:(万字好文)Dubbo服务熔断与降级的深入讲解&代码实战 一.Dubbo服务降级实战 1 mock 机制 谈到服务降级,Dubbo 本身就提供了服务降级的机制:而 Dubbo 的服务 ...
- dubbo熔断,限流,服务降级
1 写在前面 1.1 名词解释 consumer表示服务调用方 provider标示服务提供方,dubbo里面一般就这么讲. 下面的A调用B服务,一般是泛指调用B服务里面的一个接口. 1.2 拓扑图 ...
- 5.如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
作者:中华石杉 面试题 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试官心理分析 服务治理,这个问题如果问你,其实就是看看你有没有服务治理的思想,因为这个是做过复杂微服务的 ...
- 分布式的几件小事(六)dubbo如何做服务治理、服务降级以及重试
1.服务治理 服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的. ①调用链路自动生成 一个大型的分布式系统,会由大量的服务组成,那么这些服务之间的依赖关系和调用链路会很复杂, ...
随机推荐
- shell脚本中的几个括号总结(小括号/大括号/花括号)
from:http://www.cnblogs.com/hanyan225/archive/2011/10/06/2199652.html 是毋庸置疑的,方便了我们也迷惑了我们,比如这些杂七杂八的括号 ...
- 关闭ubuntu终端的BELL声音
在shell提示符下面操作时有时会用到Tab来自动补全,这个时候系统就会发出BELL的声音,听了让人挺烦的. 有个方法能解决:编辑 /etc/inputrc,找到#set bell-style non ...
- HTTP Header具体解释
HTTP(HyperTextTransferProtocol) 即超文本传输协议,眼下网页传输的的通用协议.HTTP协议採用了请求/响应模型,浏览器或其它client发出请求.server给与响应.就 ...
- EXCEPTION-IBATIS
CreateTime--2016年8月23日08:44:03Author:Marydonibatis的sqlMap的xml文件配置出现的异常信息及解决方案 声明:异常类文章主要是记录了我遇到的异常 ...
- 自己写的一个读取execl的帮助类
目标:读取execl的第一个sheet,并传入不需要读取的表头的行数,返回该execl里所有数据的list 解析共有2种:1.DOM 2.SAX import java.io.File; i ...
- 30、java中递归算法
1.已知有一个数列f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n),其中n是大于0的正数,求f(10)的值. 分析:设x=n+2 => f(x)=2*f(n-1)+f(n-2 ...
- html 链接外部css js文件
<link rel="stylesheet" type="text/css" href/style.css" /> <scri ...
- Tomcat 监控方法
Tomcat 监控方法 方法1:.使用tomcat自带的status页 具体方法: 步骤1:修改%tomcat安装路径%\conf \tomcat-users文件,配置admin设置权限.在<t ...
- 配置的好的Apache和PHP语言的环境下,如何在Apache目录下htdocs/html目录下 同时部署两个项目呢
建虚拟目录打开Apache->conf->httpd.conf在最下面粘贴NameVirtualHost 127.0.0.1 <VirtualHost 127.0.0.1> S ...
- 关于iOS Category实现添加属性及成员变量
iOS分类: 很多说法是只能添加方法,而不能添加成员变量或属性. 有些人可能知道,这种说法是不严谨的,并不是绝对不能添加变量. 解释如下: 我们知道在一个类中用@property声明属性,编译器会自动 ...