监测
当您使用@EnableWebSocketMessageBroker
或<websocket:message-broker>
钥匙
基础设施组件自动收集统计数据和计数器,这些统计数据和计数器提供
对应用程序内部状态的重要见解。配置
还声明了WebSocketMessageBrokerStats
那会聚集所有
available information 放在一个位置,默认情况下将其记录在INFO
级别一次
每 30 分钟一班。这个 bean 可以通过 Spring 的MBeanExporter
以便在运行时查看(例如,通过 JDK 的jconsole
).
以下列表总结了可用信息:
- 客户端 WebSocket 会话
-
- 当前
-
指示有多少个客户端会话 目前,计数进一步按 WebSocket 与 HTTP 细分 流式传输和轮询 Sockjs 会话。
- 总
-
指示已建立的会话总数。
- 异常闭合
-
- 连接失败
-
已建立但 在 60 秒内未收到任何消息后关闭。这是 通常表示代理或网络问题。
- 超出发送限制
-
会话在超过配置的发送后关闭 timeout 或 send buffer 限制(可能发生在慢速客户端) (请参阅上一节)。
- 传输错误
-
会话在传输错误后关闭,例如 无法读取或写入 WebSocket 连接,或者 HTTP 请求或响应。
- STOMP 框架
-
CONNECT、CONNECTED 和 DISCONNECT 帧的总数 processed,指示在 STOMP 级别连接的客户端数。请注意, 当会话异常关闭或 客户端关闭而不发送 DISCONNECT 帧。
- STOMP 代理中继
-
- TCP 连接
-
指示代表客户端的 TCP 连接数 为代理建立 WebSocket 会话。这应该等于 客户端 WebSocket 会话数 + 1 个额外的共享“系统”连接 用于从应用程序内发送消息。
- STOMP 框架
-
CONNECT、CONNECTED 和 DISCONNECT 帧的总数 转发给经纪人或从经纪人代表客户接收。请注意, DISCONNECT 帧将发送到代理,而不管客户端 WebSocket 如何 会话已关闭。因此,DISCONNECT 帧数较低 代理正在主动关闭连接(可能是由于 检测信号未及时到达、输入帧无效或其他问题)。
- 客户端入站通道
-
来自支持
clientInboundChannel
,从而深入了解传入消息处理的运行状况。任务排队 此处指示应用程序可能太慢,无法处理消息。 如果存在 I/O 绑定任务(例如,数据库查询速度慢、对第三方的 HTTP 请求 REST API 等),请考虑增加线程池大小。 - 客户端出站通道
-
来自支持
clientOutboundChannel
这提供了对向客户端广播消息的运行状况的见解。任务 此处排队表示客户端使用消息的速度太慢。 解决此问题的一种方法是增加线程池大小以容纳 预期的并发慢速客户端数。另一种选择是将 发送超时和发送缓冲区大小限制(请参阅上一节)。 - Sockjs 任务调度程序
-
来自 Sockjs 任务调度程序线程池的统计信息 用于发送检测信号。请注意,当在 STOMP 级别,则禁用 SockJS 心跳。