SpringCloud之Hystrix的详细使用

本文详细介绍了SpringCloud中Hystrix的服务降级和熔断机制。首先解释了服务降级的概念,指出在服务异常、超时或达到容量时,如何实现友好的用户体验。接着,通过对比无Hystrix和使用Hystrix的项目,展示了Hystrix如何在服务超时时提供降级策略。此外,文章还讨论了全局的Hystrix配置和熔断机制,说明当错误率超过一定阈值时,Hystrix会自动启用熔断,保护微服务链路。
摘要由CSDN通过智能技术生成
  • ***一.服务降级***
    • 2.不使用Hystrix的项目
    • 3. 使用Hystrix
    • 4. 全局的Hystrix配置
  • ***二.服务熔断***
    • 1.熔断机制概述
    • 2.项目中使用

1.概念

服务降级:服务器繁忙,请稍后再试,不让客户端等待,并立即返回一个友好的提示(一般发生在 程序异常,超时,服务熔断触发服务降级,线程池、信号量 打满也会导致服务降级)
服务熔断 : 达到最大服务访问后,直接拒绝访问,然后调用服务降级的方法并返回友好提示(如保险丝一样)
服务限流 : 秒杀等高并发操作,严禁一窝蜂的过来拥挤,排队进入,一秒钟N个,有序进行

***一.服务降级***

2.不使用Hystrix的项目

大致的Service和Controller层如下

***************Controller*****************
package com.sky.springcloud.controller;
 
import com.sky.springcloud.service.PaymentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@Slf4j
public class PaymentController {
    @Resource
    private PaymentService paymentService;
    @Value("${server.port}")
    private String serverport;
    @GetMapping("/payment/hystrix/ok/{id}")
    public String paymentInfo_Ok(@PathVariable("id") Integer id){
        String result = paymentService.paymentInfo_ok(id);
        log.info("*****"+ result);
        return result;
    }
    @GetMapping("/payment/hystrix/timeout/{id}")
    public String paymentInfo_TimeOut(@PathVariable("id") Integer id){
        String result = paymentService.payment_Info_TimeOut(id);
}
*******************Service********************
package com.sky.springcloud.service;
import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUni
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值