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

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

查阅资料发现是spring gatewaybug,并且相关issue2023年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>

多说一句:

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

相关推荐
NGC_661115 小时前
webSocket和Socket辨析
websocket
Andy工程师17 小时前
WebSocket介绍
websocket·网络协议
小江的记录本18 小时前
【Spring Boot—— .yml(YAML)】Spring Boot中.yml文件的基础语法、高级特性、实践技巧
xml·java·spring boot·后端·spring·spring cloud·架构
shamalee21 小时前
Nginx反向代理出现502 Bad Gateway问题的解决方案
运维·nginx·gateway
xiaolingting21 小时前
Gateway 网关流控与限流架构指南
spring cloud·架构·gateway·sentinel
唯一世1 天前
Open Feign最佳实践
java·spring cloud
不会写DN1 天前
如何使用WebSocket实现一个公域聊天室?
websocket·网络协议·iphone
无级程序员1 天前
k8s v1.35配置gateway, istio通过metalb vip访问
kubernetes·gateway·istio
Don.TIk1 天前
SpringCloud学习笔记
笔记·学习·spring cloud
z_鑫1 天前
SpringCloud FeignClient 中 Bean 重复注册冲突解决方案解析
java·spring boot·spring cloud