您当前的位置:首页 > 电脑百科 > 站长技术 > 服务器

玩转Sentinel⾃定 义异常-整合Open-Feign

时间:2022-06-16 10:35:36  来源:  作者:不凡的菠菜呀

AlibabaCloud版本升级-⾃定义降级异常不向下兼容的坑

默认降级返回数据问题

  • 限流和熔断返回的数据有问题
  • 微服务交互基本都是json格式,如果让⾃定义异常信息

AlibabCloud版本升级,不兼容问题

  • v2.1.0到v2.2.0后,Sentinel⾥⾯依赖进⾏了改动,且不向下兼容

⾃定义降级返回数据

  • 【旧版】实现UrlBlockHandler并且重写blocked⽅法
@Component
public class XdclassUrlBlockHandler
implements UrlBlockHandler {
 @Override
 public void blocked(HttpServletRequest
httpServletRequest, HttpServletResponse
httpServletResponse, BlockException e) throws
IOException {
 //降级业务处理
 }
}
  • 【新版】实现BlockExceptionHandler并且重写handle⽅法
public class XdclassUrlBlockHandler
implements BlockExceptionHandler {
 
 @Override
 public void handle(HttpServletRequest
httpServletRequest, HttpServletResponse
httpServletResponse, BlockException e) throws
Exception {
 //降级业务处理
 }
}

新版Sentinel⾃定义降级异常数据开发实战

异常种类

  • FlowException //限流异常
  • DegradeException //降级异常
  • ParamFlowException //参数限流异常
  • SystemBlockException //系统负载异常
  • AuthorityException //授权异常

【新版】实现BlockExceptionHandler并且重写handle⽅法

 

@Component
public class AlibabaUrlBlockHandler implements BlockExceptionHandler {
    @Override
    public void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {
        Map<String,Object> result = new HashMap<>();
        if (e instanceof FlowException){
            result.put("code",-1);
            result.put("message","限流异常!");
        } else if (e instanceof DegradeException){
            result.put("code",-2);
            result.put("message","降级异常!");
        } else if (e instanceof ParamFlowException){
            result.put("code",-3);
            result.put("message","热点异常!");
        } else if (e instanceof SystemBlockException){
            result.put("code",-4);
            result.put("message","系统规则异常!");
        } else if (e instanceof AuthorityException){
            result.put("code",-5);
            result.put("message","认证异常!");
        }
        //设置返回数据
        response.setStatus(200);
        response.setHeader("content-type","Application/json;charset=UTF-8");
        response.getWriter().write(JSON.toJSONString(result));
    }
}

降级测试

玩转Sentinel⾃定 义异常-整合Open-Feign

 


玩转Sentinel⾃定 义异常-整合Open-Feign

 

流控测试

玩转Sentinel⾃定 义异常-整合Open-Feign

 


玩转Sentinel⾃定 义异常-整合Open-Feign

 

新版Sentinel整合OpenFeign配置实战

  • 加⼊依赖
<dependency>
       <groupId>com.alibaba.cloud</groupId>
       <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
  • 开启Feign对Sentinel的⽀持
#开启Feign对Sentinel的支持
feign:
  sentinel:
    enabled: true
  • 创建容错类, 实现对应的服务接⼝, 记得加注解
@Service
public class VideoServiceFallback implements VideoService {
    @Override
    public Video findById(int videoId) {
        Video video = new Video();
        video.setTitle("系统默认数据!");
        return video;
    }

    @Override
    public int save(Video video) {
        return 0;
    }
}
  • 配置feign容错类
@FeignClient(name = "alibaba-video",fallback = VideoServiceFallback.class)
  • 测试

 

玩转Sentinel⾃定 义异常-整合Open-Feign

 

参考源码:alibaba-cloud: alibaba-cloud学习

参考原文:cyz



