zoukankan      html  css  js  c++  java
  • 第三章:(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)

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

  • 相关阅读:
    JVM -- Full GC触发条件总结以及解决策略
    java实现-图的相关操作
    Integer的intValue()方法
    Java transient关键字
    Redis 单线程模型介绍
    String类的intern()方法 -- 重用String对象,节省内存消耗
    数据库阿里连接池 druid配置详解
    redis 实现发布/订阅模式
    Redis实现队列
    redis 实现分布式锁
  • 原文地址:https://www.cnblogs.com/niujifei/p/15806618.html
Copyright © 2011-2022 走看看