feat: 实现Redis集成与Kafka消息处理优化

- 新增Redis集成模块,支持心跳写入与控制台日志队列
- 优化Kafka消费者实现,支持多实例与自动重连
- 改进消息处理器,支持批量处理与多层解码
- 更新数据库表结构,调整字段类型与约束
- 添加Redis与Kafka的配置项和环境变量支持
- 补充测试用例和文档说明
This commit is contained in:
2026-01-14 17:58:45 +08:00
parent eb94aaf92b
commit 910f1c353f
28 changed files with 1691 additions and 177 deletions

View File

@@ -15,10 +15,10 @@ function getEnv(name, fallback) {
function buildClientConfig(database) {
const db = config.db;
return {
host: getEnv('PGHOST', db.host),
port: Number(getEnv('PGPORT', db.port)),
user: getEnv('PGUSER', db.user),
password: getEnv('PGPASSWORD', db.password),
host: getEnv('POSTGRES_HOST', getEnv('PGHOST', db.host)),
port: Number(getEnv('POSTGRES_PORT', getEnv('PGPORT', db.port))),
user: getEnv('POSTGRES_USER', getEnv('PGUSER', db.user)),
password: getEnv('POSTGRES_PASSWORD', getEnv('PGPASSWORD', db.password)),
database,
};
}
@@ -36,7 +36,7 @@ async function main() {
const schemaFile = path.join(scriptsDir, '010_heartbeat_schema.sql');
const partitionFile = path.join(scriptsDir, '020_partitioning_auto_daily.sql');
const targetDb = getEnv('PGTARGETDB', config.db.database);
const targetDb = getEnv('POSTGRES_DATABASE', getEnv('PGTARGETDB', config.db.database));
console.log(`[db] Connecting to target db: ${targetDb}`);
const targetClient = new Client(buildClientConfig(targetDb));