Tags:   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
特斯拉官宣2024春季系统更新:全新UI、自动换挡、哨兵模式预览
IT之家 4 月 17 日消息,特斯拉在 X(推特)上宣布,即将发布春季系统更新,带来了全新 UI、自动换挡、无手触碰式后备箱、哨兵模式录像预览、高速公路动能回收增强等多项界面与功能更...【详细内容】
2024-04-18  Search:   点击:(3)  评论:(0)  加入收藏
刘强东数字人直播带货:2000万观众背后的技术与情感挑战
想象一下,一个由人工智能驱动的数字人,不仅外貌和声音酷似真人,还能在直播中与观众互动、带货。这不是科幻小说的情节,而是京东直播的新现实。4月16日,以京东创始人刘强东为形象...【详细内容】
2024-04-18  Search:   点击:(2)  评论:(0)  加入收藏
刘强东带火的数字人直播:能省钱,难赚钱
4月16日下午6点18分,以京东创始人、董事局主席刘强东为形象的“采销东哥”同时亮相京东家电家居、京东超市采销直播间。根据京东超市披露,采销东哥AI数字人上播30分钟,直播间观...【详细内容】
2024-04-18  Search:   点击:(2)  评论:(0)  加入收藏
一文看懂:华为Pura 70系列四款机型有何区别
快科技4月18日消息,华为Pura 70先锋计划今天正式开启!如今P系列品牌升级为Pura系列,焕新首作Pura 70系列融合巅峰影像、美学设计与独创风格,采用独家三角形“风向标”设计,支持超...【详细内容】
2024-04-18  Search:   点击:(6)  评论:(0)  加入收藏
李彦宏新目标,押注AI原生应用
文 / 道哥“未来,自然语言将成为新的通用编程语言。你只要会说话,就可以成为一名开发者,用自己的创造力改变世界。” 4月16日,百度创始人、董事长兼首席执行官李彦宏在Create 20...【详细内容】
2024-04-18  Search:   点击:(2)  评论:(0)  加入收藏
工信部:加快6G、万兆光网研发力度
IT之家 4 月 18 日消息,工业和信息化部新闻发言人、总工程师赵志国 18 日在国新办新闻发布会上介绍,下一步,工信部将围绕高质量发展这个首要任务,进一步巩固提升信息通信业竞争...【详细内容】
2024-04-18  Search:   点击:(3)  评论:(0)  加入收藏
万达电影正式易主实控人变更为儒意柯利明 王健林套现44亿
搜狐娱乐讯 (哈麦/文)4月16日晚,万达电影公告,北京万达文化产业集团、王健林,分别转让所持北京万达投资20%股权、1.2%股权,已办理完成工商变更登记手续。本次股权转让完成后,儒意投...【详细内容】
2024-04-18  Search:   点击:(2)  评论:(0)  加入收藏
提高Windows操作系统效率与速度的实用技巧指南
在这个快节奏的数字时代,我们都希望能够高效地完成工作和日常任务。对于广泛使用的Windows操作系统,掌握一些操作技巧不仅可以提高我们的工作效率,还能让我们的电脑运行得更加...【详细内容】
2024-04-18  Search:   点击:(3)  评论:(0)  加入收藏
华为Pura70系列约一分钟售罄!Pura 70 Ultra售9999起,鸿蒙生态打响原生之战
千呼万唤,华为Pura 70终于来了。据华为终端微博:2012年4月18日,华为首款P系列手机上市,今天,华为推出了“HUAWEI Pura 70系列 先锋计划”,Pura 70 Ultra和Pura 70 Pro于10:08先锋...【详细内容】
2024-04-18  Search:   点击:(3)  评论:(0)  加入收藏
电瓶车高端化,暂时无解
文 | 斑马消费,作者 | 范建2024年,新能源汽车市场的价格战,一轮比一轮汹涌。微缩版新能源&mdash;&mdash;两轮电动车市场,也正在上演类似故事。去年,两轮电动车市场双雄,雅迪控股销...【详细内容】
2024-04-18  Search:   点击:(2)  评论:(0)  加入收藏
▌简易百科推荐
为什么Nginx被称为“反向”代理呢?
Nginx(发音为"engine-x")是一款高性能、轻量级的开源Web服务器软件,也可用作反向代理服务器、负载均衡器和HTTP缓存。Nginx之所以有被称为“反向”代理,是因为它充当客户端设备...【详细内容】
2024-02-01  coderidea  微信公众号  Tags:Nginx   点击:(61)  评论:(0)  加入收藏
哪种服务器操作系统更好呢?
在当今的IT世界中,服务器操作系统扮演着至关重要的角色。它们是确保服务器能够高效、安全地运行的关键因素。然而,对于许多人来说,服务器操作系统的种类和特点可能是一个复杂的...【详细内容】
2024-01-30    简易百科  Tags:操作系统   点击:(80)  评论:(0)  加入收藏
什么是VPS服务器
VPS服务器是一种虚拟化技术,它将一台物理服务器划分为多个虚拟的独立服务器,每个虚拟服务器都可以拥有自己的操作系统、运行环境、应用程序等。这种技术使得每个虚拟服务器可...【详细内容】
2024-01-30    简易百科  Tags:VPS服务器   点击:(76)  评论:(0)  加入收藏
VPS服务器下载速度慢?这五招帮你提速
VPS服务器下载速度慢可能会让用户感到沮丧,尤其是对于需要大量下载和上传数据的用户。幸运的是,有一些方法可以帮助您提高VPS服务器的下载速度,使您的在线体验更加顺畅。在本文...【详细内容】
2024-01-30  IDC行业观察者    Tags:VPS服务器   点击:(60)  评论:(0)  加入收藏
美国VPS和英国VPS:地理位置对服务器性能的影响
在今天的数字时代,VPS已成为在线业务和网站托管的关键组成部分。然而,选择合适的VPS主机服务时,地理位置通常被忽视,尽管它对服务器性能有着重要的影响。本文将探讨美国VPS和英...【详细内容】
2024-01-26  IDC行业观察者    Tags:服务器   点击:(56)  评论:(0)  加入收藏
如何判断服务器所需带宽:基于业务需求和流量模式的关键考量
在选择服务器时,带宽是一个重要的考虑因素。带宽的大小直接影响到网站的加载速度和用户的访问体验。那么,如何判断服务器需要多大的带宽呢?本文将为你揭示这一关键问题的答案...【详细内容】
2024-01-26  源库科技    Tags:服务器   点击:(81)  评论:(0)  加入收藏
服务器内存空间及IO操作原理解析
服务器的内存空间分为内核空间和用户空间,而我们编写的程序通常在用户空间中运行。在进行读写操作时,我们直接操作的是用户缓冲区,而用户缓冲区的内容来自于内核缓冲区。这种内...【详细内容】
2024-01-23  王建立    Tags:服务器   点击:(46)  评论:(0)  加入收藏
如何在Java环境中安装Nginx?
1. 下载Nginx:首先,前往Nginx官方网站(https://nginx.org/en/download.html)下载新版本的Nginx。选择适合您操作系统的版本,通常有Windows、Linux和Mac等不同操作系统的版本可供...【详细内容】
2024-01-22  敲代码的小动    Tags:Nginx   点击:(71)  评论:(0)  加入收藏
服务器证书和SSL证书有啥区别?
在互联网经济时代,随着越来越多的信息以及合作都是从企业官网开始的,因此绝大多数企业都会为自己的网站配置SSL证书,以提高安全性。在接触SSL证书时,也有很多人称之为服务器证书...【详细内容】
2024-01-10  安信SSL证书    Tags:服务器证书   点击:(66)  评论:(0)  加入收藏
宝塔面板怎样部署java项目?
宝塔面板怎样部署java项目?在使用宝塔面板部署Java项目之前,需要确保已经安装了Java Development Kit (JDK)。接下来,将介绍如何使用宝塔面板来部署Java项目的步骤。步骤一:安装...【详细内容】
2024-01-09  西部数码    Tags:宝塔面板   点击:(126)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条