草庐IT

websocket服务端大报文发送连接自动断开分析

概述当前springboot版本:2.7.4使用依赖dependency>groupId>org.springframework.bootgroupId>artifactId>spring-boot-starter-websocketartifactId>dependency>现象概述:客户端和服务端已经有心跳连接正常ping,pong.服务端发送大报文给客户端时,当经过心跳间隔,chrome(客户端)中提示websocket连接已被关闭。此时打开chrome的network查看ws报文发送情况,发现服务端并没有推送报文过来。这个时候就怀疑是服务端在某个异常情况下关闭了连接排查经过先查看web

万字好文:大报文问题实战

导读大报文问题,在京东物流内较少出现,但每次出现往往是大事故,甚至导致上下游多个系统故障。大报文的背后,是不同商家业务体量不同,特别是B端业务的采购及销售出库单,一些头部商家对京东系统支持业务复杂度及容量能力的要求越来越高。因此我们有必要把这个问题重视起来,从组织上根本上解决。1认识大报文问题大报文问题,是指不同的系统通过网络进行数据交互时payloadsize过大导致的系统可用性下降问题。对于大报文的产生方,过大的报文在序列化时消耗更多内存和CPU,在传输时(JSF/MQ)可能超过中间件的大小限制导致传输失败;对于大报文的消费方,过大的报文在反序列化时会产生大对象,消耗更多的内存和CPU,容