SpringCloud: feign整合sentinel实现降级

一、加依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.edu.tju</groupId><artifactId>springbootcircuitbreaker</artifactId><version>1.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version></parent><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2021.0.1</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2021.0.1.0</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-datasource-nacos</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency></dependencies></project>

二、配置文件启用feign对sentinel的支持:

feign:sentinel:enabled: true

三、定义被调用的接口:

package cn.edu.tju.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class StockController {@RequestMapping("/getStock")public String getStock(){int t = 1 / 0;return "getStock";}
}

四、定义FeignClient及降级类:

package cn.edu.tju.service;import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;@FeignClient(value = "circuit-breaker", fallback = MyFallbackService.class)
public interface StockService {@RequestMapping("/getStock")String getStock();
}
package cn.edu.tju.service;import org.springframework.stereotype.Component;@Component
public class MyFallbackService implements StockService{@Overridepublic String getStock() {return "degraded get stock";}
}

五、定义controller,注入@FeignClient

package cn.edu.tju.controller;import cn.edu.tju.service.StockService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class DegradeController {@Autowiredprivate StockService stockService;@RequestMapping("/getDegrade")public String getDegrade(){return stockService.getStock();}
}

六、接口调用结果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/140490.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BookStack 详解及 Docker-Compose 部署

BookStack 是一款用于创建文档和文档管理的开源平台。它提供了一个直观且功能丰富的界面&#xff0c;可用于组织和管理各种文档&#xff0c;包括文档编写、编辑和共享。本文将介绍 BookStack 的核心功能&#xff0c;并展示如何使用 Docker-Compose 快速部署 BookStack。 BookS…

【数字人】6、ER-NeRF | 借助空间分解来实现基于 NeRF 的更高效的数字人生成(ICCV2023)

文章目录 一、背景二、方法2.1 问题设定2.2 Tri-Plane Hash Representation2.3 Region Attention Module2.4 训练细节 三、效果3.1 实验设定3.2 定量对比3.3 定性对比3.4 User study3.5 消融实验 四、代码4.1 视频数据预处理4.2 训练4.3 推理 论文&#xff1a;Efficient Region…

XCode15与iOS17/17.1 真机测试问题处理

XCode15与iOS17/17.1 真机测试问题处理&#xff0c;网上相关博客很多&#xff0c;摘录了如下实践后能起作用的地址如下&#xff1a;Xcode 15 报错处理 - 简书iOS17版本适配-CSDN博客 Xcode15适配-六虎 主要介绍下&#xff1a;Assertion failure in void _UIGraphicsBeginImag…

vivado 脚本使用——loogarch指令集 实验exp6

首先从Window-tcl console 调出终端 然后执行进入指定目录 也就是run_vivado 目录 然后打开Tools——Run Tcl script&#xff0c;执行create_project.tcl文件&#xff0c;静待完成。

LoogArch 指令集学习

1 SoC_Lite片上系统结构 mycpu和dram、confreg之间有一个“一分二”部件。这是因为在LoongArch指令系统架构下&#xff0c;所有I/O设备的寄存器都是采用memory mapped方式访问的。我们这里实现的confreg也不例外。Memory mapped的访问方式意味I/O设备中的寄存器各自都有一个唯一…

【k8s】1、基础概念和架构及组件

一、kubernetes概述 K8S是一种开源的容器编排平台&#xff0c;用于自动化部署、扩展和管理容器化的应用程序&#xff0c;它提供了一种容器编排和管理的方式&#xff0c;可以帮助开发人员更轻松的管理容器化的应用程序&#xff0c;并且提供了一种跨多个主机的自动化部署和管理机…

【下载器篇】获取微软应用商店应用安装包的方法

【下载器篇】获取微软应用商店应用安装包的方法 微软应用商店历史版本应用下载方法&#xff0c;部分历史版本无法搜索到—【蘇小沐】 文章目录 【下载器篇】获取微软应用商店应用安装包的方法1.实验环境 &#xff08;一&#xff09;微软商店的在线链接生成器1、复制该应用的在…

CPU设计——Triumphcore——V2版本

版本记录 指令实现情况&#xff1a; 【腾讯文档】Triumphcore指令实现情况 v2.1 先根据opcode确定指令格式类型&#xff0c;

浅谈余压监控系统在住宅小区的应用方案

【摘要】&#xff1a; 本文分析了火灾发生时人员伤亡的主要原因——烟雾&#xff0c;并针对该原因提供切实可靠的系统应用解决方案&#xff0c;并通过具体案例&#xff0c;从设计依据、产品选型、系统组网、现场安装等方式介绍余压监控系统&#xff0c;希望可以在火灾发生时较大…

药物滥用第三篇介绍

MCAT&#xff1a; 甲卡西酮&#xff08;Methcathinone&#xff0c;MCAT&#xff09;&#xff0c;是一种苯丙胺类似物&#xff0c;化学式为C10H13NO&#xff0c;一般为粉末状态或与水混合液体。 卡西酮类作用于中枢神经系统&#xff0c;主要增加细胞外单胺类神经递质的浓度&…

Identity-Preserving Talking Face Generation with Landmark and Appearance Priors

主要问题:1)模型如何生成具有与输入音频一致的面部运动(特别是嘴部和下颌运动)的视频?2)模型如何在保留身份信息的同时生成视觉上逼真的帧? 摘要: 从音频生成说话脸部视频引起了广泛的研究兴趣。一些特定个人的方法可以生成生动的视频,但需要使用目标说话者的视频进行训…

JIRA 在 2024 年完全停止服务器版本支持

在服务器上的开源许可证版本已经要过期了&#xff0c;想去更新下。 发现&#xff0c;JIRA 的所有服务器版本的支持马上就要结束了。 这就意味着&#xff0c;如果你部署的服务器版本的 JIRA 的话&#xff0c;你将没有办法对服务器进行更新。 貌似&#xff0c;必须使用 JIRA 提供…