服务降级

    推荐使用相关限流降级组件(如 )以达到最佳体验。参考示例实践:微服务治理/限流降级

    服务降级是指服务在非正常情况下进行降级应急处理。

    • 某服务或接口负荷超出最大承载能力范围,需要进行降级应急处理,避免系统崩溃
    • 调用的某非关键服务或接口暂时不可用时,返回模拟数据或空,业务还能继续可用
    • 降级非核心业务的服务或接口,腾出系统资源,尽量保证核心业务的正常运行
    • 某上游基础服务超时或不可用时,执行能快速响应的降级预案,避免服务整体雪崩

    以 xml 配置为例:(通过注解方式配置类似)

    例:

    例:

    1. <dubbo:reference id="demoService" interface="com.xxx.service.DemoService" mock="com.xxx.service.DemoServiceMock" />

    这种方式指定 Mock 类的全路径。

    • fail 或 force 关键字可选,表示调用失败或不调用强制执行 mock 方法,如果不指定关键字默认为 fail
    • return 表示指定返回结果,throw 表示抛出指定异常

    例:

    1. <dubbo:reference id="demoService" interface="com.xxx.service.DemoService" mock="force:return true" />
    1. <dubbo:reference id="demoService" interface="com.xxx.service.DemoService" mock="force:throw java.lang.NullPointException" />
    • 应用消费端引入 依赖

    • 启动 dubbo-admin,在服务 Mock-> 规则配置菜单下设置 Mock 规则

    以服务方法的维度设置规则,设置返回模拟数据,动态启用/禁用规则

    Dubbo 启动时会检查配置,当 mock 属性值配置有误时会启动失败,可根据错误提示信息进行排查

    • 配置格式错误,如 return+null 会报错,被当做 mock 类型处理, 后面可省略不写或者跟空格后再跟返回值