【云原生】微服务之Feign的介绍与使用

这篇具有很好参考价值的文章主要介绍了【云原生】微服务之Feign的介绍与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:
最近在学习微服务相关的知识,看了黑马的相关课程,将关于Feign的知识又总结了一些,希望能帮到各位小伙儿们以及加深下自己的印象🎊
如果文章有什么需要改进的地方还请大佬多多指教🥂
小威先感谢大家的支持了😁
【云原生】微服务之Feign的介绍与使用

🏠个人主页:小威要向诸佬学习呀
🧑个人简介:大家好,我是小威,一个想要与大家共同进步的男人😉😉
目前状况🎉:目前大二,在一家满意的公司实习👏👏

🎁如果大佬在准备面试,可以使用我找实习前用的刷题神器哦刷题神器点这里哟
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,我亲爱的大佬😘

牛客部分使用反馈,个人感觉还不错,帮我找到了心仪的公司,希望各位伙伴儿们通过它也能提高不少🥂🥂🥂

以下正文开始

🚓Feign的简介

Feign 是一个声明式的伪RPC的REST客户端,它用了基于接口的注解方式,很方便的客户端配置,Spring Cloud 给 Feign 添加了支持Spring MVC注解,并整合Ribbon及Eureka进行支持负载均衡。
【云原生】微服务之Feign的介绍与使用

Feign 是⼀个 HTTP 请求的轻量级客户端框架。通过接⼝口和注解的⽅式发起 HTTP 请求调⽤,面向接口编程,并不是像 Java 中通过封装 HTTP 请求报⽂的⽅式直接调⽤。
服务消费⽅拿到服务提供⽅的接⼝,然后像调⽤本地接⼝⽅法⼀样去调⽤,实际发出的是远程的请求。让我们更加便捷和优雅的去调⽤基于 HTTP 的 API,被⼴泛应⽤在 Spring Cloud 的解决⽅案中。

🚗Feign的优点

之前我们利用RestTemplate发起远程调用的代码:

String url = "http://userservice/user/" + order.getUserld();
User user = restTemplate.getForObject(url, User.class);

上面的存在的问题有代码:
可读性差,编程体验不统一;
参数复杂URL难以维护
Feign是一个声明式的http客户端,官方地址:Feign官方链接

其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。

🚕Feign如何使用

还是以我们之前的项目为例
在order-service服务的pom文件中引入feign依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

在order-service的启动类添加注解开启Feign的功能:

