springcloud(十一) OpenFeign服务调用、超时控制以及日志增强

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

OpenFeign 

声明式webservice客户端,定义一个服务端接口添加注解,使用更方便,内部包换了ribbon支持负载均衡

Feign能干什么


         前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口会被多处调用,所以通常都会针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用。所以,Feign在此基础上做了进一步封装,由他来帮助我们定义和实现依赖服务接口的定义。在Feign的实现下,我们只需创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可),即可完成对服务提供方的接口绑定,简化了使用Spring cloud Ribbon时,自动封装服务调用客户端的开发量

一、服务调用

引入

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

配置yml

server:
  port: 80

eureka:
  client:
    register-with-eureka: false
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
 
 

配置主启动

/**
 * 
 * @create 2020-02-03 11:55
 */
@SpringBootApplication
@EnableFeignClients         //配置feign
public class OrderFeignMain80
{
    public static void main(String[] args)
    {
        SpringApplication.run(OrderFeignMain80.class,args);
    }
}

建立service接口  PaymentFeignService 并添加@FeignClient 注解 

 @FeignClient 跟 @EnableFeignClients需要一起使用

/**
 * @auther zzyy
 * @create 2020-02-03 12:00
 */
@Component
//添加服务名
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService
{
    //配置服务提供者暴露的接口
    @GetMapping(value = "/payment/get/{id}")
    CommonResult<Payment> getPaymentById(@PathVariable("id") Long id);
}

控制器调用

/**
 * @auther zzyy
 * @create 2020-02-03 14:10
 */
@RestController
public class OrderFeignController
{
    @Resource
    private PaymentFeignService paymentFeignService;

    @GetMapping(value = "/consumer/payment/get/{id}")
    public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id)
    {
        return paymentFeignService.getPaymentById(id);
    }
}

测试

ps:Feign自带负载均衡配置项

二、超时控制

默认openfeign客户端等待时间时1秒,但是服务端处理数据草果1秒,导致openfeign客户端不想等待,就会报错500

由于openfeign底层引入了ribbon 所以我们可以通过控制ribbon来控制超时时间

配置yml

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

测试

三、日志增强

Feign 提供了日志打印功能,我们可以通过配置来调整日志级别,从而了解 Feign 中 Http 请求的细节。
说白了就是对Feign接口的调用情况进行监控和输出

日志级别
 



NONE:默认的,不显示任何日志;


BASIC:仅记录请求方法、URL、响应状态码及执行时间;


HEADERS:除了 BASIC 中定义的信息之外,还有请求和响应的头信息;


FULL:除了 HEADERS 中定义的信息之外,还有请求和响应的正文及元数据。

配置config包

@Configuration
public class FeignConfig
{
    @Bean
    Logger.Level feignLoggerLevel()
    {
        return Logger.Level.FULL;
    }
}
 
 

配置yml开启日志的feign级别

logging:
  level:
    # feign日志以什么级别监控哪个接口
    com.atguigu.springcloud.service.PaymentFeignService: debug
 

日志查看

spark3.x 写入hudi报错 【代码】spark3.x 写入hudi报错。 阅读详情

相关推荐

SPI模式下的SD卡读写,为什么你的数据总出错?详解时序与状态机避坑指南

本文深入探讨SPI模式下SD卡读写数据出错的根本原因,提供时序优化与状态机设计的实战指南。针对时钟周期计数、状态机跳转和忙检测等核心问题,详解命令时序细节、状态机同步策略及高级避坑技巧,帮助开发者提升SD卡在SPI模式下的稳定性和性能。

weixin_30514745的博客 263

spring-cloud-openfeign自定义某接口请求超时时间;所有服务及单个服务超时时间设置

自定义@FeignClient参数configuration类,设置超时时间。

癸酉金鸡的博客 2713

残差检验_第三十讲 R语言-Cox比例风险模型的假设检验条件

在介绍完 Cox比例风险模型的详细理论和R实现以后(插入链接!!!),我们已经知道Cox比例风险模型可以较好的同时矫正多个混杂因素对结果的影响,同时我们遗留下来了一个问题:Cox比例风险模型的假设检验条件是什么?这一讲,我们将对此进行解答。请注意,如果使用不当,统计模型可能会产生误导性的结论。因此,检查给定的模型是否适合数据类型是非常重要的!1. Cox比例风险模型的假设条件Cox比例风险模型的成...

weixin_35476698的博客 8048

openFeign

openFeign

sdl880229的博客 154

ACL访问控制列表详解:原理、配置与应用

