springcloud整合Hystrix,实现接口服务降级

2023-10-26

利用Hystrix对接口control层进行服务降级

新建子工程service03,作为测试Hystrix服务降级的微服务

pom.xml

<?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">
    <parent>
        <artifactId>springcloud_test01</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>service03</artifactId>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- conslu -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>

        <!-- actuator 心跳检查 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- hystrix 依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
    </dependencies>
</project>

application.yaml

server:
  port: 8083

spring:
  application:
    name: service3
  cloud:
    consul:
      port: 8500
      host: 127.0.0.1
      discovery:
        instance-id: ${spring.application.name}-${server.port}-${spring.cloud.client.ip-address}
        prefer-ip-address: true

业务代码

control层降级注解

package com.ccj.sentineltest.controller;

import com.ccj.sentineltest.service.HystrixService;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixProperty;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("sentinel")
public class HystrixController {
    private static final String EXPIRATION_TIME = "2000";

    private final HystrixService service;

    public HystrixController(HystrixService service) {
        this.service = service;
    }

    //接口超过2秒未返回,自动降级,返回timeoutHandler的内容
    @HystrixCommand(fallbackMethod = "timeoutHandler", commandProperties = {
          @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = EXPIRATION_TIME)
    })
    @GetMapping
    public String test() throws InterruptedException{
        return service.sayHello();
    }

    private String timeoutHandler() {
        return "服务繁忙,请稍候重试!";
    }
}

Application.class springboot启动类

@SpringBootApplication
@EnableCircuitBreaker //开启Hystrix
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springcloud整合Hystrix,实现接口服务降级 的相关文章

  • Bean定义继承带有注解?

    是否可以使用基于注释的配置来实现相同的bean继承 Bean etc
  • 从数据库或Java对象动态加载spring bean属性)

    我有一个场景 我需要将属性从数据库或java对象加载到bean中 考虑这个例子
  • 表“DBNAME.hibernate_sequence”不存在

    我有一个使用 spring data jpa 的 Spring Boot 2 0 1 RELEASE 应用程序
  • 如何使用事务范围的持久化上下文进行非事务性读取查询?

    我读了 Spring 文档 它说 PersistenceContext 注解有一个可选的属性类型 默认为 PersistenceContextType TRANSACTION 此默认值是您接收共享所需的 实体管理器代理 这是否意味着我必须让
  • Spring数据异常处理

    我正在使用 Spring Data JPA 开发一个项目 我需要处理 JpaRepository 方法调用中的一些异常 在下面的代码中 我需要拦截主键违规错误 但无法直接捕获异常 就我而言 当发生此类异常时 存储库层 JpaReposito
  • AOP 使用 around 来避免执行方法

    我在代码中使用 Spring AOP 来拦截某个方法的执行 我正在尝试做的一个简化示例如下 public void someMethod does something Around execution someMethod public v
  • 设置 JPA 可分页对象的默认页面大小

    我有一个 PagingandSorting 存储库 它有一个接受可分页对象的方法 我还有一个通过 URL 接受可分页对象的控制器 我的用例是 如果用户在 URL 中指定页面大小参数 我必须为可分页对象采用该值 如果他没有提及 则采用默认值
  • Spring-MVC 3.1:如何映射带有尾部斜杠的 URL?

    我正在将旧版 servlet 应用程序转换为 Spring 3 1 在此过程中 一些 URL 现在已过时 我们的网络存在一些问题 短期内不会得到解决 我的老板不想相信他们的重定向将始终有效 因此 她要求我将自己的重定向放入网络应用程序中 一
  • Spring框架中的DAO和Service层到底是什么?

    Spring框架中的DAO和Service层到底是什么 我正在寻找理论答案 就 Spring 而言 没有区别 按照惯例 您可以使用以下方式标记 DAO 类 Repository和服务 Service 前者还进行一些持久层异常转换 既然您在理
  • 更新(合并)时缺少 Spring Data JPA 验证

    我正在使用 Spring Boot 1 5 4 RELEASE 和 Spring Data JPA 进行项目 遇到更新实体时未执行 Hibernate 验证器或至少在某些情况下未验证的问题 For Person如下所示 禁止使用空名称 并且
  • 在 WildFly 10 中添加 jar 作为部署

    有没有办法 我们可以将 jar 部署为库 部署WildFly 10就像我们可以做到的那样weblogic服务器 或者我们可以将 jar 放在服务器的任何文件夹中并将这些依赖项定义为provided 我得到了什么部署方式jars on Wil
  • 获取Spring bean的真实Class对象

    我正在使用 Spring 注入 Bean 我正在使用一些注释来注释 bean 方法 Security TransactionManagement ExceptionHanling Logging 问题是 我想创建 JUnit 测试来检查我是
  • Spring Security Ldap,仅登录指定组中的用户

    就像标题一样 我希望只有规范的用户 这是我的验证码 public void configureGlobal AuthenticationManagerBuilder auth throws Exception auth ldapAuthen
  • Java hibernate 找不到布尔值验证器

    我有一个服务方法尝试添加一个对象store 冬眠的方法 get 方法适用于此 DAO 和服务类 而添加方法则不起作用 在控制台中没有错误 UrlWhiteListDaoImpl urlDao MapperFacade mapper Auto
  • 如何从 httpservletrequest 获取多方身份

    我正在尝试从 java spring 控制器调用 web 服务 下面是代码 private void storeImages MultipartHttpServletRequest multipartRequest DefaultHttpC
  • 用于多部分/表单数据的 POSTMAN

    如何将 POSTMAN 用于 Multipart form data 它具有自定义标头来测试我的控制器 该控制器采用 2 个文件作为参数 public controller MultipartFile files POST HTTP 1 1
  • 错误:“连接被拒绝:连接。验证连接属性

    与主机 localhost 端口 1433 的 TCP IP 连接失败 错误 连接被拒绝 连接 验证连接属性 确保 SQL Server 实例正在主机上运行并接受端口上的 TCP IP 连接 确保到该端口的 TCP 连接未被防火墙阻止 我已
  • Spring Security 实体字段级安全

    我有一个 Spring MVC 应用程序 它提供了一个视图 其中显示了来自Customer实体 例如姓名 地址 电话号码等 该应用程序具有各种角色 例如ROLE USER and ROLE ADMIN 用户具有ROLE USER只能看到客户
  • 使用 Spring 通过构造函数自动装配集合

    我有一个看似简单的问题 如标题所示 这是我的课程类型 public class Foo Autowired public Foo Qualifier bar Set
  • 如何使用 RestTemplate 禁用编码

    我正在使用 REST 模板有意在请求 uri 中发送 例如 items a b String responseEntity restTemplate exchange items a b requestObj getHttpMethod r

