美文网首页
5.消费端服务降级

5.消费端服务降级

作者: 山海树 | 来源:发表于2020-09-06 10:49 被阅读0次

    1.force:return
    客户端做如下配置,force:return时,直接走mock,不去远端服务

    RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class)
                    .getAdaptiveExtension();
            // (2)根据zk地址,获取具体的zk注册中心的客户端实例
            Registry registry2 = registryFactory.getRegistry(URL.valueOf("zookeeper://127.0.0.1:2181"));
    
            // (3)注册降级方案到zk
            registry2.register(URL.valueOf(
                    "override://0.0.0.0/service.GreetingService?category=configurators&dynamic=false&application=first-dubbo-consumer&"
                            + "mock=force:return+null&group=dubbo&version=1.0.0"));
    

    2.fail:return
    客户端做如下配置,fail:return时,先走远端,成功返回成功的结果,失败走mock

    RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class)
                    .getAdaptiveExtension();
            // (2)根据zk地址,获取具体的zk注册中心的客户端实例
            Registry registry2 = registryFactory.getRegistry(URL.valueOf("zookeeper://127.0.0.1:2181"));
    
            // (3)注册降级方案到zk
            registry2.register(URL.valueOf(
                    "override://0.0.0.0/service.GreetingService?category=configurators&dynamic=false&application=first-dubbo-consumer&"
                            + "mock=fail:return+null&group=dubbo&version=1.0.0"));
    

    3.原理
    当以参数force调用上述代码时,降级策略就回写入Zookeeper服务器service.GreetingService字数中Type=configurators的下面
    当服务消费者启动时,回去订阅service.GreetingService自述中信息,
    当吊费者发起远程调用时,会看是否设置了force:return降级策略,如果设置了,则不发起远程调用。
    如果远程结果成功,则直接返回结果,如果失败,则看当前是否设置了fail:return的降级策略,如果设置了,则返回mock,否则返回服务失败的具体原因。

    相关文章

      网友评论

          本文标题:5.消费端服务降级

          本文链接:https://www.haomeiwen.com/subject/samosktx.html