首页 > 其他分享 >feign远程调用服务降级处理

feign远程调用服务降级处理

时间:2023-06-30 19:46:10浏览次数:25  
标签:heima feign 调用 服务 降级 article import com

当进行某一服务无法承受处理请求时,进行服务降级:

  服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃

  服务降级虽然会导致请求失败,但是不会导致阻塞。

 

服务降级是一种应对系统故障或高负载情况下的一种应对策略,它主要依靠提供一组备选的响应或功能,以保证整体系统的可靠性和稳定性。当主要服务不可用或性能降低时,服务降级可以使系统继续正常工作,提供基本的功能并确保用户体验不受太大影响。

下面是一些常见的服务降级技术和策略:

1. 返回默认值:对于某些无法正常执行的服务调用,可以返回一个预定义的默认值。这可以确保应用程序在主要服务不可用时仍能够继续运行。

2. 异常处理:当主要服务发生故障或响应超时时,可以捕获异常并返回一个预定义的错误响应,而不是抛出异常并导致应用程序崩溃。

3. 限流:当服务负载过重时,可以通过限制请求的速率或并发数来保护服务的可靠性。这可以防止资源被过度耗尽,并确保系统的稳定性。

4. 缓存:对于一些查询操作,可以通过数据缓存来减少对主要服务的依赖。如果主要服务不可用,应用程序可以从缓存中获取数据,以提供基本的功能。

5. 静态页面:在主要服务不可用时,可以提供静态页面或简化的功能页面,以保持用户体验。

实施服务降级时,需要根据具体的系统和业务需求选择合适的策略。服务降级应该是一种临时的解决方案,目的是保证系统的可用性和可靠性,同时应该注重对服务故障的监控和修复,以尽快恢复正常的服务状态。

总结来说,服务降级是一种应对系统故障和高负载的策略,通过提供备选的响应或功能来确保系统的可靠性和稳定性。在实施服务降级策略时,需要根据具体的场景和需求选择合适的降级技术,以提供基本的功能并保持用户体验。

 

feign远程调用服务降级处理

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;

@Component
public class IArticleClientFallback implements IArticleClient {

    @Override
    public ResponseResult saveArticle(ArticleDto dto) {
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR, "获取数据失败");
    }
}

2、远程接口中指向降级代码

package com.heima.apis.article;

import com.heima.apis.article.fallback.IArticleClientFallback;
import com.heima.model.article.dtos.ArticleDto;
import com.heima.model.common.dtos.ResponseResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient(value = "leadnews-article", fallback = IArticleClientFallback.class)
public interface IArticleClient {

    @PostMapping("/api/v1/article/save")
    public ResponseResult saveArticle(@RequestBody ArticleDto dto);
}

3、客户端开启降级heima-leadnews-wemedia

feign:
  # 开启feign对hystrix熔断降级的支持
  hystrix:
    enabled: true

 

标签:heima,feign,调用,服务,降级,article,import,com
From: https://www.cnblogs.com/fxzm/p/17517677.html

相关文章

  • 【Azure 存储服务】记一次调用Storage Blob API使用 SharedKey Authorization出现的40
    问题描述使用AzureStoragBlobRESTAPI上传文件,用SharedKey作为Authorization出现403错误。错误消息b'\xef\xbb\xbf<?xmlversion="1.0"encoding="utf-8"?><Error><Code>AuthenticationFailed</Code><Message>Serverfailedtoau......
  • 亚马逊国际获得AMAZON商品详情API接口采集sku商品规格信息列表Java调用演示案例
    ​亚马逊商品详情API接口的作用是获取Lazada电商平台上的某一商品的详情信息,包括商品的名称、销售价格、库存数量、图片、商品描述、品牌、产地、售后保障等信息。开发者可以使用该API接口获取到商品的原始数据,进行分析、筛选等操作。通过该接口获取到的商品详情数据可以结合其......
  • js原生方法:获取某个元素所处屏幕的位置,input输入框中文输入时的调用
    span.getBoundingClientRect()会返回改元素的位置信息//输入框内容改变functioninputSearchChange(){//如果是拼音输入,则会进入这个监听inputSearch.addEventListener('compositionstart',()=>{lastInputValue=inputSearch.valueisPinyin=true}......
  • 作为用户我该如何调用API 接口获取商品数据
    作为用户,如果你想要获取商品数据,可以通过调用API接口来实现。下面是一些步骤和注意事项,帮助你成功获取商品数据。了解开放平台:首先,你需要了解开放平台,注册一个开发者账号,并创建一个应用。在创建应用时,需要填写一些必要的信息,如应用名称、应用描述等。获取访问权限:在开放平台......
  • 了解Silverlight调用
    HTML页面会调用Default.html.js源代码页中的createSilverlight()。Sys.Silverlight.createObjectEx({source:"Scene.xaml",parentElement:document.getElementById("SilverlightControlHost"),id:"SilverlightControl",properties:{width:&q......
  • 关于微服务-服务通信调用
    描述:RESTfulAPI和RPC是两种常见的服务通信方式,而Feign是一种用于简化基于RESTfulAPI的服务调用的框架。消息队列是一种在软件系统中用于异步通信的中间件技术。它充当了消息的缓冲区或代理,允许发送者将消息发送到队列中,而不需要立即知道消息被哪个接收者处理。消息队列......
  • hasattr和getattr判断并调用方法属性
    下面是一个使用hasattr和getattr判断并调用方法属性的示例代码,实现了一个简单的FTP服务器:classFtpServer:defserve_forever(self):#服务器逻辑filename="example.txt"ifhasattr(self,"get"):get_method=getattr(self,"g......
  • api接口接入淘宝/天猫平台采集添加到购物车数据调用演示案例
    ​淘宝添加到购物车API接口的作用是向淘宝购物车中添加指定的商品,实现用户将商品加入购物车的功能。通过该API接口,用户可以将商品加入购物车,方便后续进行结算和购买。使用淘宝添加到购物车API接口,可以帮助开发者和商家进行以下操作:购物车管理:允许用户将商品添加到购物车并进行......
  • 在EasyCVR中调用快照接口返回404是什么原因?如何解决?
    EasyCVR视频融合平台基于云边端一体化架构,能在复杂的网络环境中将前端设备进行统一集中接入,实现视频资源的汇聚管理、直播鉴权、转码处理、多端分发、智能告警、数据共享等能力与服务。此外,平台也提供了丰富的API接口供用户自由调用、集成与二次开发。有用户反馈,在EasyCVR中调用......
  • api接口接入淘宝/天猫平台获取商品销量详情调用演示案例
    ​淘宝商品销量详情接口的作用是获取淘宝平台上某一商品的销售情况信息,包括商品的总销量、近期销量、销售趋势等。通过该接口,可以获取到商品销量的原始数据,用于分析商品的受欢迎程度和市场需求。使用淘宝商品销量详情接口,可以帮助商家和开发者进行以下操作:市场分析:通过获取商......