SpringCloud gateway自定义请求的 httpClient

本文为博主原创,转载请注明出处:

引用 的 spring cloud gateway 的版本为 2.2.5 ;

SpringCloud gateway 在实现服务路由并请求的具体过程是在 org.springframework.cloud.gateway.filter.NettyRoutingFilter 的过滤器中,该过滤器封装了具体的请求参数,以及根据路由规则请求的对应服务,然后根据 HttpClient 进行微服务之间的请求; 该 httpClient 类是 用netty 封装的 客户端,其包路径为 : reactor.netty.http.client.HttpClient ;

查看 NettyRoutingFilter 中的 filter 实现过程:

该方法中 有一个 getHttpClient 方法获取 httpClient 客户端实例的过程,由于在 GatewayAutoConfiguration 中 定义了 springCloud gateway 使用的 httpclient 实例,其声明并自动加载的代码如下:

上面 代码中的 gatewayHttpClient 为 spring cloud gateway 使用的 HttpClient 实例,在spring cloud gateway 进行服务请求时,会自动配置使用该 实例。

如果需要自定义的 HttpClient 实例,如在 httpClient 中自定义 ip 白名单校验,https 请求证书预置,或是添加特殊认证请求头等,这种场景下需要在代码中显示的定义 gatewayHttpClient 实例,代码如下:

这样服务在启动的时候就会优先加载自定的 httpClient 实例。

Original: https://www.cnblogs.com/zjdxr-up/p/16530423.html
Author: 香吧香
Title: SpringCloud gateway自定义请求的 httpClient

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541350/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CentOS 7替换默认软件源

    安装CentOS 7后,默认源在国外,可以替换为国内的源以提升访问速度 参考https://mirrors.ustc.edu.cn/help/centos.html sudo vi…

    Java 2023年6月13日
    068
  • SQL优化之Oracle函数索引

    SQL查询条件使用函数优化 背景: 由于数据原因表关联只能使用函数对数据进行分隔 select B.* from TABLE_A A cross join TABLE_B B wh…

    Java 2023年6月5日
    0108
  • java网络编程(TCP详解)

    网络编程详解-TCP 一,TCP协议的特点面向连接的协议(有发送端就一定要有接收端) 通过三次连接握手建立连接 通过四次握手断开连接 基于IO流传输数据 传输数据大小没有限制 速度…

    Java 2023年6月8日
    0170
  • 2022-8-27 vue 第一天

    什么是vue? Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建…

    Java 2023年6月13日
    091
  • 探究MySQL中SQL查询的成本

    成本 什么是成本,即SQL进行查询的花费的时间成本,包含IO成本和CPU成本。 IO成本:即将数据页从硬盘中读取到内存中的读取时间成本。通常1页就是1.0的成本。 CPU成本:即是…

    Java 2023年6月16日
    079
  • Java-驼峰命名与下划线命名互转

    package com.xsh.util; /** * String工具类 * * @author xieshua…

    Java 2023年6月5日
    091
  • 回溯法:数组总和III

    题目 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:只使用数字1到9每个数字 最多使用一次返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任…

    Java 2023年6月8日
    095
  • HBase为什么查询快

    HBase为什么可以实现毫秒级查询? 大数据量的快速查询 HBase的region经过负载均衡,region相对均匀,每次只需要通过zk找到meta表,进而连接到所需的region…

    Java 2023年6月8日
    094
  • 用户交互Scanner(Java)

    基本介绍 1.next() 一定要读取到有效字符后才可以结束输入 对输入有效字符之前遇到的空白,next()方法会自动将其去掉 只有输入有效字符后才将其后面的空白作为分隔符或者结束…

    Java 2023年6月9日
    068
  • SpringCloud服务间调用

    SpringCloud服务间的调用有两种方式:RestTemplate和FeignClient。不管是什么方式,他都是通过REST接口调用服务的http接口,参数和结果默认都是通过…

    Java 2023年5月30日
    073
  • 搬砖_kafka的一些命令

    有关kafka的一些命令 kafka查看当前消费组消费到哪个offset cd /opt/kafka/bin #即进&#x516…

    Java 2023年6月7日
    0105
  • java 驼峰字符和下划线字符相互转换工具类

    public static final char UNDERLINE=’_’; public static String camelToUnderline(String param…

    Java 2023年5月29日
    080
  • [spring]spring注入属性值的两种方式以及作用域

    4.IOC创建对象的过程 使用无参构造创造 设定为有参后,就会报错! 对象在被注册进去的时候,就被实例化了,直接使用就好。 5.IO注入 (1)前面的构造器注入 (2)set注入 …

    Java 2023年6月6日
    069
  • MySQL性能优化方法和实践

    前置准备 硬件优化 查询缓存 查询缓存不命中的情况 查询缓存的代价 表结构设计 数据类型 整数类型 实数类型 字符串类型 (**)BLOB和TEXT —— 存储大的数据 DATET…

    Java 2023年6月9日
    0106
  • ZendFramework学习第二章(Json)

    使用Zendframework中的Zend_Json组件可以实现PHP对象与JSON对象之间的转换。 json是一种轻量级的数据交换格式。 轻量级: 1.这种格式不需要特定的容器。…

    Java 2023年5月29日
    097
  • Web开发静态资源处理

    Web开发静态资源处理 7.1 静态资源处理 我们要引入前端资源,项目中有许多的静态资源,比如css,js等文件,这个SpringBoot是怎么处理呢? 如果我们是一个web应用,…

    Java 2023年6月5日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球