java服务降级_服务降级

java服务降级_服务降级什么是服务降级当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。在官方给定的示例代码中,是这样的,通过在@HystrixCommand下面声明回退方法的名称可以实现优雅降级。也就是说当该请求发生异常时,会调用该回退方法进行返回处理。重要的是要记住,Hystrix命令和回退应该放在同一个类中,并且…

大家好,又见面了,我是你们的朋友全栈君。

什么是服务降级

当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。

在官方给定的示例代码中,是这样的,通过在@HystrixCommand下面声明回退方法的名称可以实现优雅降级。也就是说当该请求发生异常时,会调用该回退方法进行返回处理。

重要的是要记住,Hystrix命令和回退应该放在同一个类中,并且具有相同的方法签名(失败的执行异常的可选参数)。

Fallback方法可以有任何访问修饰符。defaultUser在任何错误的情况下,方法将用于处理回退逻辑。如果您需要将回退方法defaultUser作为单独的Hystrix命令运行,则需要使用注释对其进行HystrixCommand注释,如下所示:

服务降级Demo

创建 Maven 项目

1、修改pom.xml文件,添加 hystrix 依赖

xsi:schemaLocation=”http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd”>

4.0.0

com.sxt

springcloud-eureka-consumer-ribbon-hystrix

0.0.1-SNAPSHOT

org.springframework.boot

spring-boot-starter-parent

1.5.13.RELEASE

UTF-8

UTF-8

1.8

org.springframework.cloud

spring-cloud-dependencies

Dalston.SR5

pom

import

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

test

org.springframework.cloud

spring-cloud-starter-config

org.springframework.cloud

spring-cloud-starter-eureka-server

org.springframework.cloud

spring-cloud-starter-hystrix

org.springframework.boot

spring-boot-maven-plugin

2、修改Consumer的业务方法,使用 @HystrixCommand 注解完成优雅降级

以下四种情况将触发 getFallback 调用

(1) 方法抛出非 HystrixBadRequestException 异常。

(2) 方法调用超时

(3) 熔断器开启拦截调用

(4) 线程池/队列/信号量是否跑满

3、修改启动类,在启动类中开启熔断。

4、全局配置文件

spring.application.name=eureka-consumer-ribbon-hystrix

server.port=9010

#设置服务注册中心地址,指向另一个注册中心

eureka.client.serviceUrl.defaultZone=http://user:123456@eureka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/

API 和 product参考之前女巫在说谎:Feign

正常访问测试

异常访问测试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130600.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • POSTMAN自动生成接口文档_swagger自动生成接口文档

    POSTMAN自动生成接口文档_swagger自动生成接口文档介绍drf-spectacular是为DjangoRESTFramework生成合理灵活的OpenAPI3.0模式。它可以自动帮我们提取接口中的信息,从而形成接口文档,而且内容十分详细,再也不

    2022年7月29日
    16
  • MySQL字符拼接_mysql查询字符串拼接

    MySQL字符拼接_mysql查询字符串拼接第一种:mysql自带语法CONCAT(string1,string2,…),此处是直接把string1和string2等等的字符串拼接起来(无缝拼接哦)说明:此方法在拼接的时候如果有一个值为NULL,则返回NULL如:1.SELECTCONCAT(“name=”,”lich”,NULL)AStest;2.SELECTCONCAT(“name=”,”lich”)AStest;第…

    2022年9月28日
    5
  • sdio接口wifi模块_连接路由器的用哪个接口

    sdio接口wifi模块_连接路由器的用哪个接口SDIO-WiFi即基于SDIO接口符合WiFi标准的嵌入式模块,内置802.11协议栈以及TCP/IP协议栈,可实现主平台铜鼓SDIO到无线网络之间转换SDIO:传输数据块,兼容SD,MMC接口等先以SDIO设备注册,然后检测到再注册WiFi功能,即用SDIO协议发送命令和数据sdio基本概念接口1.SD的IO接口,透过SD的IO接口连接外设,透过SD卡的IO数据接位…

    2022年10月3日
    3
  • TiKV 源码解析系列文章(十三)MVCC 数据读取

    TiKV 源码解析系列文章(十三)MVCC 数据读取作者:施闻轩在《TiKV源码解析系列文章(十二)分布式事务》中,我们介绍了如何在满足事务特性的要求下进行数据写入。本文将介绍数据读取的流程。由于顺序扫(ForwardScan)比较具有代表性,因此本文只介绍顺序扫的流程,而不会介绍点查或逆序扫。点查是顺序扫的简化,相信读者理解了顺序扫的流程后能自己想出点查的实现,而逆序扫与顺序扫也比较类似,主要区别在于从后向前扫,稍复杂一些,相信大家在阅…

    2022年9月23日
    5
  • sp_executesql 与 参数

    sp_executesql 与 参数总结了一下 sp_executesql 与 参数 的关系 sp_executesql  并不能通过参数列表指定任意部分,在普通sql语句中是变量的可以指定,是常量的不能指定。在sp_executesql 执行的字符串中, 下面称为spStr,有些是在设置sql字符串前就必须指定的,有些是以变量的形式指定的。跟sql语句相一致,这里语句称为 sqlStr,凡是在sqlStr语句中必须要声明为常

    2022年5月21日
    35
  • Pytest(1)安装与入门[通俗易懂]

    Pytest(1)安装与入门[通俗易懂]pytest介绍pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据pytest的官方网站介绍,它

    2022年7月29日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号