@EnableFeignClients
@MapperScan("cn.itcast.order,mapper")
@SpringBootApplication
public class OrderApplication
public static void main(String[] args) [
SpringApplication.run(OrderApplication.class,args)

在order-service中新建一个接口,内容如下:

package cn.itcast.order.client;import cn.itcast.order.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;@FeignClient("userservice")
public interface UserClient {   
  @GetMapping("/user/{id}")   
  User findById(@PathVariable("id") Long id);
 }

这个客户端主要是基于SpringMVC的注解来声明远程调用的信息,比如:

  • 服务名称:userservice
  • 请求方式:GET
  • 请求路径:/user/{id}
  • 请求参数:Long id
  • 返回值类型:User

这样,Feign就可以帮助我们发送http请求,无需自己使用RestTemplate来发送了。

我们修改order-service中的OrderService类中的queryOrderById方法,使用Feign客户端代替RestTemplate:

@Autowired
private UserClient userClient;
public Order query0rderById(Long orderId) 
//1.查询订单
Order order = orderMapper.findById(orderId);
//2. 利用Feign发起http请求 查询用户
Useruser = userClient.findById(order.getUserId());
//3.封装user到0rder
order.setUser(user);
// 4.返回
return order;

🚙Feign的使用总结

使用Feign的步骤:

第①步 引入依赖

第②步 添加@EnableFeignClients注解

第③步 编写FeignClient接口

第④步 使用FeignClient中定义的方法代替RestTemplate
【云原生】微服务之Feign的介绍与使用

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起讨论🍻
最后再次给大家安利一波牛客,点击刷题神器
注册牛客,快来和博主一起刷题吧嘿嘿嘿👏 再次感谢各位小伙伴儿们的支持🤞

【云原生】微服务之Feign的介绍与使用文章来源地址https://www.toymoban.com/news/detail-402542.html

到了这里,关于【云原生】微服务之Feign的介绍与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【SpringCloud Alibaba】(四)使用 Feign 实现服务调用的负载均衡

    在上一文中,我们实现了服务的自动注册与发现功能。但是还存在一个很明显的问题:如果用户微服务和商品微服务在服务器上部署多份的话,之前的程序无法实现服务调用的负载均衡功能。 本文就带着大家一起实现服务调用的负载均衡功能 负载均衡:将原本由一台服务器

    2024年02月15日
    浏览(30)
  • 使用Feign进行微服务之间的接口调用:Spring Cloud Alibaba中的声明式服务调用

            Feign是一个声明式的 HTTP客户端框架 ,用于简化微服务架构中服务之间的通信。它是Spring Cloud框架的一部分,旨在提供一种优雅且易于使用的方式来定义和调用HTTP请求。         Feign的设计目标是让服务之间的通信变得更加简单和直观。通常情况下,在微服务

    2024年02月15日
    浏览(28)
  • 【云原生】Spring Cloud Alibaba 之 Feign 远程调用 实战

    在分布式领域中,一个系统由很多服务组成,不同的服务由各自的进程单独负责。因此,远程调用在分布式通信中尤为重要。 远程调用可分如下两类: 本地过程调用(Local Procedure Call,LPC) ,是指同一台机器上运行的不同进程之间的互相通信,即在多进程操作系统中,运行

    2023年04月09日
    浏览(29)
  • Spring Boot进阶(73):Spring Boot如何优雅地使用Feign进行服务间通信?

            在分布式系统中,服务间通信是非常常见的情况。而Feign就是一个开源的Java HTTP客户端,可以帮助我们在Spring Boot应用中快速构建和使用HTTP客户端,方便实现服务间的通信。本文将介绍如何优雅地使用Feign进行服务间通信。         那么,具体如何实现呢?这将又

    2024年02月06日
    浏览(44)
  • 【spring Cloud】微服务通信的三种方式RestTemplate、Feign远程调用与Dubbo的使用

    目录 一、通过RestTemplate调用微服务 二、通过Feign远程调用 三、Dubbo  分布式中的远程调用大概分为两种 RESTful接口  REST,即Representational State Transfer的缩写,如果一个架构符合REST原则,就称它为RESTful架构。 每一个URI代表一种资源; 客户端和服务器之间,传递这种资源的某种

    2024年04月11日
    浏览(35)
  • 专为云原生、微服务架构而设计的链路追踪工具 【SkyWalking介绍及搭建】

    服务链路追踪已成为不可或缺的一环 skywalking是一个优秀的 国产 开源框架,2015年由个人 吴晟 (华为开发者)开源 , 2017年加入apache 孵化器。 skywalking是分布式系统的应用 程序性能监视工具 ,专为微服务、云原生架构和基于容器化技术 (docker、K8s、Mesos)架构而设计,它是

    2023年04月08日
    浏览(73)
  • SpringCloud Alibaba(一)微服务简介+Nacos的安装部署与使用+Nacos集成springboot实现服务注册+Feign实现服务之间的远程调用+负载均衡+领域划分

    目录 一.认识微服务 1.0.学习目标 1.1.单体架构 单体架构的优缺点如下: 1.2.分布式架构 分布式架构的优缺点: 1.3.微服务 微服务的架构特征: 1.4.SpringCloud 1.5Nacos注册中心 1.6.总结 二、Nacos基本使用安装部署+服务注册 (一)linux安装包方式单节点安装部署 1. jdk安装配置 2. na

    2024年02月09日
    浏览(36)
  • SpringCloud《Eureka、Ribbon、Feign、Hystrix、Zuul》作用简单介绍

    SpringCloud是一个全家桶,包含多个组件。 本文主要介绍几个重要组件,也就是Eureka、Ribbon、Feign、Hystrix、Zuul这几个组件。 业务流程,支付订单功能 订单服务改变为已支付 订单服务调用库存服务,扣减库存 订单服务调用仓储服务,通知仓储发货 订单服务调用积分服务,增加

    2024年02月14日
    浏览(29)
  • feign自定义第三方接口;配置化Feign接口URL;调用指定IP的feign服务

    最近接手一个项目,各子工程之间通过feign调用;各服务部署在K8S上,通过nacos管理配置;由于服务部署的机器无法开放端口等原因,导致本机服务与测试环境网络端口无法互通,故需要重写feign的调用地址;个人总结的方法有以下几种: 目录  第一种:feignclient配置URL 第二种

    2024年02月04日
    浏览(52)
  • 【微服务】Feign远程调用

           📝个人主页: 五敷有你         🔥系列专栏: 微服务 ⛺️稳中求进,晒太阳 先来看我们以前利用RestTemplate发起远程调用的代码: 存在下面的问题: 代码可读性差,编程体验不统一 参数复杂URL难以维护 Feign是一个声明式的http客户端,官方地址:GitHub - OpenF

    2024年03月28日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包