`
cheneyph
  • 浏览: 294038 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Feign对Hystrix的支持

阅读更多

   达到效果:

  1. 调用外部rest接口,而不是通过服务名调用;
  2. 实现Hystrix效果;

 

   以调用云片接口为例,完整示例代码:

 

@FeignClient(name = "yunpian", url = "https://sms.yunpian.com/v2",
        fallback = YunpianClient.YunpianFallback.class,
        fallbackFactory = YunpianClient.YunpianFallbackFactory.class)
public interface YunpianClient {

    @RequestMapping(value = "/sms/single_send.json", method = RequestMethod.POST,
            headers = {"Accept=application/json;charset=utf-8;", "Content-Type=application/x-www-form-urlencoded;charset=utf-8;"})
    Object singleSend(@RequestParam("apikey") String apikey,
                             @RequestParam("text") String text,
                             @RequestParam("mobile") String mobile);

    @Component
    class YunpianFallback extends BaseClient implements YunpianClient{

        @Override
        public Object singleSend(String apikey,
                                 String text,
                                 String mobile) {
            logger.error("调用异常,进入fallback ...,参数:{}, {}, {}", apikey, text, mobile);
            return "YunpianFallback ....";
        }
    }

    @Component
    class YunpianFallbackFactory extends BaseClient implements FallbackFactory<YunpianClient> {

        @Override
        public YunpianClient create(Throwable throwable) {
            return new YunpianClient() {
                @Override
                public Object singleSend(@RequestParam("apikey") String apikey, @RequestParam("text") String text, @RequestParam("mobile") String mobile) {
                    logger.error("调用异常,FallbackFactory ...,参数:{}, {}, {}", apikey, text, mobile);
                    return "FallbackFactory ....";
                }
            };
        }
    }
}

 

利用@FeignClient可很方便调用外部rest接口,并实现Hystrix效果。

 

但在上面代码中,只有fallback生效,fallbackFactory并不会被执行,看效果fallback 和 fallbackFactory只需配置一个即可。

 

 

分享到:
评论

相关推荐

    Feign对Hystrix的支持-代码部分.zip

    在"Feign对Hystrix的支持-代码部分"的项目中,我们可以看到以下几个关键的知识点: 1. **Feign的基本使用**:Feign通过接口定义了服务调用的方式,使用注解来指定HTTP请求的方法、URL、参数等信息。开发者只需要...

    springcloud全家桶(eureka+ribbon+feign+hystrix+turbine)

    feign, hystrix,熔断 turbine Spring Cloud Starters 同一个服务中的多数据库支持(AOP) 全链路traceId追踪 velocity 前端模板 mybatis, pageHelper (分页), druid (连接池) redis(序列化采用的是jdk默认序列化...

    springcloud feign整合hystrix(服务降级).doc

    这样会启用Feign客户端的Hystrix支持。 3. **定义Feign接口** 创建一个Feign接口,该接口会声明调用其他服务的方法。这些方法会被Hystrix装饰,提供服务降级的能力。例如: ```java @FeignClient(name = ...

    微服务springcloud之feign和hystrix使用demo

    feign中包含了hystrix以及ribbon,即feign在不导入hystrix和ribbon的依赖下也能完成他们所能实现的功能,当然,如果想使用hystrix和ribbon自带的注解以及配置,必须导入依赖才可以,feign结合hystrix实现熔断+降级,...

    springboot feign+Hystrix实现简单 微服务之间的调用 熔断的功能

    maven依赖 : &lt;groupId&gt;org.springframework.cloud &lt;artifactId&gt;spring-cloud-starter-...项目启动后 访问 http://127.0.0.1:8764/ 来实现项目接口调用 简单的demo 具备feign 接口调用 以及Hystrix简单熔断的功能

    SpringCloud项目集成Feign、Hystrix过程解析

    本文主要介绍了SpringCloud项目集成Feign、Hystrix过程解析的整个过程,通过示例代码对每个步骤进行了详细的介绍,对大家的学习或者工作具有一定的参考学习价值。 Feign的功能 Feign是Netflix公司开源的一个轻量级...

    feign-hystrix-10.7.4.jar

    feign-hystrix-10.7.4

    Spring Cloud Consul客户端(Feign&Hystrix)

    在这个示例中,我们结合了Feign和Hystrix,来实现优雅的服务调用和容错处理。 Feign 是 Spring Cloud 中的一个声明式 Web 服务客户端,它使得编写Web服务客户端变得简单。开发者只需要通过注解定义接口,Feign 就会...

    SpringBoot+SpringCloud+ConfigServer+Ribbon+Feign+Hystrix

    本文将详细介绍这些技术以及如何通过ConfigServer、Ribbon、Feign和Hystrix增强微服务架构的功能。 首先,SpringBoot是Spring框架的一种简化版本,它旨在简化初始化、配置和运行Spring应用程序的过程。SpringBoot...

    spring cloud 组件整合 eureka gateway feign hystrix,各个模的整合,供大家一起学习

    在Spring Cloud生态系统中,Eureka、Gateway、Feign和Hystrix是四个核心组件,它们协同工作以构建出高可用、高性能的微服务架构。让我们深入探讨这些组件以及它们如何整合。 1. **Eureka**:Eureka是Spring Cloud中...

    Feign集成Hystrix实现服务熔断和服务降级案例Java代码.zip

    Feign集成Hystrix实现服务熔断和服务降级案例Java代码

    SpringCloud_Ribbon_Feign_Hystrix_Zuul-master.zip

    《SpringCloud核心组件详解:Ribbon、Feign、Hystrix与Zuul》 SpringCloud作为微服务架构的重要框架,提供了丰富的组件用于构建分布式系统。本篇文章将深入探讨SpringCloud中的四大关键组件:Ribbon、Feign、...

    springcloud-ribbon-feign-hystrix-zuul-config

    在Spring Cloud框架中,"springcloud-ribbon-feign-hystrix-zuul-config"这个标题涉及到四个关键组件:Ribbon、Feign、Hystrix和Zuul,以及配置管理Config。这些组件都是构建分布式系统时常用的服务发现、客户端负载...

    SpringCloud Eureka+config+zuul+feign+hystrix

    本项目涉及的关键技术包括Eureka、Config、Zuul、Feign和Hystrix,它们各自扮演着重要的角色。 1. **Eureka**:Eureka是SpringCloud中的服务注册与发现组件。它允许各个微服务实例在启动时向Eureka Server注册自己...

    Spring Cloud+maven+Eureka+zuul+微服务+客户端+feign+hystrix+ribbon

    3. **Zuul**: Zuul是Spring Cloud的边缘服务和动态路由组件,作为微服务架构的入口,负责对所有请求进行路由转发,同时可以提供过滤功能,如认证、限流、熔断等。 4. **微服务**: 微服务架构将单一应用拆分为一组小...

    spring cloud eureka zuul ribbon hystrix feign config 示例

    在给定的标题和描述中,我们看到了几个关键组件:Eureka、Zuul、Ribbon、Hystrix 和 Feign,这些都是Spring Cloud生态中的重要组成部分。下面将详细阐述这些组件及其在实际应用中的作用。 1. **Eureka**:它是...

    详解springcloud Feign的Hystrix支持

    Spring Cloud Feign 的 Hystrix 支持 Spring Cloud Feign 是一个基于 HTTP 的客户端负载均衡器,它可以使用 Hystrix 实现断路器的功能。在本文中,我们将详细介绍如何在 Spring Cloud Feign 中使用 Hystrix 实现...

    feign-hystrix-10.10.1.jar

    javaEE javaweb常用jar包 , 亲测可用,下载后导入到java工程中使用。

    SpringCluod学习笔记,包含eureka,nacos,feign,hystrix,sleuth,admin

    下面是对Spring Cloud学习笔记的总结: 一、微服务架构简介 微服务架构是一种分布式系统架构思想,旨在将软件应用程序设计为独立部署的服务。微服务架构的系统是由多个小的、独立的服务组成的,每个服务都有其自己...

Global site tag (gtag.js) - Google Analytics