spring cloud gateway客户端websocket断开连接,服务侧连接没有关闭的问题处理

之前在单体架构项目中使用了websocket主动推送消息的功能,后来改成了微服务架构,结果发现部分消息丢失,没能推送给客户端;深入排查发现服务端无法感知websocket连接状态,但是在单体架构里面是没这个问题的,后来发现是网关在处理客户端主动断开的情况时发生了异常。

查阅资料发现是spring gateway的bug,并且相关issue在2023年4月已经关闭,于是根据时间节点,找到了4月之后的一个版本(3.1.8)的spring-cloud-gateway-server替换了原来的依赖,重新打包测试发现问题解决,特此记录。

个人使用的spring cloud alibaba 2021.0.6.0版本,对应Spring Cloud 2021.0.5版本。

关键pom修改如下:

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
    <!-- 排除旧版本 -->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gateway-server</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<!-- 引入新版本 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gateway-server</artifactId>
    <version>3.1.8</version>
</dependency>

多说一句:

软件是在不断的迭代优化的,如果条件允许尽量跟上稳定发布版本。

相关推荐
Thomas.Sir7 小时前
第12课:Nacos 配置加密、版本回溯、配置监听 & 生产风控方案
spring cloud·nacos
web打印社区15 小时前
JS 静默打印怎么做:纯前端为什么不行,以及最小可跑通写法
开发语言·前端·javascript·websocket·网络协议·http·pdf
贾斯汀frank16 小时前
Spring Boot + K8s + Istio 与 Spring Cloud:微服务治理能力对比
spring cloud·微服务·istio
小白的码BUG之路16 小时前
Docker -- 构建ruoyi-gateway镜像
docker·容器·gateway
wangbing112517 小时前
开发指南147-WebSocket-前端
前端·websocket·网络协议
Thomas.Sir1 天前
第11课:Nacos 多环境、多服务配置隔离 & 配置优先级详解
spring cloud·微服务·nacos
hasty2 天前
一次 WebSocket 握手为何能终止进程?Undici CVE-2026-19534 的异常边界
网络·websocket·网络协议
蒸鱼Yuzheng3 天前
自动化 Socket 协议设计:消息序列、心跳、幂等重试与背压
自动化测试·python·websocket·socket·分布式系统
Thomas.Sir3 天前
第8课:Nacos健康检测、权重配置、环境隔离实战
spring cloud·微服务
SL_staff4 天前
JVS-Rules vs Drools:金融风控团队为何转向业务可编辑的决策平台
java·spring cloud·github