返回顶部
首页 > 资讯 > 精选 >Spring Cloud Zuul网关怎么修改为短连接
  • 900
分享到

Spring Cloud Zuul网关怎么修改为短连接

2023-06-30 04:06:52 900人浏览 安东尼
摘要

今天小编给大家分享一下spring Cloud Zuul网关怎么修改为短连接的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们

今天小编给大家分享一下spring Cloud Zuul网关怎么修改为短连接的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、问题分析

之前在用zuul网关的时候,请求几次然后连接就断开了。原因是因为Http1.1之后,默认走的都是connection=keep-alive 长连接。但没有心跳维持,顾1分钟断开一次。但RestFul一般都是走短连接就行了。因此想着只要修改头部connection属性就行了.

就是在过滤器中修改Zuul的RequestContext ctx对象

        //设置请求为短连接        ctx.addZuulRequestHeader("connection", "close");

再次请求之后发现

Spring Cloud Zuul网关怎么修改为短连接

纳尼,怎么还是长连接。那么说明可能是我的设置没有生效或者被覆盖掉了。遇到问题,除了度娘,跟着源码走一遭也是最好的方式。花了大半天时间,终于让我找到原因了。

原因是代理类ProxyRequestHelper里面有段逻辑。

public boolean isIncludedHeader(String headerName) {String name = headerName.toLowerCase();RequestContext ctx = RequestContext.getCurrentContext();if (ctx.containsKey(IGNORED_HEADERS)) {Object object = ctx.get(IGNORED_HEADERS);if (object instanceof Collection && ((Collection<?>) object).contains(name)) {return false;}}switch (name) {case "host":if(addHostHeader) {return true;}case "connection":case "content-length":case "server":case "transfer-encoding":case "x-application-context":return false;default:return true;}}

如果头部存在"connection": "content-length": "server": "transfer-encoding": "x-application-context"这些头的话都被跳过。不会被设置成功。应该是zuul自己的一个机制把。

二、解决方式

那么问题找到了,该怎么修改呢?那么只能自定义路由了。继承并重写这个类。

实现自定义路由配置CustomZuulConfig

@Componentpublic class CustomZuulConfig {    @Autowired    ZuulProperties zuulProperties;    @Value("${servletPath}")    private String servletPath;    @Bean    public CustomRouteLocator routeLocator() {        CustomRouteLocator routeLocator = new CustomRouteLocator(servletPath, this.zuulProperties);        return routeLocator;    }}

实现自定义请求代理工具类 重写isIncludedHeader方法。

public class CustomRequestHelper extends ProxyRequestHelper {    @Override    public boolean isIncludedHeader(String headerName) {        String name = headerName.toLowerCase();        RequestContext ctx = RequestContext.getCurrentContext();        if (ctx.containsKey(IGNORED_HEADERS)) {            Object object = ctx.get(IGNORED_HEADERS);            if (object instanceof Collection && ((Collection<?>)object).contains(name)) {                return false;            }        }        switch (name) {            case "content-length":            case "host":            case "server":            case "transfer-encoding":            case "x-application-context":                return false;            default:                return true;        }    }}

重写实现代理配置类

@Configuration@EnableZuulProxypublic class CustomZuulProxyConfig extends ZuulProxyAutoConfiguration {    @Bean    @Override    public SimpleHostRoutingFilter simpleHostRoutingFilter(ProxyRequestHelper helper, ZuulProperties zuulProperties,            ApacheHttpClientConnectionManagerFactory connectionManagerFactory,            ApacheHttpClientFactory httpClientFactory) {        CustomRequestHelper customRequestHelper = new CustomRequestHelper();        return new SimpleHostRoutingFilter(customRequestHelper, zuulProperties, connectionManagerFactory,                httpClientFactory);    }}

然后重新启动,查看请求头。

Spring Cloud Zuul网关怎么修改为短连接

以上就是“Spring Cloud Zuul网关怎么修改为短连接”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

--结束END--

本文标题: Spring Cloud Zuul网关怎么修改为短连接