如果发现ACL规则没有达到预期效果,需要检查ACL规则配置是否正确,是否在正确的接口和方向上应用,以及规则顺序是否合理(ACL规则按顺序匹配,匹配到即停止)。其中,rule-id是规则的编号,用于确定规则的匹配顺序;例如,应该先配置针对特定主机和特定端口的规则,再配置针对整个网段的规则,最后配置允许所有流量的规则,这样才能确保ACL按照预期工作,避免因规则顺序不当导致的访问控制失效。例如,应该先配置针对特定主机的规则,再配置针对整个网段的规则,最后配置允许所有流量的规则,这样才能确保ACL按照预期工作。

彭大帅的博客 1048

《华为项目管理之道》第1章笔记

performance indicator,KPI)纳入个人绩效承诺书,贯彻结果导向的理念,以向员工。客户需求是华为发展的原动力,为客户服务是华为存在的唯一理由。目经理‘用兵’,依靠市场机制‘调兵’”,打破了人员在功能部门的板结,实现了听得。为管理者选拔的必要条件,项目经理成为人人向往的岗位。《华为项目管理之道》,是新出的华为官方的项目管理书,整个书不错。伴随着项目型组织的建立,华为逐步形成了完备的项目管理流程和制度,从而将业务运。为此,通过改革,重新明确了项目经理承担的经营责任,并开始以项。

jackyrongvip的专栏 2127

如何设置OpenFeign请求超时

Feign集成了Ribbon、RestTemplate实现了负载均衡的执行Http调用,只不过对原有的方式(Ribbon+RestTemplate)进行了封装,开发者不必手动使用RestTemplate调服务,而是定义一个接口,在这个接口中标注一个注解即可完成服务调用,这样更加符合面向接口编程的宗旨,简化了开发。但遗憾的是Feign现在停止迭代了。:OpenFeign是springcloud在Feign的基础上支持了SpringMVC的注解,如等等。OpenFeign的可以解析SpringMVC的。

爱琴孩的博客 8733

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1032

java webservice 注解

此注示用来标明此java类为某个WebService的实现类或者标明此java接口定义了某个WebService的接口。@WebService有六个参数可以用来配置这个WebService的定义: endpointInterface:定义服务抽象 Web Service 协定的服务端点接口的完整名称,如果注解通过 endpointInterface 属性引用了某个 SEI,那么还必须使用@webservice注解来注解该SEI。 name:默认的port名为"实现类名+Port",binding名为"实现类

weixin_52014130的博客 4027

【Frida Android】实战篇4:SSL Pinning 证书绑定绕过 Hook 教程(一)

在前两章中,我们学习了中间人抓包与 Hook 抓包的基础方法,这些方法在理想环境下能够有效获取网络请求数据。但在实际的企业级应用中,出于安全防护需求,很多 APP 会启用证书绑定(SSL Pinning)机制。这种机制会让客户端对服务器证书的校验更为严格,导致常规的抓包方法(即使将 BurpSuite/Charles 证书安装到系统信任区)也无法生效。因此,从本章开始,我们将系统学习 SSL Pinning 机制的绕过技术。SSL Pinning(证书绑定)是客户端校验服务器身份的进阶安全机制。

水滴石穿 1611

Far planner 代码系列(33) 关于real_world_contour和contour_graph

我们知道far planner前部分的流程是这样子的: 对于特定的地图,如下: 我们要从surround_obs_cloud里抽取生成realworld_contour_,如下图所示: 在这时候,每个node的z坐标都是以机器人的高度定的。如图所示: 先去吃饭啦~待会回来在写 ...

博客 763

设置CXF的WebService客户端超时时长

<br />在使用WebService时,我们通常都会在客户端中设置请求超时的限制,以避免长时间的去连接不可用的服务器。在CXF的环境下,客户端可通过两个属性配置超时限制:ConnectionTimeout - WebService以TCP连接为基础,这个属性可以理解为TCP握手时的时间设置,超过设置的时间就认为是连接超时.以毫秒为单位,默认是30000毫秒,即30秒。 ReceiveTimeout - 这个属性是发送WebService的请求后等待响应的时间,超过设置的时长就认为是响应超时.以毫秒为单位,

jacklee_6297的专栏 1万+

【即插即用模块】注意力篇 | MICCAI 2023 | MFE:多尺度特征提取,告别固定感受野,猛涨2个点!

本文提出一种用于低分辨率乳腺癌病理图像超分辨率与分类的网络SHISRCNet。针对现有方法处理低分辨率图像效果差、感受野固定等问题,设计了多特征提取模块(MFE),通过多速率空洞卷积覆盖全尺度感受野(局部到全局),结合递进残差连接和动态权重融合机制,实现自适应多尺度特征增强。实验表明,该模块在超分辨率任务中PSNR提升近2个点,分类准确率显著提高。代码提供详细注释,支持即插即用,适用于各类多尺度视觉任务。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 206

SpringCloud中的OpenFeign的超时控制和日志增强

