openfeign实现远程调用

news2024/11/24 6:16:57

一 openfeign简介

Feign 是声明性(注解)web 服务客户端它使编写 web 服务客户端更加容易请创建一个接口并对其进行注解.它具有可插入注解支持,包括Feign注解和JAXRS注解Feign 还支持可插拔编码器和解码器。Spring cloud 添加了对Spring MVC注解的支持,并支持使用 HttpMessageConverters,Spring Web 中默认使用的注解。Spring cloud集成了Ribbon和Eureka以及 Spring cloud LoadBalancer,以在使用 Feign 时提供负载平衡的 http 客户端。

二、使用

1.分别建立提供者和消费者两个服务模块,模拟消费者调用提供者服务的场景

 2.配置文件如下:

server:
  port: 8080

eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
spring:
  application:
    name: provider-service
server:
  port: 8081
spring:
  application:
    name: consumer-service
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka
ribbon:
  ReadTimeout: 3000 #调用超时时间
  ConnectTimeout: 3000 #连接超时时间

3.provider模块:

需要注意的是,如果要实现带参传入,则传参注解不能省略。

@RestController
public class ProviderController {

    @GetMapping("/provider")
    public String providerService(){
            return "啤酒饮料矿泉水,瓜子花生八宝粥";
    }
}

4.consumer模块:

@RestController
public class ConsumerController {
    @Autowired
    private consumerProviderFeign consumerProviderFeign;

    @GetMapping("/consumer")
    public String consumerService(){
        System.out.println("您有新的客户订单");
        String s = consumerProviderFeign.providerService();
        return s;
    }
}

5.写openfeign接口:

另外,还应在启动类加上注解@EnableFeignClients

@FeignClient(value = "provider-service")
public interface consumerProviderFeign {
    @GetMapping("/provider")
    public String providerService();
}

结果:

 6.原理:

feign->ribbon->eureka

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/685350.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python编译成SO文件和反编译的介绍

Python编译成SO文件和反编译的介绍 什么是SO文件? SO文件,也称为共享对象文件,是一种二进制文件格式,用于在多个应用程序之间共享代码和数据。在Unix和类Unix系统中,它们通常是共享库文件的形式。因此,SO…

chatgpt赋能python:Python编译成可执行文件:让你的代码更加优雅高效

Python编译成可执行文件:让你的代码更加优雅高效 Python作为世界上最受欢迎的编程语言之一,拥有着丰富的库、面向对象的语法和简单易懂的语法结构。然而,在开发Python应用程序时,受限于Python的解释性,导致程序的效率…

Qt实现自定义控件能够以插件的方式加载到Qt设计师

目录 1、自定义部件/控件2、改进法3、插件法3.1、创建工程3.2、工程目录3.3、修改插件类的代码3.3.1、HexSpinBox类的头文件3.3.2、HexSpinBox类的源文件3.3.3、HexSpinBox类的UI文件3.3.4 需要的注意的事项 3.4、生成动态库 4、测试插件能否正常使用4.1、测试Qt设计师能否识别…

认识@Validated 和 @Valid

对于web应用来说,对方法参数的校验是十分重要的,参数校验的是否全面,直接决定整个方法的健壮性。 除了使用麻烦的if判断校验参数,还可以使用Validated 和 Valid注解来进行优雅地参数校验,让参数校验和写诗一样优雅。 …

手机移动 APP测试流程及测试点

1 APP测试基本流程 1.1 流程图 1.2 测试周期 测试周期可按项目的开发周期来确定测试时间, 一般测试时间为两三 周(即 15 个工作日),根据项目情况以及版本质量可适当缩短或延长 测试时间。正式测试前先向主管确认项目排期。 1.3 测试资源 测试任务开始…

移动云智能算力调度平台,谱写算力互联互通新篇章

中国移动算力网络建设取得新进展!移动云智能算力调度平台验证了多云服务商间异构算力的统一调度能力,联动国家级超算中心、智算中心,促进东部业务灵活使用西部算力,作为未来算力互联网的统一调度平台将持续开展技术攻关与应用创新…

linux系统LNMP架构部署

文章目录 一、Nginx编译安装1、关闭防火墙,安全机制2、安装依赖包3、创建运行用户与组4、解压包、编译安装路径5、编译安装6、优化路径7、添加 Nginx 系统服务、赋权 二、安装 MySQL 服务1、安装环境依赖包2、创建运行用户与组3、解压包、编译安装路径4.编译安装5、…

chatgpt赋能python:用Python编程计算BMI,轻松掌握健康

