微服务消费端通过feign调用微服异常问题

article/2025/10/4 18:36:59

在项目开发中,我们的调用方通过Feign调用微服时,如果微服出现业务异常(例如空指针,或抛出自定义的异常)和非业务异常(参数不合法4xx异常)都会进入到调用方的全局异常拦截器,抛出的code全部转换成了500,这样不友好

实际上只有业务异常feign才会转换成500错误且转成FeignException,空指针不会暴露给调用者

记录一次坑,feign的没有触发fallback原因

{
"status": "ERROR",
"code": "500",
"msg": "request method:GET uri:/test\nError creating bean with name 'com.amez.common.api.feign.ICommonApiFeignClient': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: Incompatible fallback instance. Fallback/fallbackFactory of type class com.amez.common.api.feign.fallback.CommonFeignClientFallbackFactory is not assignable to interface com.amez.common.api.feign.ICommonApiFeignClient for feign client amez-common-service"
}
@FeignClient的fallbackFactory写成了fallback属性,在调用方开启feign熔断
feign:hystrix:enabled: true
这样微服暴露的异常只会在控制台打印,但是进入了fallback返回了默认值,不至于调用方线程中断

---

当开启feign的Hystrix配置,同时在启动类上添加@EnableCircuitBreaker 开启服务的熔断时



熔断的方法参数要一致,否则会抛异常!

若提供方微服务出现异常,则会走到降低逻辑,而不会进入熔断!

若提供方微服务正常返回数据,调用方出现异常,则会触发方法的熔断!

总结:feign中也内置了对hystrix的支持,开启feign的hystrix是针对调用微服务的降级处理

@HystrixCommand注解是针对自身方法的异常,方法级别的熔断处理!

服务降级:是主逻辑失败采用备用逻辑的过程,

服务熔断:因短时间内多次失败,而被暂时性的忽略,不再使用




http://chatgpt.dhexx.cn/article/TZiRjxPs.shtml

相关文章

大开眼界!Jenkins结合SpringCloud+K8S,打通微服一条龙技术讲解

Jenkins 是目前最常用的持续集成工具,拥有近50%的市场份额,他还是很多技术团队的第一个使用的自动化工具。由此可见他的重要性! 这份Jenkins宝典从入门介绍到结合DockerSpringCloudKubernetes,打通一条龙技术讲解,简直…

从0搭建公司SpringCloud Alibaba 微服務鉴权中心服务(详细教程)

大家好,我是宝哥! 鉴权中心服务 认识JWT json web token 是一个开放的标准 ,它定义了一个种紧凑的,自包含的方式,用于作为json对象在各方之间安全的传输信息 服务器鉴权完成之后 会生成 json 对象 发送给客户端&#x…

腾讯云开源业界微服管理框架 Femas

导读 企业数字化向云原生演进过程面临诸多痛点,微服务框架不统一、协议多样化、语言异构,纷繁复杂的微服务技术栈,基础组件之间像一座座孤岛,各个基础组件的控制面不能互联,让用户的体验非常割裂,各种历史包…

基于Ant DesignPro Vue + SpringBoot 前后端分离 - 后端微服化 + 接口网关 + Nacos + Sentinel

基于Ant DesignPro Vue SpringBoot 前后端分离 - 后端微服化 接口网关 Nacos Sentinel 通过Ant DesignPro Vue SpringBoot 搭建的后台管理系统后,实现了前后端分离,并实现了登录认证,认证成功后返回该用户相应权限范围内可见的菜单。 后…

分布式/微服务必配APM系统,SkyWalking让你不迷路

前言 如今分布式、微服务盛行,面对拆分服务比较多的系统,如果线上出现异常,需要快速定位到异常服务节点,假如还用传统的方式排查肯定效率是极低的,因为服务之间的各种通信会让定位更加繁琐;所以就急需一个…

大开眼界,Jenkins 结合 SpringCloud+K8S,打通微服一条龙技术讲解

Jenkins 是目前最常用的持续集成工具,拥有近 50%的市场份额,他还是很多技术团队的第一个使用的自动化工具。由此可见他的重要性! 这份 Jenkins 宝典从入门介绍到结合 DockerSpringCloudKubernetes,打通一条龙技术讲解,…

【微服】单体、SOA、微服务

单体架构 将所有的功能都集中在一个模块中(WAR包)开发、部署、迭代,牵一发而动全身,局部低效率拖垮整个服务。 SOA 按服务对项目拆分,通过对外提供接口的方式提供服务,缓解了单体的单服务低效率拖垮整个服…

微服架构基础设施环境平台搭建 -(三)Docker+Kubernetes集群搭建

微服架构基础设施环境平台搭建 -(三)DockerKubernetes集群搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试…

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建

微服架构基础设施环境平台搭建 -(二)Docker私有仓库Harbor服务搭建 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、…

SpringCloud微服架构

微服务架构 1)单体应用架构 高效开发:项目前期开发节奏快,团队成员少的时候能够快替代 架构简单:mvc架构,只需要借助Ide开发,调试即可 易于测试:只要通过单元测试或者浏览器完成 易于部署&…

微服架构

首先我们看看为什么要考虑使用微服务。 开发单体式应用 假设你正准备开发一款与Uber和Hailo竞争的出租车调度软件,经过初步会议和需求分析,你可能会手动或者使用基于Rails、Spring Boot、Play或者Maven的生成器开始这个新项目,它的六边形架构…

微服架构基础设施环境平台搭建 -(一)基础环境准备

微服架构基础设施环境平台搭建 -(一)基础环境准备 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动构建、编译、测试、发布的自动…

微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台

微服架构基础设施环境平台搭建 -(四)在Kubernetes集群基础上搭建Kubesphere平台 通过采用微服相关架构构建一套以KubernetesDocker为自动化运维基础平台,以微服务为服务中心,在此基础之上构建业务中台,并通过Jekins自动…

微服架构简介

什么是微服务? 专业解释: 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的…

微服架构基础设施环境平台搭建 -(五)Docker常用命令

微服架构基础设施环境平台搭建 -(五)Docker常用命令 本文主要列出了Docker常用的命令 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -(一)基础环境准备 微服架构基础设施环境平台搭建 -(二&am…

微服务简介

文章目录 微服务(micro services)简介一 什么是微服务?二 微服务这个概念的由来三 微服务和单体式架构区别3.1 单体式架构缺点3.2 微服务架构的解决方案3.3 微服务缺点3.4 微服务优点3.5 单体式和微服务对比 微服务(micro service…

微服务什么是以及微服务框架

微服务(microservice) 微服务是分布式架构的一种,分布式架构其实就是要把服务做一个拆分,而springcloud只是解决了拆分过程中的服务治理问题。 在单体架构中,我们把所有的服务都写在一起,随着业务的复杂代…

微服篇01——微服务的发展

01——微服务的发展 1:Monolith(整体架构) 服务所对应的代码由多个项目所组成,最终合并在一起形成一个WAR包,再部署到Web容器。 负载与扩容: 2:微服务(Microservice)架构模式 Microservic…

配置不同网段的dhcp服务器

dhcp中继设置 试题4:DHCP实验 背景: 某公司新建了局域网,要求网内地址采用DHCP分配,DHCP服务器地址为172.16.1.5/24,请建立172.16.1.128/25的域为局域网用户分配置IP地址,域中DNS地址为:202.97.…

Linux服务器配置(详细版)

本来就很麻烦,如果错了一个很有可能从新再来,非常麻烦所以要细心 请省略这段部分 --------------------------------------------------------------------------------------------------------------------------------------------- Linux命令 1.进…