springcloud系列之feign

目录

概念

OpenFeign

使用指定的提交方式

feign 和 openfeign 的区别

相关配置参数


概念

feign 英文表意为“假装,伪装,变形”, 是一个 Http 请求调用的轻量级框架,可以以 Java 接口注解的方式调用 Http 请求,而不用像 Java 中通过封装 HTTP 请求报文的方式直接调用。通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。Feign 封装 了HTTP 调用流程,面向接口编程

 

OpenFeign

OpenFeign是Netflix 开发的声明式、模板化的HTTP请求客户端。可以更加便捷、优雅地调用http api。

OpenFeign会根据带有注解的函数信息构建出网络请求的模板,在发送网络请求之前,OpenFeign会将函数的参数值设置到这些请求模板中。

feign主要是构建微服务消费端。只要使用OpenFeign提供的注解修饰定义网络请求的接口类,就可以使用该接口的实例发送RESTful的网络请求。还可以集成Ribbon和Hystrix,提供负载均衡和断路器。

 

使用指定的提交方式

Feign默认所有带参数的请求都是Post,想要使用指定的提交方式需引入依赖

<dependency> 
    <groupId>io.github.openfeign</groupId> 
    <artifactId>feign-httpclient</artifactId> 
</dependency>

并指明提交方式

@RequestMapping(value = "/alived", method = RequestMethod.POST)
@GetMapping("/findById")

带参请求:

@GetMapping("/findById")
public Map findById(@RequestParam("id") Integer id);
	
@PostMapping("/register")
public Map<String, String> reg(@RequestBody User user);

 

feign 和 openfeign 的区别

Feign

OpenFeign

Feign是Spring Cloud组件中的一个轻量级 RestFul的Http 服务客户端。

Feign 内置了 Ribbon, 用来做客户端负载均衡,去调用服务注册中心的服务。

Feign的使用方式是:使用 Feign的注解定义接口,调用这个接口,就可以调用注册中心的服务

OpenFeign 是 Spring Cloud 在Feign的基础上支持了 SpringMVC 的注解, 如 @RequestMapping等等,OpenFeign 的@FeignClient可以解析 SpringMVC 的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-feign</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-openfeign</artifactId>

</dependency>

 

相关配置参数

# 设置连接超时时间
ribbon.ConnectTimeout=600
# 设置读取超时时间
ribbon.ReadTimeout=6000
# 对所有操作请求都进行重试
ribbon.OkToRetryOnAllOperations=true
# 切换实例的重试次数
ribbon.MaxAutoRetriesNextServer=2
# 对当前实例的重试次数
ribbon.MaxAutoRetries=1

以上是全局配置,针对某个具体的服务(如:my-service)也可以配置:

# 设置针对hello-service服务的连接超时时间
my-service.ribbon.ConnectTimeout=600
# 设置针对hello-service服务的读取超时时间
my-service.ribbon.ReadTimeout=6000
# 设置针对hello-service服务所有操作请求都进行重试
my-service.ribbon.OkToRetryOnAllOperations=true
# 设置针对hello-service服务切换实例的重试次数
my-service.ribbon.MaxAutoRetriesNextServer=2
# 设置针对hello-service服务的当前实例的重试次数
my-service.ribbon.MaxAutoRetries=1

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值