121面试必问:什么是熔断?什么是服务降级?

本文详细介绍了服务熔断和降级的概念及其区别,并以Hystrix为例,展示了如何在Spring Boot应用中实现服务熔断和降级。通过引入Hystrix依赖、配置启动类和Controller,以及创建Fallback处理类,实现了服务调用的容错和恢复能力。同时,文章还介绍了如何结合Feign客户端使用Hystrix,并启用健康监控和Hystrix Dashboard进行实时监控。
摘要由CSDN通过智能技术生成

更多面试题:面试题内容聚合

服务熔断

服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。

服务降级

服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。

熔断VS降级

相同点:

  • 目标一致 都是从可用性和可靠性出发,为了防止系统崩溃;

  • 用户体验类似 最终都让用户体验到的是某些功能暂时不可用;

不同点:

  • 触发原因不同 服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;

  • 更多面试题:面试题内容聚合

Hystrix简介

Hystrix:英 [hɪst'rɪks] 美 [hɪst'rɪks] ,翻译过来是“豪猪”的意思。在分布式环境中,不可避免地会出现某些依赖的服务发生故障的情况。Hystrix是这样的一个库,它通过添加容许时延和容错逻辑来帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点,阻止跨服务的级联故障,并提供了退路选项,所有这些都可以提高系统的整体弹性。

Hystrix的设计目的:

  • 通过第三方客户端的库来为访问依赖服务时的潜在故障提供保护和控制;

  • 防止在复杂分布式系统中出现级联故障;

  • 快速失败和迅速恢复;

  • 在允许的情况下,提供退路对服务进行优雅降级;

  • 提供近实时的监控、报警和操作控制;

接下来我们演示如何使用Hystrix,eureka服务注册中心以及message-service服务提供者无需更改。

使用Hystrix

引入Hystrix依赖

在 pom.xml 文件中引入Hystrix依赖:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.0.6.RELEASE</version>
 </parent>
 
 <properties>
  <spring-cloud.version>Finchley.SR2</spring-cloud.version>
 </properties>
 
 &
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值