通俗易懂的 Dubbo 教程(九):服务降级

本文介绍服务降级的概念,即在服务器压力大时关闭非关键服务,以保护核心业务。通过Dubbo的mock配置实现服务降级,包括直接返回空和使用自定义返回值两种方式。并介绍了如何通过控制台进行服务降级。

什么是服务降级?

当服务器压力比较大的时候,我们可以通过服务降级,屏蔽掉一些非关键服务,给它们定义一个降级后的返回策略,从而降低核心业务的压力。

通俗的说,服务降级就是在远程调用失败(例如超时)之后,直接采用降级措施,返回一个我们已经定义好的提示。例如,在12306抢票高峰时,明明票还有,但查询列表总是空的,过了高峰之后再次查询,又会恢复正常,这可能是因为超时或者网络问题导致查询失败,最后不得不采用了服务降级进行处理,给我们返回一个已经定义好的值。

如何实现服务降级

Dubbo 中有一个 mock 的配置,我们可以通过这个配置实现服务降级。其中,mock 的配置有两种:

  1. 通过 boolean 值指定是否实行服务降级,其中默认为 false,当配置为 true 时,缺省通过在服务名后面加上 Mock 后缀的类来指定降级后的返回值
  2. 直接 return null,统一返回空

需要注意的是,mock 只会在非业务异常的时候执行,比如超时,又或者是网路异常。

测试

首先我们来看一下不做服务降级会是什么后果,我们在服务提供者中故意令其超时,由于 Dubbo 默认超时时间为1s,我们就令其睡眠两秒,代码如下:

package edu.szu.producer.serviceImpl;

import com.alibaba.dubbo.config.annotation.Service;
import edu.szu.api.service.NameService;
import org.springframework.stereotype.Component;

@Component
@Service
public class NameServiceImpl implements NameService {
   
   

    @Override
    public String updateName(String n
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值