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/612337/

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

(0)

大家都在看

  • 逆波兰表达式

    运用lambda表达式和包装器 150. 逆波兰表达式求值 – 力扣(LeetCode) class Solution { public: int evalRPN(ve…

    Linux 2023年6月13日
    0106
  • MySQL日志管理之事务日志和错误日志

    MySQL的日志是用来记录用户的相关操作、系统的运行状态等信息的文件结合。 事务日志就是mysql执行事务过程中产生的日志。 redo log:基于WAl机制在数据更改前先把对应操…

    Linux 2023年6月7日
    081
  • Linux 命令行设置网络代理

    echo $SHELL/usr/bin/zsh 根据当前的shell类型来设置,我这里以zsh为例,vim ~/.zshrc export ALL_PROXY=”htt…

    Linux 2023年6月6日
    0181
  • Arthas-开源的java诊断工具,非常有用

    常用命令 help 查看帮助 help COMMAND 查看指定&#…

    Linux 2023年6月13日
    0128
  • C语言课堂–现代编译环境搭建[2020年7月]

    看过了很多专家吐槽目前的大学c语言教学问题多多: 教材难懂,消磨了学生的兴趣; 环境老旧,都2020了还有在用VC6甚至TurboC 2.0,语法不规范。 轮到自己上课,心想可不能…

    Linux 2023年6月7日
    096
  • python学习

    目录: 1、课程推荐以及书籍推荐 2、学习记录 2.1:无 1. 实践过程 廖雪峰的官方网站 2. 学习记录 2.1 无: posted @2022-02-12 19:44 风御之…

    Linux 2023年6月13日
    086
  • 自动升级shell

    make_version.sh ./make_version.sh 第一次提示”y/N” 表示接下来的操作是手动(y)还是自动(N); 自动(N)会为镜像自…

    Linux 2023年5月28日
    095
  • Guava 内存缓存的使用

    一、概述 guava⽬前有三种刷新本地缓存的机制: expireAfterAccess:当缓存项在指定的时间段内没有被读或写就会被回收。 expireAfterWrite:当缓存项…

    Linux 2023年6月16日
    0106
  • linux自动备份mysql数据库

    备份脚本记录一下–(单个数据库) 2021-11-15 1.新建shell脚本:vim **.sh #!/bin/bashCKUP=/data/backup/db #获…

    Linux 2023年5月27日
    0103
  • 【Example】C++ std::thread 及 std::mutex

    与 Unix 下的 thread 不同的是,C++ 标准库当中的 std::thread 功能更加简单,可以支持跨平台特性。 因此在项目需要跨平台及对多线程简单应用情况下,应优先考…

    Linux 2023年6月13日
    060
  • 海思3559 FFMPEG移植

    具体参考下面这篇帖子http://bbs.ebaina.com/forum.php?mod=viewthread&tid=79863&pid=156755&…

    Linux 2023年6月13日
    080
  • vue动画效果和vue组件——day03

    <div id="app"><br> <input type="button" value="&am…

    Linux 2023年6月7日
    078
  • PTA 《基础编程题目集》 6-6 求单链表结点的阶乘和

    本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。 函数接口定义: int FactorialSum( List L ); 其中…

    Linux 2023年6月8日
    0127
  • 树莓派4B串口测试与开发

    树莓派4B的串口,由两个增加4个,一共6个! 情况一: 缺省镜像中的配置,测试发现只启用了2个:pi@raspi4b:~ $ ls -l /dev/serial*lrwxrwxrw…

    Linux 2023年6月7日
    072
  • Linux显示IP和主机名

    (1) ifconfig:Linux ifconfig命令用于显示或设置网络设备。 语法: ifconfig [网络设备][down up -allmulti -arp -prom…

    Linux 2023年6月8日
    099
  • 华为云服务器数据库配置远程连接

    华为云服务器数据库配置远程连接 起因 暑期购买了华为云的一台服务器进行开发 在上面部署了MySQL数据库,由于app中修改用户信息存在未修复的bug,经常会出现登录密码为空,导致账…

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