监控: 心跳

Tio-Boot 内置了心跳监控功能,即使是纯 HTTP 项目,也建议开启心跳监控来提高系统稳定性和实时性。

1. 设置心跳时间

首先,需要在配置文件 app.properties 中设置心跳超时时间:

server.beartbeat.timeout=60000

server.beartbeat.timeout 指定了心跳超时时间,单位为毫秒。这个值表示当服务器在规定时间内未接收到来自客户端的心跳包时,将会断开连接。你可以根据业务需求调整此值。

2. 开启心跳监控

接下来,你需要在项目中显式开启心跳监控,并将心跳调试日志打开。可以通过设置 ServerTioConfigdebug 参数来输出更多调试信息,帮助你监控连接和消息传递情况。

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 {

  @AInitialization
  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 的心跳状态,并确保项目运行的稳定性。