达到效果:
- 调用外部rest接口,而不是通过服务名调用;
- 实现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的支持-代码部分"的项目中,我们可以看到以下几个关键的知识点: 1. **Feign的基本使用**:Feign通过接口定义了服务调用的方式,使用注解来指定HTTP请求的方法、URL、参数等信息。开发者只需要...
feign, hystrix,熔断 turbine Spring Cloud Starters 同一个服务中的多数据库支持(AOP) 全链路traceId追踪 velocity 前端模板 mybatis, pageHelper (分页), druid (连接池) redis(序列化采用的是jdk默认序列化...
这样会启用Feign客户端的Hystrix支持。 3. **定义Feign接口** 创建一个Feign接口,该接口会声明调用其他服务的方法。这些方法会被Hystrix装饰,提供服务降级的能力。例如: ```java @FeignClient(name = ...
feign中包含了hystrix以及ribbon,即feign在不导入hystrix和ribbon的依赖下也能完成他们所能实现的功能,当然,如果想使用hystrix和ribbon自带的注解以及配置,必须导入依赖才可以,feign结合hystrix实现熔断+降级,...
maven依赖 : <groupId>org.springframework.cloud <artifactId>spring-cloud-starter-...项目启动后 访问 http://127.0.0.1:8764/ 来实现项目接口调用 简单的demo 具备feign 接口调用 以及Hystrix简单熔断的功能
本文主要介绍了SpringCloud项目集成Feign、Hystrix过程解析的整个过程,通过示例代码对每个步骤进行了详细的介绍,对大家的学习或者工作具有一定的参考学习价值。 Feign的功能 Feign是Netflix公司开源的一个轻量级...
feign-hystrix-10.7.4
在这个示例中,我们结合了Feign和Hystrix,来实现优雅的服务调用和容错处理。 Feign 是 Spring Cloud 中的一个声明式 Web 服务客户端,它使得编写Web服务客户端变得简单。开发者只需要通过注解定义接口,Feign 就会...
本文将详细介绍这些技术以及如何通过ConfigServer、Ribbon、Feign和Hystrix增强微服务架构的功能。 首先,SpringBoot是Spring框架的一种简化版本,它旨在简化初始化、配置和运行Spring应用程序的过程。SpringBoot...
在Spring Cloud生态系统中,Eureka、Gateway、Feign和Hystrix是四个核心组件,它们协同工作以构建出高可用、高性能的微服务架构。让我们深入探讨这些组件以及它们如何整合。 1. **Eureka**:Eureka是Spring Cloud中...
Feign集成Hystrix实现服务熔断和服务降级案例Java代码
《SpringCloud核心组件详解:Ribbon、Feign、Hystrix与Zuul》 SpringCloud作为微服务架构的重要框架,提供了丰富的组件用于构建分布式系统。本篇文章将深入探讨SpringCloud中的四大关键组件:Ribbon、Feign、...
在Spring Cloud框架中,"springcloud-ribbon-feign-hystrix-zuul-config"这个标题涉及到四个关键组件:Ribbon、Feign、Hystrix和Zuul,以及配置管理Config。这些组件都是构建分布式系统时常用的服务发现、客户端负载...
本项目涉及的关键技术包括Eureka、Config、Zuul、Feign和Hystrix,它们各自扮演着重要的角色。 1. **Eureka**:Eureka是SpringCloud中的服务注册与发现组件。它允许各个微服务实例在启动时向Eureka Server注册自己...
3. **Zuul**: Zuul是Spring Cloud的边缘服务和动态路由组件,作为微服务架构的入口,负责对所有请求进行路由转发,同时可以提供过滤功能,如认证、限流、熔断等。 4. **微服务**: 微服务架构将单一应用拆分为一组小...
在给定的标题和描述中,我们看到了几个关键组件:Eureka、Zuul、Ribbon、Hystrix 和 Feign,这些都是Spring Cloud生态中的重要组成部分。下面将详细阐述这些组件及其在实际应用中的作用。 1. **Eureka**:它是...
Spring Cloud Feign 的 Hystrix 支持 Spring Cloud Feign 是一个基于 HTTP 的客户端负载均衡器,它可以使用 Hystrix 实现断路器的功能。在本文中,我们将详细介绍如何在 Spring Cloud Feign 中使用 Hystrix 实现...
javaEE javaweb常用jar包 , 亲测可用,下载后导入到java工程中使用。
下面是对Spring Cloud学习笔记的总结: 一、微服务架构简介 微服务架构是一种分布式系统架构思想,旨在将软件应用程序设计为独立部署的服务。微服务架构的系统是由多个小的、独立的服务组成的,每个服务都有其自己...