【OpenFeign】 请求拦截器
【OpenFeign】 请求拦截器Metadatatitle: 【OpenFeign】 请求拦截器
date: 2023-01-02 19:34
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/组件
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 请求拦截器
【OpenFeign】 请求拦截器在使用Spring Security Oauth2时,通过消息头中的Authorization Bearer toeknXXXX对令牌进行校验,如果失败,是会拒绝访问的。
那么在使用Feign进行调用时,就会出现问题,因为Feign发送请求时,是没有传递认证消息头的。
实现RequestInterceptor,获取原本请求中的认证消息头,然后添加到请求模板中。
@Component
public class Oauth2TokenReq ...
【OpenFeign】 拦截器
【OpenFeign】 拦截器Metadatatitle: 【OpenFeign】 拦截器
date: 2023-01-02 19:33
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/组件
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 拦截器
BasicAuthRequestInterceptorBasicAuthRequestInterceptor翻译过来就是 Basic 认证请求拦截器。
Basic 认证Basic认证是一种较为简单的 HTTP 认证方式,客户端通过明文(Base64 编码格式)传输用户名和密码到服务端进行认证,通常需要配合 HTTPS 来保证信息传输的安全。
比如Security 就支持这种方式,在发送认证请求时,按照以下格式:
// 请求头Authorization 添加Basic 认证信息
Au ...
【OpenFeign】 接口继承特性
【OpenFeign】 接口继承特性Metadatatitle: 【OpenFeign】 接口继承特性
date: 2023-01-02 19:32
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/基础
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 接口继承特性
问题在编写 Feign 接口时,我们需要写注解来声明请求的路径、参数。而在被调用方,这些是已经声明好了的,重复在写一次,很容易出错,而且也有冗余。
Feign 接口继承特性在之前分析加载方法元数据的文档中,有提到在获取方法元数据是也会获取父接口中方法,也就是说父类接口的方法也会被加载为元数据,用于构建请求模板。
那么通过这种方式,我们可以定义好一个接口,让服务提供方实现这个接口,编写业务逻辑,让调用方编写 Feign 接口的时候,直接继承这个就可以了,这样就能 ...
【OpenFeign】 编码器 解码器
【OpenFeign】 编码器 解码器Metadatatitle: 【OpenFeign】 编码器 解码器
date: 2023-01-02 19:31
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/组件
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 编码器 解码器
【OpenFeign】 编码器 解码器在现实世界,编解码的概念就存在了。编码是信息从一种形式或格式转换为另一种形式的过程,解码,是编码的逆过程。在电子计算机、电视、遥控和通讯等方面广泛使用。
在程序中,也是广泛使用了这个概念,比如 Base64 编码解码。
在Feign中,也存在编解码的概念:
Encoder :编码器,作用于请求阶段,将对象编码到请求体中。
Decoder:解码器,作用域响应阶段,解析 HTTP 响应消息。
Encoder 接口Enco ...
【OpenFeign】 Gzip 压缩
【OpenFeign】 Gzip 压缩Metadatatitle: 【OpenFeign】 Gzip 压缩
date: 2023-01-02 19:27
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/功能
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 Gzip 压缩
Gzip 概述gzip 是一种数据格式,采用 deflate 算法压缩数据,是一种流行的文件压缩算法,应用十分广泛,尤其是在 Linux 平台。
当 Gzip 压缩—个纯文本文件时,效果是非常明显的,大约可以减少 70% 以上的文件大小。
在网络数据经过压缩后实际上降低了网络传输的子节数,最明显的好处就是可以加快网页加载的速度。网页加载可以节省流量,改善用户的浏览体验。
HTTP 协议支持压缩说明客户端向服务器发送请求时,如果消息头带有: Accept-En ...
【OpenFeign】 超时配置
【OpenFeign】 超时配置Metadatatitle: 【OpenFeign】 超时配置
date: 2023-01-02 19:25
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/功能
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 超时配置
【OpenFeign】 超时配置在官网入门案例中,有一个客户端的配置文件,这里面就包含了 Ribbion 的常用配置项。
# 同一服务上的最大重试次数(不包括第一次重试))
sample-client.ribbon.MaxAutoRetries=1
# 要重试的下一台服务的最大数量(不包括第一台服务)
sample-client.ribbon.MaxAutoRetriesNextServer=1
# 是否可以重试此客户端的所有操作
sample-client.ribbon ...
【OpenFeign】 日志打印
【OpenFeign】 日志打印Metadatatitle: 【OpenFeign】 日志打印
date: 2023-01-02 19:24
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/功能
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 日志打印
Logger 日志类Feign 可以开启请求响应详细日志打印,方便我们调试程序,在构建客户端、方法执行器的时候,都可以看到设置了日志类及日志级别。
该Logger是 Feign 自己提供的类,该日志类,提供了打印请求日志、响应日志、IO 异常、重试日志等方法。
该类还提供了一个日志级别:
public static enum Level {
// 不输出日志(默认)
NONE,
// 输出请求方法、URL、响应状态码、执行时 ...
【OpenFeign】 重试机制
【OpenFeign】 重试机制Metadatatitle: 【OpenFeign】 重试机制
date: 2023-01-02 19:23
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/功能
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 重试机制
【OpenFeign】 重试机制重试机制: 在发生异常时,重新尝试请求,多次还是失败时,才会抛出异常。
应用场景: 可能由于网络抖动出现第一次调用失败,尝试几次就可以恢复正常。
比如 Spring 提供的声明式的重试类库Spring-Retry。
Feign Core 也提供了自己的重试机制,基于Retryer接口。
Retryer 接口Retryer 接口位于 feign-core包中,声明了一个连续重试方法,及一个从不重试的实例对象。
public interface R ...
【OpenFeign】 功能
【OpenFeign】 功能Metadatatitle: 【OpenFeign】 功能
date: 2023-01-02 19:22
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/微服务
- 细化主题/服务调用
categories:
- OpenFeign
keywords:
- 微服务
- 服务调用
description: 1. 重试机制 2. 日志打印 3. Gzip 压缩 4. 动态代理 5. 超时配置
重试机制undefined
日志打印undefined
Gzip 压缩undefined
超时配置undefined
动态代理undefined
【OpenFeign】 集成 Hystrix 基本工作原理
【OpenFeign】 集成 Hystrix 基本工作原理Metadatatitle: 【OpenFeign】 集成 Hystrix 基本工作原理
date: 2023-01-02 19:16
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/OpenFeign/生态/Hystrix
categories:
- OpenFeign
keywords:
- OpenFeign
description: 【OpenFeign】 集成 Hystrix 基本工作原理
【OpenFeign】 集成 Hystrix 基本工作原理下图显示了通过 Hystrix 向服务提供者发出请求时会发生什么:
以下部分将更详细地解释此流程:
1. 构造一个 HystrixCommand 或 HystrixObservableCommand 对象第一步是构造一个HystrixCommand或HystrixObservableCommand对象来表示对服务提供者发出的 ...