• 第三章:(3)高可用 之 服务降级


    一、服务降级

      1、什么是服务降级

        当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。

      2、降级 Dubbo 服务

        可以通过服务降级功能临时屏蔽某个出错的非关键服务,并定义降级后的返回策略。

        向注册中心写入动态配置覆盖规则:

    RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
    Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:2181"));
    registry.register(URL.valueOf("override://0.0.0.0/com.foo.BarService?category=configurators&dynamic=false&application=foo&mock=force:return+null"));

      其中:

      (1)mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。

        不调用,直接返回 null。

      (2)还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。

        调用失败后返回 null。

    二、设置服务降级

      1、屏蔽(mock=force:return+null)

      可以在消费者管理台设置服务的屏蔽,就不会远程调用,直接在客户端返回空对象。

      2、容错( mock=fail:return+null)

      可以在消费者管理页面进行服务容错,容错后,当远程调用失败时,返回空对象。

  • 相关阅读:
    【EFCORE笔记】自动生成属性的显式值
    【EFCORE笔记】更新数据的多种方案
    【EFCORE笔记】添加数据的多种方案
    【EFCORE笔记】多租户系统的最佳实践
    【EFCORE笔记】全局查询筛选器
    【EFCORE笔记】异步查询&工作原理&注释标记
    【EFCORE笔记】执行原始SQL查询
    003_Redis后台启动(windows10与)
    Office 2010后 如何保存新的样式集
    Mysql启动 发生系统错误 1067
  • 原文地址:https://www.cnblogs.com/niujifei/p/15806618.html
Copyright © 2020-2023  润新知