dubbo 支持服务降级吗_Dubbo服务降级设置

dubbo降级服务

dubbo开发中,通常是微服务架构,那么在使用过程中可能会遇到多种问题:

1)多个服务之间可能由于服务没有启动或者网络不通,调用中会出现远程调用失败;

2) 服务请求过大,需要停止部分服务以保证核心业务的正常运行;

以上两个问题可以使用Dubbo的服务降级来实现;

即:在服务宕掉或者并发数太高导致的RpcException异常时,进行友好的处理或者提示,而不是内部报错导致系统不可用。

解决方法:

dubbo提供了mock配置,可以很好的实现dubbo服务降级,

mock主要有两种配置方式,

第1种

在远程调用异常时,服务端直接返回一个固定的字符串(也就是写死的字符串)

具体配置:

在服务调用方配置mock参数:

说明:配置了mock参数之后,假设在调用服务的时候,远程服务没有启动,或者各种网络异常了,那远程服务会把这个mock配置的值返回,也就是会返回123456...

通过这种方式就可以避免了因为服务调用不了而出现异常错误而带来的程序不可用(起码是有值返回的,然后可以根据值进行业务逻辑处理判断等等)。

注:除了配置mock参数之外,其它地方不用变。

第2种

在远程调用异常时,服务端根据自定义mock业务处理类进行返回)

具体配置:

在服务调用方配置mock参数:

说明:配置了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服务降级(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熔断,限流,服务降级

1 写在前面 1.1 名词解释 consumer表示服务调用方 provider标示服务提供方,dubbo里面一般就这么讲. 下面的A调用B服务,一般是泛指调用B服务里面的一个接口. 1.2 拓扑图 ...

5.如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?

作者:中华石杉 面试题 如何基于 dubbo 进行服务治理.服务降级.失败重试以及超时重试? 面试官心理分析 服务治理,这个问题如果问你,其实就是看看你有没有服务治理的思想,因为这个是做过复杂微服务的 ...

分布式的几件小事(六)dubbo如何做服务治理、服务降级以及重试

1.服务治理 服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的. ①调用链路自动生成 一个大型的分布式系统,会由大量的服务组成,那么这些服务之间的依赖关系和调用链路会很复杂, ...

面试系列26 如何基于dubbo进行服务治理、服务降级、失败重试以及超时重试

(1)服务治理 1)调用链路自动生成 一个大型的分布式系统,或者说是用现在流行的微服务架构来说吧,分布式系统由大量的服务组成.那么这些服务之间互相是如何调用的?调用链路是啥?说实话,几乎到后面没人搞的 ...

Dubbo——服务调用过程

文章目录 引言 服务的交互 服务降级 集群容错 服务调用 服务端接收请求 总结 引言 经过之前文章的铺垫,现在可以来分析服务的交互调用过程了. 服务的交互 服务降级 从名字上看我们不难理解MockCl ...

随机推荐

Windows Azure Cloud Service (41) 修改云服务IIS托管管道模式为4.0经典模式

这是笔者在之前的项目中遇到的问题,做一下总结,给网友做参考. 在一般情况下,Visual Studio开发的Cloud Se ...

登录校验(demo)

1. 登录流程分析图: 2. 登录demo:

Asp.net MVC23 使用Areas功能的常见错误

一般WEB项目都会不同的页面区域,如:用户前台.用户后台.管理员后台. 访问的URL: 用户前台:www.domain.com/home/index 用户后台:www.domain.com/admin ...

微信开发教程 Yank.WeiXin.Robot

http://www.cnblogs.com/yank/category/539657.html

微信分享朋友链接显示js代码

通常自己做的一个页面想通过微信像朋友分享时,展示的标题和描述都是不是自己想要的,自己查了一些资料,原来是通过js来进行控制 展示效果如下: 标题.描述.还有分享的图片都是有js来控制的. js代码如下 ...

ubuntu16.04下安装配置深度学习环境(一、cuda7.5的安装)

1.下载所需要的软件 cuda7.5下载(点击下载链接),cudnn4.0下载 2.安装NVIDIA驱动. 一般有两种方法:1)一种方法是利用"软件和更新"来安装,依次选择 系统设 ...

爬虫 2 XPath 和 pyquery

XPath 1.常用规则    表达式 描述 nodename 选取此节点的所有子节点 / 从当前节点选取直接子节点 // 从当前节点选取子孙节点 . 选取当前节点 .. 选取当前节点的父节点 @ 选 ...

Javascript高级编程学习笔记(76)—— 表单(4)选择文本

文本框脚本 在HTML中文本框有两种实现方式: 这两种实现方式虽然在多数情况下表现一致,但是两者之间仍存在许多重要区别 对于

[转]Angular 2 / 4 / 5 not working in IE11

本文转自:https://stackoverflow.com/questions/35140718/angular-2-4-5-not-working-in-ie11/47777695#4777769 ...

自定义WPF窗体形状

介绍 你好WPF爱好者. 随着WPF等统一API语言的发明,丰富用户界面变得非常容易. 创建丰富的用户界面只是一个想法. 您需要拥有的是创造性思维和最新技术融合. WPF和Expression Ble ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值