spring cloud-feign

在微服务架构中肯定少不了服务之间的调用,我们一般会在application.yml声明目标微服务的url地址,在java代码中通过httpclient或spring resttemplate或httpasyncclient工具调用目标微服务。
spring cloud对微服务的调用进行了组件化,用feigin组件进行微服务调用。
feign是一个声明式的WebService客户端。使用Feign能让编写WebService更加简单,它的使用方法是定义一个http接口,然后在接口上添加注解,同时也支持JAX-RS标准的注解。feign也支持可插拔式的编码器和解码器。spring cloud对feign进行了封装,使其支持springMVC标注注解和HttpMessageConverters。feign可以与eureka和ribbon组合使用以支持负载均衡。
上述是理论,下面我们通过code实例讲解:
spring cloud-eureka讲解中,我们启动eureka服务,用于服务注册与发现。然后启动服务提供方microservice-provider-user,通过microservice-consumer-movie服务消费方调用微服务。文中我们是通过spring的RestTemplate调用的微服务。
如果使用feign,我们只需声明服务调用接口,然后通过@FeignClient调用:

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.itmuch.cloud.entity.User;

@FeignClient("microservice-provider-user")
public interface UserFeignClient {
  // 两个坑:
  // 1. @GetMapping不支持;
  // 2. @PathVariable得设置value;
  @RequestMapping(value = "/simple/{id}", method = RequestMethod.GET)  
  public User findById(@PathVariable("id") Long id); 

}

通过上述code可以发现,我们调用微服务使用的是微服务的application name,然后在@RequestMapping注解声明具体的请求接口和请求方式,便实现了微服务的调用。
使用feign调用微服务,即简化了服务调用过程,同时也为eureka+feign+ribbon组合支持微服务负载均衡提供了支持。
下篇文章我们将讲解如何使用eureka+feign+ribbon支持微服务负载均衡。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值