用Python编程计算BMI,轻松掌握健康 作为一个现代人,保持健康的体态是我们每个人都需要关注的问题。那么,如何快速地计算自己的BMI呢?Python编程可以帮助我们轻松地实现这个目标。 什么是BMI? BMI全称为Body Mass In…

【Linux操作系统】互斥的4个概念以及认识信号量

文章目录 进程互斥的4个概念认识信号量认识接口理解IPC 信号量主要用于同步和互斥的,下面先来看看什么是同步和互斥。 进程互斥的4个概念 我们把大家都能看到的资源,称为公共资源。并且要想实现进程间通信,首要条件就是要让互相通信的进程看…

一文了解kubernetes部署:API部署过程

API部署 准备工作 一、镜像制作 请参考:《API镜像制作》 二、为k8s配置docker私服密钥 请参考:《配置docker私服密钥》 部署API 修改yaml文件 vi/opt/kubernetes/api/config-server.yaml vi/opt/kubernetes/api/api.yaml 1、修改api相应image值为您的镜…

【深度学习】日常笔记7

可以通过在⽹络中加⼊⼀个或多个隐藏层来克服线性模型的限制,使其能处理更普遍的函数关系类型。要做到这⼀点,最简单的⽅法是将许多全连接层堆叠在⼀起。每⼀层都输出到上⾯的层,直到⽣成最后的输出。 上面红框的公式其实换个角度是没错的。实…

总结911

目标规划: 月目标:6月(线性代数强化9讲,考研核心词过三遍) 周目标:线性代数强化5讲,英语背3篇文章并回诵,检测 每日规划 今日已做 1.回诵之前文章 2.每日长难句,句句…

Redis五种数据结构底层编码结构

String String是Redis中最常见的数据存储类型: 其基本编码方式是RAW,基于简单动态字符串(SDS)实现,存储上限为512mb。如果存储的SDS长度小于44字节,则会采用EMBSTR编码,此时object head与SDS是…

Mysql(Linux数据库或者在Navicate中)

Mysql数据库组成 服务端:主要存储数据,并接收用户发过来的SQL语句,并执行结果返回给客户端 客户端:下发用户要执行的sql语句,并显示服务器返回的执行结果 命令行数据库连接方式 mysql -h 数据库 IP -P 端口号 -u 数据库登录用户名 -p 数据库登录密码 -h不加表示为本机,-P不…

编译原理一:编译器工作流

文章目录 1. 编译器工作流1.1. 解析(Parsing)1.2. 遍历(Traversal)1.3 转换(Transformation)1.4 代码生成(Code Generation) 1. 编译器工作流 编译器是将一种语言转化为另一种语言的程序。在编译器工作流中,通常可以分…

git上传云效codeup

为了标识身份,建议先完成 Git 全局设置 git config --global user.name "xxx" git config --global user.email "xxxxxxqq.com" 1.删除本地 .git文件夹 2.云效上 添加库-新建代码库 3.在 git bash 里 按照 建好的代码库 下方的 命令行指引-…

chatgpt赋能python:Python编译成二进制文件:优化代码执行效率

Python编译成二进制文件:优化代码执行效率 介绍 随着Python编程的不断普及,越来越多的开发者选择Python作为开发工具。然而,Python解释器需要读取并解释源代码,这种解释方式在执行效率上存在瓶颈。为了提高执行效率,…

io.netty学习(十三)Netty 解码器

目录 前言 编解码概述 编解码器概述 Netty 内嵌的编码器 解码器 ByteToMessageDecoder 抽象类 ReplayingDecoder 抽象类 MessageToMessageDecoder 抽象类 总结 前言 编码和解码:数据从一种特定协议格式到另一种格式的转换。 处理编码和解码的程序通常被称…

【VulnHub系列】BrokenGallery

因为是从PDF转换过来偶尔可能会出现内容缺少,可以看原版PDF:有道云笔记 实验信息 Broken:192.168.10.111 Kali:192.168.10.106 实验过程 sudo arp-scan --interface eth0 192.168.10.1/24 然后对靶机进行端口探测 nmap -sT -…

定积分的应用—所围图形的面积、绕轴旋转所围成立体的体积、旋转曲面的面积、弧长

本篇本章,将从几个简单的例子带大家分析总结定积分的应用中常用的方法和思想,一起学习进入定积分的世界😜😜 一、求所围图形的面积 1.求由抛物线 y x 2 与 y 2 − x 2 所 围 图 形 的 面 积 yx^2与y2-x^2所围图形的面积 yx2与y2…