Java 在websocket上跺脚的延迟
我使用SpringMVC4+Tomcat。我的应用程序有两个类(A和B)和@Autowired SimpMessageTemplate。每个类都有一个调用“convertAndSend”的线程 类发送一条消息,该消息由8个双字段和3个长字段组成。它向大约500个主题发送消息,如“/topic/prices.X”(其中X-一些随机字符串)。频率-在单个循环中每秒最多4次(针对每个主题) 类B发送的消息由8个双字段、4个长字段和4个字符串字段组成。它将消息发送到单个主题,如“/topic/dmaEvents”。频率-每秒几次(最多可达20次) 对于我的应用程序,保留消息顺序非常重要,因此我应用了下面介绍的解决方案: 我们有大约10-20个客户端同时连接并订阅所有主题。客户端应用程序-.Net一个使用“websocket sharp”库和STOMP协议的自定义实现的应用程序。服务器在纽约,客户端在芝加哥和伦敦 在我们的UAT环境中,一切正常,但在prod one中,用户抱怨以下问题:Java 在websocket上跺脚的延迟,java,spring,websocket,stomp,Java,Spring,Websocket,Stomp,我使用SpringMVC4+Tomcat。我的应用程序有两个类(A和B)和@Autowired SimpMessageTemplate。每个类都有一个调用“convertAndSend”的线程 类发送一条消息,该消息由8个双字段和3个长字段组成。它向大约500个主题发送消息,如“/topic/prices.X”(其中X-一些随机字符串)。频率-在单个循环中每秒最多4次(针对每个主题) 类B发送的消息由8个双字段、4个长字段和4个字符串字段组成。它将消息发送到单个主题,如“/topic/dmaEv
- 在某些情况下,来自B类的消息以大约30-40秒的延迟传送到客户端。同时,来自A类的消息将毫不延迟地发送。当以最大频率(每个主题每秒4次=每秒2000条消息)发送来自A类的消息时,会发生这种情况。当频率降低时,延迟消失
- message1->/topic/prices.A
- message2->/topic/prices.B
- message3->/topic/dmaEvents
- message4->/topic/prices.C
- message5->/topic/prices.D
- message1->/topic/prices.A
- message2->/topic/prices.B
- message4->/topic/prices.C
- message5->/topic/prices.D
- message3->/topic/dmaEvents
谢谢。我也遇到了类似的问题,STOMP消息的传递停滞/缓慢,这是由春季使用的反应堆库引起的 将其更新为更高版本为我修复了它:
runtime("io.projectreactor:reactor-core:2.0.6.RELEASE")
runtime("io.projectreactor:reactor-net:2.0.6.RELEASE")
runtime("io.netty:netty-all:4.0.33.Final")
runtime("io.projectreactor:reactor-core:2.0.6.RELEASE")
runtime("io.projectreactor:reactor-net:2.0.6.RELEASE")
runtime("io.netty:netty-all:4.0.33.Final")