本文链接: https://lsjlt.com/news/327359.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Spring Cloud Zuul网关怎么修改为短连接
    今天小编给大家分享一下Spring Cloud Zuul网关怎么修改为短连接的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2023-06-30
  • 详解SpringCloudZuul网关修改为短连接方法
    目录一、问题分析二、解决方式一、问题分析 之前在用zuul网关的时候,请求几次然后连接就断开了。原因是因为http1.1之后,默认走的都是connection=keep-alive ...
    99+
    2024-04-02
  • Spring Cloud Gateway如何替代zuul作为API网关
    这篇文章主要介绍“Spring Cloud Gateway如何替代zuul作为API网关”,在日常操作中,相信很多人在Spring Cloud Gateway如何替代zuul作为API网关问题上存在疑...
    99+
    2023-07-05
  • Spring Cloud中的API网关服务Zuul怎么配置
    这篇文章主要讲解了“Spring Cloud中的API网关服务Zuul怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud中的API网关服务Zuul怎么配置”吧!构...
    99+
    2023-06-19
  • Spring Cloud Gateway怎么修改HTTP响应信息
    这篇文章主要讲解了“Spring Cloud Gateway怎么修改HTTP响应信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud Gateway怎么修改HTTP响应...
    99+
    2023-06-20
  • Spring Cloud gateway网关怎么拦截Post请求日志
    本篇内容主要讲解“Spring Cloud gateway网关怎么拦截Post请求日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Cloud gateway网关怎么拦截Post请...
    99+
    2023-06-20
  • redis连接数怎么修改
    修改redis连接数可通过修改配置文件中的maxclients参数实现,具体步骤包括:定位配置文件:通常位于/etc/redis/redis.conf查找maxclients参数修改参数...
    99+
    2024-06-03
    linux redis
  • oracle怎么修改连接池最大连接数
    要修改Oracle连接池的最大连接数,您需要使用以下步骤: 登录到Oracle数据库的管理工具(如SQL*Plus或SQL De...
    99+
    2024-04-09
    oracle
  • navicat怎么修改连接名称
    要修改 navicat 中的连接名称,请依次执行以下步骤:右键单击要修改名称的连接,选择“连接属性”。在“连接属性”窗口中,清除“名称”字段中的现有名称并输入新名称。单击“确定”按钮保存...
    99+
    2024-04-24
    navicat
  • Win10怎么修改网络连接的名称? win10重命名网络连接的教程
    在Win10中,用户表面上不能自行修改网络连接的名称,只能用系统指派的默认名称。如果当前电脑上网络连接少,比如就一个有线或者无线WiFi连接,用它默认的也无所谓;但如果连接较多,比如某些专业人员需要把电脑拿着各处走,各处...
    99+
    2023-05-21
    Win10 网络
  • weblogic怎么修改数据库连接
    要修改WebLogic中的数据库连接,需要进行以下步骤:1. 打开WebLogic控制台。可以通过访问`http://localho...
    99+
    2023-08-31
    weblogic 数据库
  • oracle怎么修改dblink连接信息
    要修改Oracle中的DBLink连接信息,您可以使用以下步骤: 首先,您需要在Oracle数据库中登录到具有适当权限的用户账户...
    99+
    2024-04-09
    oracle
  • redis最大连接数怎么修改
    要修改Redis的最大连接数,可以通过修改Redis配置文件中的maxclients参数来实现。在Redis配置文件中找到maxcl...
    99+
    2024-04-09
    redis
  • oracle怎么修改最大连接数
    要修改Oracle数据库的最大连接数,可以通过修改数据库的参数文件来实现。 首先登录到数据库服务器上,然后使用管理员权限登录到O...
    99+
    2024-05-09
    oracle
  • 怎么修改mysql最大连接数
    要修改MySQL的最大连接数,可以通过以下步骤进行: 登录到MySQL服务器上,可以使用命令行工具或者其他MySQL客户端工具。...
    99+
    2024-04-24
    mysql
  • centos怎么配置网卡修改ip地址和修改网关
    这篇文章主要介绍“centos怎么配置网卡修改ip地址和修改网关”,在日常操作中,相信很多人在centos怎么配置网卡修改ip地址和修改网关问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”centos怎么配置网...
    99+
    2023-06-10
  • 怎么修改postgresl的最大连接数
    修改postgresl最大连接数的方法:1.进入postgresl安装目录;2.在目录中查找postgresql.conf文件;3.使用记事本打开文件;4.对文件进行修改;5.重启postgresl;具体步骤如下:首先,在计算机中进入pos...
    99+
    2024-04-02
  • 怎么修改apache 2最大连接数
    这篇文章主要介绍“怎么修改apache 2最大连接数”,在日常操作中,相信很多人在怎么修改apache 2最大连接数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么修改apache 2最大连接数”的疑惑有所...
    99+
    2023-06-10
  • oracle怎么修改最大连接数量
    要修改Oracle数据库的最大连接数量,可以通过修改数据库参数来实现。以下是一种常见的方法: 登录到Oracle数据库的SQL*...
    99+
    2024-04-09
    oracle
  • Spring cloud网关gateway进行websocket路由转发规则怎么配置
    这篇“Spring cloud网关gateway进行websocket路由转发规则怎么配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作