好的 分布式系统(微服务) result 设计 rpcResult httpResult 设计

好的 分布式系统(微服务) result 设计 rpcResult  httpResult 设计


private int code = -1;
private String msg;
private T data;


但这个问题有个严重的问题.

1. 分布式系统内部系统很多. 你都不知道这个 code 来自于哪个系统.

2. 中间层系统可能将下游系统的 code 封装屏蔽掉了. 类似 Exception 的 N 层报错. 除了业务封装,异常封装也是必要的.

    但有时候业务方想知道内部系统具体的错误信息.这样方便给乘客展现.

    就需要业务方把外部系统最初的原因outCode返回回去.(例如调用支付宝,微信返回的异常)


解决方案:

   传统解决方案:

          1.将 code 分区后分配给各个系统.

          2.将 code 字符串化,增加微服务模块名前缀

   个人觉得好的解决方案

          1.增加一个 sysName 字段.

          2.增加 outSysName,outCode,outMsg三个字段.

这些作为框架的部分.

    作为对应,java 的 ServiceException 亦需要增加.


    只要将一头一尾结合就好了.


public class ProxyException extends RuntimeException {
    private ExceptionCode exceptionCode;
    private String outSysName;
    private String outCode;
    private String outMsg;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值