我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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网关怎么修改为短连接”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

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

Spring Cloud中的API网关服务Zuul怎么配置

这篇文章主要讲解了“Spring Cloud中的API网关服务Zuul怎么配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Cloud中的API网关服务Zuul怎么配置”吧!构
2023-06-19

Win10怎么修改网络连接的名称? win10重命名网络连接的教程

在Win10中,用户表面上不能自行修改网络连接的名称,只能用系统指派的默认名称。如果当前电脑上网络连接少,比如就一个有线或者无线WiFi连接,用它默认的也无所谓;但如果连接较多,比如某些专业人员需要把电脑拿着各处走,各处联网,那么这些指派的
2023-05-21

华为云服务器关闭后怎么开启网络连接

如果华为云服务器关闭后仍然能够使用网络连接,您可以尝试以下步骤:检查网络设置:检查华为云服务器的网络设置,确保所有用户都在同一个WiFi网络中。查看其他设备连接:如果其他设备可以连接到华为云服务器,您可以尝试在设备中查看并添加网络连接。启用华为云服务器:进入华为云服务器的控制台,点击“设置”菜单,选择“网络设置”。在“网络连接”页面中,选择您要启用的本地网络或云上网络。重置云服务器配置
2023-10-26

怎么在电脑中修改本地连接MTU值提高网速

这篇文章主要介绍怎么在电脑中修改本地连接MTU值提高网速,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是MTU值?其实就是一种通信协议的某一层上面所能通过的最大数据包大小,它对网速有极大的影响。当网页打开较慢时,
2023-06-27

华为云服务器关闭后怎么开启网络连接权限

如果华为云服务器关闭了网络连接,您可以尝试以下步骤来开启网络连接权限:登录华为云服务器。在控制台(Controller)界面下,您可以通过左侧导航栏中的“文件系统”、“网络”、“安全”等选项,来查看华为云服务器的网络设置。在“网络设置”页面中,可以看到华为云服务器当前的网络类型、IP地址等信息。在“网络设置”页面中,选择“启用无线连接”选项,并在“启用
2023-10-26

华为云服务器关机了怎么开启不了网络连接

华为云服务器是一款非常强大的云计算平台,可以为用户提供高性能、稳定性和安全性等方面的支持,但如果关机了怎么办呢?下面是一些方法来重新启动云服务器:检查硬件问题:首先需要检查云服务器的硬件是否出现故障,比如电源、硬盘等。如果有任何问题,可以考虑重新启动云服务器,以确保服务器能够正常运行。检查操作系统和应用程序:云服务器的
华为云服务器关机了怎么开启不了网络连接
2023-10-28

华为云服务器关闭后怎么开启网络连接功能

如果华为云服务器关闭了网络连接功能,需要重新开启网络连接功能。以下是具体的步骤:打开华为云服务器管理页面,输入云服务器账号和密码,然后点击“登录”按钮。在登录界面,点击“服务器”选项卡,然后选择“重新启动”,或者点击“重新启动”以关闭服务器,然后再选择其他网络连接。如果你使用的是公共云,可以在“设置”“网络连接”“网络连接设置”中,查看是否
2023-10-26

华为云服务器关闭后怎么开启网络连接功能呢

华为云服务器关闭后,用户仍然可以使用网络连接功能来连接到服务器,但是需要满足以下条件之一:华为云服务器连接到网络,可以通过网络拨号进行连接。拨号成功后,用户可以通过在终端中运行华为云服务器的客户端来连接服务器。如果用户已经开启了华为云服务器的连接功能,需要重新启动华为云服务器才能进行连接。用户需要将华为云服务器的连接方式从拨号改为VPN连接。华为云服务器关闭后,用户需要重新设置云服务器的网络安全,以便能够...
2023-10-26

华为云服务器关闭后怎么开启网络连接权限管理

华为云服务器关闭后,你需要检查你的网络连接权限管理是否正常。以下是一些可能需要考虑的步骤:检查网络连接:你需要确保华为云服务器的网络连接正常。你可以检查网络连接设置中的IP、子网掩码、网关等参数。开启网络连接:如果网络连接正常,但你需要登录或使用华为云服务时,你可能需要打开网络连接权限管理。在华为云服务的控制台界面中,进入“网络和共享中心”,然后查看“网络连接”部分的网络连接,包括IP、子网掩码、网关等参数...
2023-10-26

华为云服务器关闭后怎么开启网络连接功能设置

华为云服务器关闭后,你需要进入华为云官网,在官网首页点击“服务与支持中心”,进入服务与支持中心页面。在该页面中找到“华为云服务”并点击进入。在“华为云服务”页面中,找到“服务器设置”,进入服务器设置页面。在服务器设置页面,你可以看到华为云服务器的网络设置。具体来说,在网络设置页面,你可以更改你的网络连接配置。你可以选择连接到Internet还是仅限VPN连接。如果你使用VPN服务,你还可以勾选允许VPN连接。不
2023-10-26

华为云服务器关机了怎么开启不了网络连接功能

首先,在服务器上运行以下命令来重启服务器:sudodisablestartup执行后,系统将会自动重启。如果重启服务器后问题仍然存在,可能是由于您的电脑配置不足或云服务器中的某些应用程序需要更高的处理能力,这可能会导致服务器无法正常启动。因此,建议您检查云服务器的配置文件以确保其足够高效。如果您无法解决问题,可以考虑联
2023-10-27

华为云服务器关闭后怎么开启网络连接权限设置

华为云服务器关闭后,你需要检查你的网络连接设置,以便能够重新加载网络连接并允许访问华为云服务器的用户访问。以下是具体步骤:检查华为云服务器的网络设置。你可以从华为云服务器的控制台菜单或在华为云服务器官网上查找相关指南。确保华为云服务器提供了正确的配置选项,如IP地址范围和TCP/IP连接数限制等。重新加载华为云服务器的网络连接设置。在重新加载网络连接设置后,你需要等待数秒钟或更长时间,以确保它仍在使用。重...
2023-10-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录