随机推荐

  • Flutter中 解决自定义阿里妈妈图标一直显示不出来的问题

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 前言 Flutter中 自定义图标一直显示出来的问题 这里引用的是阿里妈妈图标 问题解决 位置一定要对应好
  • 解决小程序报错getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json

    报错 1 uniapp项目 在manifest json中打开源码视图 小程序特有相关 mp weixin appid 你的开发者id setting urlCheck true es6 true postcss true minified
  • 【Scala入门】scala基础语法:类和对象,变量和常量

    上一篇请移步 Scala入门 Scala下载及安装 Windows 以及Idea创建第一个scala项目 水w的博客 CSDN博客 目录 一 Scala 二 Scala基础语法 2 1 注释与标识符规范 2 2 变量与常量 案例 变量声明和
  • 摩尔定律到摩尔第二定律

    摩尔定律相信大家都不陌生 由英特尔创始人之一戈登 摩尔提出来的 其内容为 当价格不变时 集成电路上可容纳的元器件的数目 约每隔两年便会增加一倍 而普遍的说法是约每隔18个月便会增加一倍 各种说法总结起来就是 1 集成电路芯片上所集成的电路的
  • 【docker】/var/lib/docker/overlay2/ 占用磁盘问题 最终解决方案

    找IT 挂载了新磁盘 比如 data2 100G 在docker配置文件中 加上这个 systemctl daemon reload 重启docker服务即可 会导致此服务器上的所有docker 容器丢失 需要重新部署 还会导致一个问题 d
  • Hibernate参数校验报错:No validator'javax.validation.constraints.Size' validating type 'java.lang.Integer'.

    javax validation UnexpectedTypeException HV000030 No validator could be found for constraint javax validation constraint
  • Python网络爬虫学习笔记(三)正则表达式

    正则表达式 正则表达式是处理字符串的强大工具 它有自己特定的语法结构 有了它 实现字符串的检索 替换 匹配验证 1 实例引入 正则表达式匹配 也就是用一定的规则将特定的文本提取出来 开源中国提供了正则表达式测试工具 https tool o
  • 虚拟机升级glibc(libc), 导致段错误等问题

    由于确实glibc高版本 需要升级glibc 导致出现段错误等信息 只剩下pwd cd等命令可以执行 这个时候需要靠补全命令查询到原系统使用的libc 2 xx文件 然后使用sln 原系统的重新索引libc so 6文件 sln lib64
  • SOA是什么?

    写这样的blog很容易被人砸砖头 而且我现在在专心做BPEL的研究 http hongsoft iteye com admin blogs 287353 也没有必要现在趟这个混水 不过想想 还是有话要说 定义 SOA是一种做架构的范式 这个
  • FreeSwitch数据库

    Freeswitch数据库 一 ODBC DSN 1 概念 ODBC 开放数据库连接 Open Database Connectivity ODBC https baike baidu com item ODBC 是为解决异构数据库间的数据
  • 线性回归(两种方式代码实现)

    方式一 最小二乘法 正规方程 公式推导 其中 代码实现 1 导入库 import numpy as np from sklearn datasets import load boston boston load boston x bosto
  • 前端面试总结及建议

    最近 由于项目组刚成立不久 团队处于天地初开的混沌状态 人员配置不齐 急需一大股新鲜血液融入 为此 开启了一段时间与求职面试者的博弈之路 如今的IT大环境 似乎每个公司一年四季都处于招人状态 而同时又有一大批无论是离职还是在职人员期许找一个
  • Linux操作命令笔记

    Linux Linux的字母大小写 下载和卸载 软件更新 查看空间使用情况 当前目录所在的位置 查看文件中的内容 查看目录下的文件 重启 关机 移动文件 磁盘管理软件 修改权限 删除文件或文件夹 新建文件夹 移动一个文件夹 文件重命名 编译
  • CMake中define_property的使用

    CMake中的define property命令用于定义和记录自定义属性 其格式如下 define property
  • 轻量微调和推理stanford_alpca

    当前的Alpaca模型是在Self Instruct论文中使用的技术生成的52K条指令数据 从7B LLaMA模型微调而来 并进行了一些修改 A10 gpu显存 22G cu117 驱动470 103 01 absl py 1 4 0 ac
  • 图形化界面

    文章目录 一 引入图形化界面 二 关于Easyx的基本函数操作 2 1颜色配比函数 2 2EasyX的坐标 有负数区分 2 3窗口函数函数 三 关于Easyx的实际操作 代码实现 3 1颜色操作的代码实现原理 3 2坐标操作的代码实现原理
  • uview ,uniapp 的UI组件

    文档 https www uviewui com components picker html
  • 高手勿进!写给初中级程序员以及还在大学修炼的“准程序员”的成长秘籍

    1 不要畏惧英文 互联网上很多优秀的技术资源和社区的内容都是英文 如果畏惧英文 就没办法从中汲取富有营养的知识 也没办法跟上技术的发展潮流 那么技术能力就会很难再上一层 技术的眼界就会受限 所以需要去突破语言这关 A 从改变语言环境开始 你
  • 【最详细附源码】R语言4.3.0全新安装教程

    软件下载 软件 R语言 版本 4 3 0 语言 简体中文 大小 77 74M 安装环境 Win7及以上版本 64位操作系统 硬件要求 CPU 2 0GHz 内存 4G 或更高 下载通道 百度网盘丨64位下载链接 https pan baid
  • springcloud整合Hystrix,实现接口服务降级

    利用Hystrix对接口control层进行服务降级 新建子工程service03 作为测试Hystrix服务降级的微服务 pom xml