<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 在启动类上加入@EnbaleFeignClients
- 在配置文件中加入如下配置开启feign的hytrix功能(默认是关闭的,注意:这个配置是单独一级的,不能配置在spring.cloud下面)
feign:
hystrix:
enabled: true
- 新建一个FeignClient接口以调用其它服务:
@FeignClient(value="tzg-service-business",fallback = BusinessHystric.class )//value表示要调用的服务名,fallback表示熔断处理类
public interface BusinessMirco {
//表示要掉用的服务的api,value和该api的url保持一致,特别注意要有@RequestParam,不然会出错!
@GetMapping(value = "/" + GlobalConfigVar.VERSION +"/business/school/get_list")
MsgResponse<String> getList(@RequestParam GetSchoolListParam param);
}
- 新建一个熔断处理类(要继承FeignClient接口,并注入spring):
@Component
public class BusinessHystric implements BusinessMirco {
//feign接口的具体熔断方法
@Override
public MsgResponse getList(GetSchoolListParam param) {
return new MsgResponse().failure(-1,"服务器走神了");
}
}
@GetMapping("/testFeign")
public Object testFeign(){
GetSchoolListParam listParam=new GetSchoolListParam();
listParam.setCity_id(1);
return business.getList(listParam);//business为BusinessMirco实例;
}
2019/07/26追加:在实际使用中我们可能碰到使用Get方式请求其参数是对象时——服务端接口接收不到对象的情况;
此时有两种办法:一是将对象拆解出来,一个个传参数;原因:get原理其实是拼接的一个一个参数发送给服务端,然后映射到对象的属性值;所以如果feign 消费端中直接传一个对象服务端是接收不到的;
二是将服务端接口改成post方式结合@RequestBody即可传递对象参数:
转载于:https://my.oschina.net/u/3734816/blog/3069691
分享到:
相关推荐
在本篇学习笔记中,我们将深入探讨如何在Spring Cloud框架下构建一个Feign客户端,用于在微服务架构中实现服务间的远程调用。Feign是一个声明式的Web服务客户端,它使得编写HTTP客户端变得简单,而Spring Cloud对...
同时为了能够使用和Spring Web中默认使用的相同的httpMessageConverter,SpringCloud集成了Ribbon和Eureka,用来在使用Feign时能够为其提供一个负载均衡的HTTP客户端,大神必备神器,导入即用,无需更改配置!
springcloud整合openFeign,包括feign的基本使用、传参、指定特定的服务器、负载均衡等使用方法。 模块有: springcloud-feign-api springcloud-feign-consumer springcloud-feign-provider springcloud-feign-...
在本项目中,我们关注的是如何整合 Feign、Ribbon 和熔断器,这些都是 SpringCloud 生态系统中的关键组件。 1. **Eureka**:Eureka 是 Netflix 提供的服务注册与发现组件。在分布式系统中,服务之间需要互相调用,...
在Spring Cloud Feign中,我们可以使用FeignConfiguration来配置Feign组件的行为。在这里,我们可以创建一个FeignConfiguration配置类来配置Feign组件的日志和拦截器。例如,我们可以创建一个...
- **配置Feign**: 在Spring Cloud项目中引入Feign相关依赖,并在配置文件中设置服务发现组件(如Eureka)的配置,使Feign能发现其他服务实例。 - **创建Feign客户端**: 定义Feign接口,并使用`@FeignClient`注解...
在SpringCloud生态系统中,Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得简单。Feign的设计灵感来源于Retrofit和JAX-RS,它允许开发者通过接口定义来调用HTTP服务,提供了更优雅的远程调用方式。...
【SpringCloud——声明性REST客户端(Feign)】 在分布式微服务架构中,服务之间的通信是至关重要的。Spring Cloud提供了一种优雅的方式,通过Feign客户端来实现这一目标。Feign是一个声明式的Web服务客户端,它...
SpringCloud则为开发者提供了一套微服务解决方案,其中包括服务发现、配置中心、断路器、智能路由、微代理、控制总线等组件。 Feign是SpringCloud中的一个关键组件,它作为一个客户端接口,允许开发者以一种声明式...
Spring Cloud Feign是Spring Cloud生态系统中的一个组件,它作为一个声明式的服务调用客户端,使得编写Web服务客户端变得简单。Feign的设计灵感来源于Netflix的Feign库,它的主要目的是简化微服务之间的通信,使得...
6. **集成Hystrix**:Feign也整合了Hystrix,实现了熔断器模式,当远程调用的服务出现问题时,Hystrix能够提供备选方案或者直接断开请求,从而保护系统稳定。 ### Feign注解详解: - **@FeignClient**:标注在接口...
在Spring Cloud生态系统中,Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得简单。Feign通过创建一个接口并注解其方法,就可以轻松地实现服务调用。Spring Cloud将Feign与Eureka结合,使服务发现...
为了解决这个问题,我们可以采用熔断器模式,Spring Cloud 提供了 Hystrix 库来实现这一功能。Hystrix 是 Netflix 开源的一个用于处理分布式系统中延迟和故障的库,通过隔离服务调用、熔断保护和降级策略来确保系统...
在微服务架构中,SpringCloud是一个非常流行的框架集合,它为开发者提供了构建分布式系统所需的工具,包括服务发现、配置管理、断路器、智能路由、微代理等。在这个项目中,我们关注的是SpringCloud Eureka、Zuul、...
Spring Cloud 是一个基于 Netflix OSS 的微服务架构框架,它提供了多种工具和服务,帮助开发者构建、配置和管理分布式系统。在给定的标题和描述中,我们看到了几个关键组件:Eureka、Zuul、Ribbon、Hystrix 和 Feign...
Spring Cloud Feign 是一个声明式的 Web 服务客户端,它使得编写 Web 服务客户端变得简单。Feign 让消费者能够以一种声明式的方式定义接口,这些接口将被自动映射到 HTTP 请求。它整合了 Ribbon 和 Eureka,可以方便...
在SpringCloud框架中,Feign是一个声明式的Web服务客户端,它使得编写Web服务客户端变得简单。Feign的设计目标是让微服务之间的调用更加优雅,它通过注解和接口的方式,使得客户端调用服务就像调用本地方法一样简单...
Feign是Spring Cloud框架中的一个组件,主要用于实现微服务之间的声明式客户端调用,它使得服务间的调用更加简洁、直观。在这个名为"SpringCloud-创建服务消费者-Feign方式示例代码.zip"的压缩包中,我们预计将看到...
SpringCloud是基于Spring Boot进行快速构建分布式系统的一系列工具集,它提供了服务发现、负载均衡、熔断器、配置中心、消息总线、服务网关等关键组件,使得构建复杂的云原生应用变得轻而易举。在饿了么O2O外卖系统...
2. **配置中心**:通过Spring Cloud Config实现外部化配置,支持配置服务器集中管理配置文件,支持客户端配置的动态刷新。 3. **负载均衡**:通过Ribbon或Feign实现客户端的负载均衡。 4. **熔断器**:通过Hystrix...