SpringCloud中的OpenFeign的超时控制和日志增强     为什么要学这个?你不想面试的时候多装两个逼多拿两千块钱? 先回顾一下我们之前OpenFeign的基本使用SpringCloud中的OpenFeign以及与Feign的区别。 我们现在衍生一下,在实际生产环境中,服务提供者可能会出现很多问题,网络环境,数据库交互等,服务提供者返回数据的时间可能会很长。。或者说有一个服务接口,它是一个长流程接口,可能要等待3s,5s甚至更长时间才能返回数据。那么这个时候,我们的服务提供者怎么办呢? 如果服

易柏州的博客 588

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

微服务OpenFeign实战讲解(远程调用、超时控制、日志增强)!!!

文章目录1、OpenFeign概述2、OpenFeign服务调用3、OpenFeign超时控制4、OpenFeign日志增强 1、OpenFeign概述        Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单。它的使用方法是定义一个服务接口然后在上面添加注解。Feign还支持可插拔编码器和解码器。Spring Cloud添加了对Spring MVC注释的支持,并支持使用

Code皮皮虾的博客 2199

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

OpenFeign服务调用

OpenFeign服务调用

人生就像一场戏 1284

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Spring Cloud OpenFeign 声明式服务调用与负载均衡组件

Feign 对 Ribbon 进行了集成,OpenFeign 是 Spring Cloud 对 Feign 的二次封装,具有 Feign 的所有功能并在 Feign 的基础上增加了对 Spring MVC 注解的支持。应用于微服务架构中的服务调用,它可以帮助开发人员简化服务调用,提高开发效率,并提供一些常用的功能来保证服务的可靠性和安全性(通过集成Spring Security)。是 Spring Cloud 下的远程调用和负载均衡组件以实现服务的远程调用和负载均衡。

qq_60972641的博客 3161

SpringCloud微服务之服务调用-OpenFeign的使用

feign,openfeign,springcloud,负载均衡,服务调用

switch的博客 606

【Springcloud】OpenFeign服务调用

【Springcloud】(06)中级搭建-OpenFeign服务调用(1)OpenFeign是什么(1.1)基本介绍(1.2)Feign能干什么?(1.3)Feign集成了Ribbon(2)OpenFeign服务调用(2.1)第一步:创建新的模块,并修改pom(2.2)第二步:创建配置文件yml(2.3)第三步:创建启动类(2.4)第四步:创建service接口,用来连接8001服务的方法(2....

weixin_44823875的博客 1379

SpringCloud-18-OpenFeign超时控制和日志增强

SpringCloud-18-OpenFeign超时控制和日志增强

时光 1094

【SpringCloud笔记】(6)服务调用之OpenFeign

是一个声明式的Web服务客户端,让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可

jinx 1156

OpenFeign:Spring Cloud声明式服务调用组件(非常详细)

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程​​​Netflix Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。将其与 Netflix 中的其他开源服务组件(例如 Eureka、Ribbon 以及 Hystrix 等)一起整合进Cloud Netflix 模块中,整合后全称为 Spring Cloud Netflix Feign。Feign 对。

了解➔熟悉➔掌握➔精通 1407

SpringClound——Feign和OpenFeign区别和OpenFeign的使用

Feign和OpenFeign的主要区别如下图 那我们怎么使用OpenFeign呢? 文章目录1:OpenFeign服务调用2:OpenFeign超时控制3:OpenFeign日志增强 1:OpenFeign服务调用 pom.xml <!-- OpenFeign --> <dependency> <groupId>org...

qq_44891295的博客 4519

微服务(七)——OpenFeign服务调用

Feign能干什么Feign旨在服务调用时,使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口......

不愿意做鱼的小鲸鱼の博客 1392

Spring cloud入门-10:服务调用-OpenFeign&feign超时控制&feign日志增强

Spring cloud入门-10:服务调用-OpenFeign1、OpenFeign简介1.1 what is OpenFeign?2.2 what can OpenFeign do ?2、OpenFeign使用2.1 建module2.2 改pom2.3 写yml2.4 主启动2.5 业务类2.6 测试 1、OpenFeign简介 1.1 what is OpenFeign?   访问OpenFeign的github的官方地址:https://github.com/spring-cloud/spring

xueping_wu的博客 663

Feign入门使用 OpenFeign 日志增强 超时控制

Feign是一个声明式的web服务的客户端,Feign就是参考Ribbon添加了注解+接口的绑定器。关于使用就是在接口添加特定注解就可以了。

Janyi_的博客 987
上一篇: springcloud (十) 服务注册中心小结 eureak zookeeper consul 异同点
下一篇: springcloud(十二) Hystrix 工作流程以及服务监控
浮云且风吟
博客等级 码龄9年 48粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值