博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dubbo之本地伪装
阅读量:6543 次
发布时间:2019-06-24

本文共 808 字,大约阅读时间需要 2 分钟。

本地伪装

本地伪装  通常用于服务降级,比如某验权服务,当服务提供方全部挂掉后,客户端不抛出异常,而是通过 Mock 数据返回授权失败。

在 spring 配置文件中按以下方式配置:

在工程中提供 Mock 实现 :

package com.foo;public class BarServiceMock implements BarService { public String sayHello(String name) { // 你可以伪造容错数据,此方法只在出现RpcException时被执行 return "容错数据"; } }

如果服务的消费方经常需要 try-catch 捕获异常,如:

Offer offer = null;try {    offer = offerService.findOffer(offerId);} catch (RpcException e) {   logger.error(e);}

请考虑改为 Mock 实现,并在 Mock 实现中 return null。如果只是想简单的忽略异常,在 2.0.11 以上版本可用:

1. Mock 是 Stub 的一个子集,便于服务提供方在客户端执行容错逻辑,因经常需要在出现 RpcException (比如网络失败,超时等)时进行容错,而在出现业务异常(比如登录用户名密码错误)时不需要容错,如果用 Stub,可能就需要捕获并依赖 RpcException 类,而用 Mock 就可以不依赖 RpcException,因为它的约定就是只有出现 RpcException 时才执行。
2. 在 interface 旁放一个 Mock 实现,它实现 BarService 接口,并有一个无参构造函数

转载于:https://www.cnblogs.com/jmbkeyes/p/7542623.html

你可能感兴趣的文章
Linux命令行下运行java.class文件
查看>>
input文本框实现宽度自适应代码实例
查看>>
protocol buffers的编码原理
查看>>
行为型设计模式之命令模式(Command)
查看>>
减少死锁的几个常用方法
查看>>
HDFS 核心原理
查看>>
正确配置jstl的maven依赖,jar包冲突的问题终于解决啦
查看>>
利用KMP算法解决串的模式匹配问题(c++) -- 数据结构
查看>>
登录内网账号后,连接不上内网网址
查看>>
安装 MariaDB
查看>>
【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h
查看>>
纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!...
查看>>
java 为啥变量名前要加个m?
查看>>
探索Android中的Parcel机制(上)
查看>>
c++ 类型定义
查看>>
C#开发微信门户及应用(5)--用户分组信息管理
查看>>
怎样实现前端裁剪上传图片功能
查看>>
ffmpeg+SDL2实现的视频播放器「退出、暂停、播放」
查看>>
2011/7/3 第二次评审
查看>>
Openvswitch手册(2): OpenFlow Controller
查看>>