监控: 心跳
Tio-Boot 内置了心跳监控功能,即使是纯 HTTP 项目,也建议开启心跳监控来提高系统稳定性和实时性。
1. 设置心跳时间
首先,需要在配置文件 app.properties
中设置心跳超时时间:
server.beartbeat.timeout=60000
server.beartbeat.timeout
指定了心跳超时时间,单位为毫秒。这个值表示当服务器在规定时间内未接收到来自客户端的心跳包时,将会断开连接。你可以根据业务需求调整此值。
2. 开启心跳监控
接下来,你需要在项目中显式开启心跳监控,并将心跳调试日志打开。可以通过设置 ServerTioConfig
的 debug
参数来输出更多调试信息,帮助你监控连接和消息传递情况。
import com.litongjava.jfinal.aop.annotation.AConfiguration;
import com.litongjava.jfinal.aop.annotation.AInitialization;
import com.litongjava.tio.boot.server.TioBootServer;
import com.litongjava.tio.server.ServerTioConfig;
@AConfiguration
public class TioBootServerConfig {
@Initialization
public void config() {
TioBootServer server = TioBootServer.me();
ServerTioConfig serverTioConfig = server.getServerTioConfig();
// 开启心跳监控调试信息
serverTioConfig.debug = true;
}
}
以上代码通过在 TioBootServerConfig
类中配置心跳监控,确保服务器能够定期检查连接的心跳状态,并输出调试信息。
3. 日志输出示例
启动项目后,心跳监控的日志将会自动输出,内容包含连接数、消息统计、IP 统计等详细信息。以下是一个心跳检查日志示例:
2024-09-08 21:28:20.361 [tio-timer-checkheartbeat-1-tio-boot] WARN c.l.t.s.ServerTioConfig.debugInfo:251 -
tio-boot
├ 当前时间:1725830900356
├ 连接统计
│ ├ 共接受过连接数 :0
│ ├ 当前连接数 :0
│ ├ 异IP连接数 :0
│ └ 关闭过的连接数 :0
├ 消息统计
│ ├ 已处理消息 :0
│ ├ 已接收消息(packet/byte) :0/0
│ ├ 已发送消息(packet/byte) :0/0b
│ ├ 平均每次TCP包接收的字节数 :0.0
│ └ 平均每次TCP包接收的业务包 :0.0
└ IP统计时段
└ 没有设置ip统计时间
├ 节点统计
│ ├ clientNodes :0
│ ├ 所有连接 :0
│ ├ 绑定user数 :0
│ ├ 绑定token数 :0
│ └ 等待同步消息响应 :0
├ 群组
│ └ groupmap:0
└ 拉黑IP
2024-09-08 21:28:20.362 [tio-timer-checkheartbeat-1-tio-boot] WARN c.l.t.s.ServerTioConfig.debugInfo:256 - tio-boot, 检查心跳, 共0个连接, 取锁耗时0ms, 循环耗时0ms, 心跳超时时间:60000ms
从日志中,你可以看到服务器当前的连接状态、消息统计信息以及心跳检查的具体执行情况。这些信息有助于实时监控和调试系统。
通过以上配置和日志信息,您可以有效地监控 Tio-Boot 的心跳状态,并确保项目运行的稳定性。