首页 > 其他分享 >SpringCloud项目中实现服务降级

SpringCloud项目中实现服务降级

时间:2023-06-10 22:11:51浏览次数:29  
标签:heima 降级 服务 SpringCloud import article com

服务降级描述

  • 服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃
  • 服务降级虽然会导致请求失败,但是不会导致阻塞。

实现思路
服务A使用Feign远程调用服务B。当服务A的访问量过大,服务B已无法支持服务A的调用,可能会中断服务。此时就需要进行服务降级,确保服务B不会崩溃。
需要在Feign接口中编写降级逻辑;在服务A中编写配置类,扫描降级代码类的包;在Feign远程接口中通过@FeignClient注解中的fallback属性指向降级代码;在服务A的配置文件中开启服务降级,也可以指定服务响应的超时的时间。

实现步骤示例

  1. 在heima-leadnews-feign-api编写降级逻辑
点击查看代码
package com.heima.apis.article.fallback;

import com.heima.apis.article.IArticleClient;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.common.enums.AppHttpCodeEnum;
import org.springframework.stereotype.Component;

/**
 * feign失败配置
 * @author itheima
 */
@Component
public class IArticleClientFallback implements IArticleClient {
    @Override
    public ResponseResult saveArticle(ArticleDto dto)  {
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR,"获取数据失败");
    }
}
  1. 在自媒体微服务中添加类,扫描降级代码类的包
点击查看代码
@Configuration
@ComponentScan("com.heima.apis.article.fallback")
public class InitConfig {
}
  1. 远程接口中指向降级代码
点击查看代码
@FeignClient(value = "leadnews-article",fallback = IArticleClientFallback.class)
public interface IArticleClient {

    @PostMapping("/api/v1/article/save")
    public ResponseResult saveArticle(@RequestBody ArticleDto dto);
}
  1. nacos配置中心里添加如下内容,开启服务降级,也可以指定服务响应的超时的时间
点击查看代码
feign:
  # 开启feign对hystrix熔断降级的支持
  hystrix:
    enabled: true
  # 修改调用超时时间
  client:
    config:
      default:
        connectTimeout: 2000
        readTimeout: 2000

标签:heima,降级,服务,SpringCloud,import,article,com
From: https://www.cnblogs.com/wzh-Official/p/17472049.html

相关文章

  • java——微服务——spring cloud——Nacos——Nacos快速入门
            父工程中新增依赖:          ==================================================================================        客户端依赖修改——userservice和orderservice两个修改       ......
  • 高层次人才服务大数据系统建设方案
    系统概述高层次人才是一个国家、地区或公司发展的重要资源,因此需要对这些人才进行全面的管理和服务。高层次人才服务大数据系统旨在集成各种高层次人才相关的信息和数据,并为相关部门提供便利的查询和分析工具,以更好地服务高层次人才。功能模块该系统包括以下功能模块:1.人才信息管......
  • RD client远程桌面使用教程手机怎么连接服务器远程桌面?
    大家好啊,现在很多游戏、应用为了体验感好、方便使用都实现了多端同步,服务器远程连接也不例外,今天小驰给你们分享手机连接服务器远程桌面的操作方法不管是安卓还是苹果手机,咱们都需要用到一个软件,叫做RDclient(RemoteDesktop),先从安卓讲起安卓版RDclient下载地址:https://pan.baid......
  • .NET 微服务入门
    前置条件安装.NETSDK(目前.NET7.0)2023年6月10日安装Docker前置条件自己搞定。检查.NET和Docker是否安装成功#查看.NET是否安装成功dotnet--version#查看Docker是否安装成功docker--version说明:由于我这边安装了最新.NET8预览版所以显示的是最......
  • 如何修改服务器远程端口号3389?
    昨天给你们分享了电脑和服务器的安全基础知识,有讲到修改端口号,有必要时,这个端口,建议还是修改一下为好,最好改大一点,这样安全性会高一点,但如果面对高手级打击,就没有用了,通常高手级过NMAP扫描一个你的IP地址,端口便全部显现出来了。好了,下面我来告诉你们如何修改远程连接3389端口;首先......
  • 本地mysql服务无法启动 解决方案
    问题引入:在我启动SQLyog时,无法连接mysql,检查MYSQL服务,并无法手动启动,由此一下是解决步骤。首先,以管理员身份打开cmd。进入到mysql的bin目录,这里需要各位去文件找找路径;在bin下,删除mysqld的所有内容;​ mysqld--remove成功:Servicesuccessfullyremoved.......
  • 【React工作记录九十六】docker部署前后端项目在云服务器
    前言大家好我是歌谣最近开始前端和后端的学习需要部署项目在服务器上面命令部分目前只会部署的部分前端前彻底端的目录是在/ngng/html下面dockerrestartngng重新启动容器前端文件放置后端后端的文件在project下面步骤1dockerstopgeo2dockerrm-fgeo3dockerrmi-fgg......
  • java——微服务——spring cloud——Nacos——Nacos认识与安装
                   Nacos开发必知Nacos开发必知官网:https://nacos.io/zh-cn/index.htmlNocas文档:https://nacos.io/zh-cn/docs/what-is-nacos.htmlNocas下载:https://github.com/alibaba/nacos/releases  说明:1.4.0以下使用的mysql驱......
  • 【Ubuntu22.04】配置静态IP地址和FTP服务
    ##一、配置静态IP1.使用命令`ipa`查看当前网卡名称,Ubuntu22.04默认网卡为ens33:![](https://img2023.cnblogs.com/blog/3081210/202306/3081210-20230610143107393-250043837.png)2.使用命令`tree/etc/netplan`查看默认网卡配置文件:![](https://img2023.cnblogs.com/blog/......
  • 高层次人才服务信息系统建设方案
    高层次人才是现代社会发展的重要力量,为了吸引和服务这些人才,需要建设高层次人才服务信息系统。下面是一个基本的建设方案:1.确定系统需求首先需要明确高层次人才对服务的需求,并进行分析,以此为基础确定系统的功能和特点。比如,高层次人才可能需要查询相关政策、获得专业咨询、获得创......