SpringCloud(3)-OpenFeign相关配置

news/2024/11/17 2:57:48/文章来源:https://www.cnblogs.com/marigo/p/18200174
  • OpenFeign 是个声明式 WebService 客户端,使用 OpenFeign 让编写 Web Service 客户端更简单。
  • Spring Cloud 对 OpenFeign 进 行 了 封 装 使 其 支 持 了 Spring MVC 标 准 注 解 和
    HttpMessageConverters。
  • OpenFeign 可以与 Eureka 和 Ribbon 组合使用以支持负载均衡。

1.配置 pom.xml

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

引入openfeign的依赖

2.配置application.yml

server:port: 80spring:application:name: member-service-consumer-openfeigneureka:client:register-with-eureka: truefetch-registry: trueservice-url:defaultZone: http://eureka9001.com:9001/eureka,http://eureka9002.com:9002/eureka

3.配置启动类

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class MemberConsumerOpenfeignApplication80 {public static void main(String[] args) {SpringApplication.run(MemberConsumerOpenfeignApplication80.class, args);}
}

4.测试

启动后,到eureka页面查看是否注册成功
image.png

5.配置Service接口

@Component  
@FeignClient(value = "MEMBER-SERVICE-PROVIDER")  
public interface MemberFeignService {  /**  * 远程调用的方法  * url: http://MEMBER-SERVICE-PROVIDER/member/get/{id}  * OpenFeign 会根据 url 去找 MEMBER-SERVICE-PROVIDER 服务,使用内置的负责均衡算法  */  @GetMapping("/member/get/{id}")  public Result<Member> getMemberById(@PathVariable("id") Long id);  
}

6.配置Controller实现方法

@RestController  
public class MemberConsumerFeignController {  @Resource  private MemberFeignService memberFeignService;  // 远程调用  @GetMapping("/member/consumer/openfeign/get/{id}")  public Result<Member> getMemberById(@PathVariable("id") Long id) {  return memberFeignService.getMemberById(id);  }  
}

7.测试

image.png

8.日志配置

Feign 提供了日志打印功能,可以通过配置来调整日志级别,从而对 Feign 接口的调用情况进行监控和输出:

  • NONE∶默认的,不显示任何日志
  • BASIC∶仅记录请求方法、URL、响应状态码及执行时间;
  • HEADERS∶除了 BASIC中定义的信息之外,还有请求和响应的头信息;
  • FULL∶除了HEADERS中定义的信息之外,还有请求和响应的正文及元数据。

8.1 OpenConfig配置类

设置日志等级,注意Logger引入的依赖是feign

@Configuration
public class OpenFeignConfig {@BeanLogger.Level logLevel() {return Logger.Level.FULL;}
}

8.2 application.yml 配置

logging:level:#对 MemberFeignService 接口调用过程 打印的日志信息-debug 级别[error, warn, info, debug, trace]com.atguigu.springcloud.service: debug

9.OpenFeign超时配置

application.yml

ribbon:#设置 feign 客户端超时时间,指的是建立连接后从服务器读取到可用资源所用的时间,ReadTimeout: 6000#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间ConnectTimeout: 6000

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如此丝滑的API设计,用起来真香

谈及软件中的设计,无论是架构设计还是程序设计还是说API设计, 原则其实都差不多,要能够松耦合、易扩展、注意性能。遵循上述这些API的设计规则, 相信大家都能设计出比较丝滑的API。当然如果还有其他的API设计中的注意点也欢迎在评论区留言。分享是最有效的学习方式。 博客:…

《user-agent(UA)识别 Api 接口助力智能应用开发》

在现代智能应用的开发中,往往需要对用户的设备和浏览器进行识别,以便适配不同的操作系统和浏览器。而user-agent是一种非常重要的信息,它包含了用户设备、操作系统和浏览器的相关信息。在本文中,我们将介绍一个强大的user-agent识别 API 接口,它可以帮助开发者轻松实现用户…

科学时如何更快进行DNS解析及微信双开

如何更快进行DNS解析科学了,发现访问很慢,有时还无法访问,明显是被某种神秘的东方力量给阻断了。 DNS解析就起作用了。可以快速寻址,目前国内比较知名的且比较快的就是阿里云的:223.5.5.5。但是呢,这还需要看你自己的网络是哪家的,去访问国际的时候路由节点是否在国内来…

eclipse安装tomcat

一、确保Tomcat服务器处于关闭状态在配置之前确保tomcat服务器处于关闭状态,若tomcat处于启动状态则将其关闭,Service Status的值为Stopped表明Tomcat已经关闭 二、在Eclipse中配置Tomcat打开Eclipse---->点击Window---->点击Preferences点击Server---->点击Runtime…

Redis安装之集群-集群(cluster)模式

一、背景 Redis 哨兵模式在一定程度上解决的系统的高可用问题,但单 master 节点的写入也成为了系统处理高并发请求时的瓶颈。 二、方案原理采用多个 master 节点集群模式实现 Redis 水平扩容,提供并发请求处理能力; cluster 自带 sentinel 故障转移机制,无需再使用哨兵功能…

主流原型设计工具介绍

当谈到原型设计工具时,Axure 和墨刀是两个备受推崇的选择。它们各自拥有独特的特点和优势,适用于不同的设计需求和团队工作流程。今天我会重点介绍这两种工具的特点以及使用方法,并且简单介绍其他的一些原型设计工具例如:Sketch,Figma Axure Axure 是一款功能强大的原型设计…

【HFSS】看多个频点的三维方向图

1.扫频设置 扫频种类为Discrete,记得要保存场,Save Fields2.查看结果solution选择Sweep1,就是刚才新建的扫频设置即可在选项卡Families里面可以选择要查看的频点

MQTT详解以及实际操作

目录1 MQTT1.1 MQTT介绍1.1.1 简介1.1.2 特点和应用1.1.3 为什么要用 MQTT协议1.2 MQTT控制报文的结构1.2.1 固定报文头(Fixed Header)1.2.2 可变报文头(Variable Header)1.2.3 有效负荷和消息类型1.2.4 消息质量(QoS)1.4 搭建MQTT服务1.5 SpringBoot搭建提供端1.5.1 pom…

CERIO-DT系列路由器Save.cgi接口存在命令执行漏洞

漏洞描述: 由于未经过过滤和适当限制的情况下,传入的参数直接用于构建并执行系统命令,攻击者通过将恶意命令注入到"Save.cgi"接口的请求参数中可以执行任意命令。 Fofa: title="DT-100G-N" || title="DT-300N" || title="DT-100G" …

H2 数据库介绍(2)--使用

本文主要介绍 H2 的基本使用,文中所使用到的软件版本:Java 1.8.0_341、H2 2.2.224、PostgreSQL 驱动 42.5.5。 1、嵌入式(本地)模式 直接使用 JDBC 连接数据库即可,如果数据库不存在会自动创建。 1.1、持久数据库@Test public void localFile() throws SQLException {String…

利用Burpsuite爆破带有验证码web登录接口

工具下载地址 https://github.com/f0ng/captcha-killer-modified 该工具下的验证码识别python脚本要求python环境小于3.10.0 安装验证码识别python脚本引用的库 pip install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ddddocr aiohttp 加载…

整理C语言预处理过程语法的实用方法与技巧

预处理 目录预处理一、宏定义数值宏常量字符串宏常量用define宏定义注释符号?程序的编译过程预处理中宏替换和去注释谁先谁后?如何写一个不会出现问题的宏函数do-while-zero结构do-while-zero的评价宏定义中的空格宏只能在main函数上面定义吗?宏的作用范围#undef宏替换是在函…