feat(syslog): 优化WAL配置并在入站阶段丢弃无效设备日志
- 默认在进入WAL前丢弃未注册、重复或未分配到当前探针的Syslog日志 - 使用后台设备内存快照,避免Netty网络线程访问Redis或达梦 - 增加Terminal审计开关,允许恢复原有逐条审计文件模式 - 历史WAL中的无效设备记录直接推进checkpoint - 增加无效设备丢弃、快照状态及刷新失败监控指标 - 生产WAL队列调整为20000条 - WAL待写预算和分段大小调整为2GiB - 同步生产配置、Docker Compose及升级文档 - 增加无效设备前置过滤和Terminal开关测试 chore(syslog): 统一生产环境 WAL 挂载目录 - 将生产环境 WAL 默认目录调整为 /app/logs/syslog-wal - Docker Compose 显式设置 SYSLOG_WAL_DIRECTORY - WAL 与应用日志共用 /app/logs 宿主机挂载 - 移除旧的 /data/syslog-archive 独立挂载 - 宿主机 WAL 路径统一为 /home/syslog/logs/syslog-wal
This commit is contained in:
+9
-2
@@ -1,5 +1,6 @@
|
||||
package com.netty;
|
||||
|
||||
import com.haobang.dispatch.DeviceContextResolver;
|
||||
import com.haobang.wal.SyslogWalService;
|
||||
import io.netty.channel.ChannelInitializer;
|
||||
import io.netty.channel.ChannelPipeline;
|
||||
@@ -14,10 +15,15 @@ import java.nio.charset.Charset;
|
||||
public class SyslogUdpChannelInitializer extends ChannelInitializer<DatagramChannel> {
|
||||
private final Charset syslogCharset;
|
||||
private final SyslogWalService walService;
|
||||
private final DeviceContextResolver deviceResolver;
|
||||
private final boolean dropInvalidBeforeWal;
|
||||
|
||||
SyslogUdpChannelInitializer(Charset syslogCharset, SyslogWalService walService) {
|
||||
SyslogUdpChannelInitializer(Charset syslogCharset, SyslogWalService walService,
|
||||
DeviceContextResolver deviceResolver, boolean dropInvalidBeforeWal) {
|
||||
this.syslogCharset = java.util.Objects.requireNonNull(syslogCharset, "syslogCharset");
|
||||
this.walService = java.util.Objects.requireNonNull(walService, "walService");
|
||||
this.deviceResolver = java.util.Objects.requireNonNull(deviceResolver, "deviceResolver");
|
||||
this.dropInvalidBeforeWal = dropInvalidBeforeWal;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -29,6 +35,7 @@ public class SyslogUdpChannelInitializer extends ChannelInitializer<DatagramChan
|
||||
pipeline.addLast("encoder", new StringEncoder(syslogCharset));
|
||||
|
||||
// 添加业务处理器
|
||||
pipeline.addLast("handler", new SyslogMessageHandler(syslogCharset, walService));
|
||||
pipeline.addLast("handler", new SyslogMessageHandler(
|
||||
syslogCharset, walService, deviceResolver, dropInvalidBeforeWal));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user