栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring cloud 在跨服务调用(feign)时 开启熔断器 (hystrix)获取报错信息 返回友好提示

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring cloud 在跨服务调用(feign)时 开启熔断器 (hystrix)获取报错信息 返回友好提示

在开启熔断器后 如果 跨服务失败 调用某个方法 处理一些 事情 使用
@FeignClient(name = “logs-service”, fallback = LogFall.class)
fallback 这个属性 是不可以获取 错误信息 只能给予友好提示 等等

如果需要获取 错误信息 则使用
@FeignClient(name = “logs-service”, fallbackFactory = LogsFallbackFactory.class)

fallbackFactory 这个属性

然后 在 LogsFallbackFactory.class 类中 写具体 获取 错误信息的程序

package com.erp.init.feign.fallback.log;

import com.erp.api.entities.logs.YsHandleLog;
import com.erp.api.out.R;
import feign.hystrix.FallbackFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;


@Slf4j
@Component
public class LogsFallbackFactory implements FallbackFactory {

    @Override
    public LogFall create(Throwable cause) {
        return new LogFall() {
            @Override
            public R save(YsHandleLog ysHandleLog) {
              //  log.info("" + JSONObject.toJSonString(ysHandleLog));
                // 异常抛出
                log.error("【跨log服务调用异常】"+cause.getMessage(),cause);
                return null;
            }
        };
    }
}
package com.erp.init.feign.fallback.log;

import com.erp.api.entities.logs.YsHandleLog;
import com.erp.api.out.R;
import com.erp.init.feign.LogFeign;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;


@Slf4j
@Component
public class LogFall implements LogFeign {
    @Override
    public R save(YsHandleLog ysHandleLog){
        return null;
    }
}

在这个类里 在去重写 fallback 这个属性对应的类 方法

根据个人需求 更改 也可以不实现

因为 fallback 和 fallbackFactory 这两个属性 不能共同使用

如果都需要 可以仿照 以上写法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号