feat: 初始化后端服务基础架构与核心组件
- 添加项目基础结构,包括 .gitignore、package.json、Docker 配置和环境变量示例 - 实现核心模块:Kafka 消费者、PostgreSQL 数据库管理器、Redis 客户端与错误队列 - 添加工具类:日志记录器、指标收集器、UUID 生成器 - 实现数据处理器,支持 0x36 上报和 0x0F 命令的解析与存储 - 添加数据库初始化脚本和分区管理,支持按时间范围分区 - 引入 Zod 数据验证和 Vitest 单元测试框架 - 提供完整的项目文档,包括数据库设计、Kafka 格式规范和 Redis 集成协议
This commit is contained in:
18
bls-rcu-action-backend/src/utils/logger.js
Normal file
18
bls-rcu-action-backend/src/utils/logger.js
Normal file
@@ -0,0 +1,18 @@
|
||||
const format = (level, message, context) => {
|
||||
const payload = {
|
||||
level,
|
||||
message,
|
||||
timestamp: Date.now(),
|
||||
...(context ? { context } : {})
|
||||
};
|
||||
return JSON.stringify(payload);
|
||||
};
|
||||
|
||||
export const logger = {
|
||||
info(message, context) {
|
||||
process.stdout.write(`${format('info', message, context)}\n`);
|
||||
},
|
||||
error(message, context) {
|
||||
process.stderr.write(`${format('error', message, context)}\n`);
|
||||
}
|
||||
};
|
||||
26
bls-rcu-action-backend/src/utils/metricCollector.js
Normal file
26
bls-rcu-action-backend/src/utils/metricCollector.js
Normal file
@@ -0,0 +1,26 @@
|
||||
export class MetricCollector {
|
||||
constructor() {
|
||||
this.reset();
|
||||
}
|
||||
|
||||
reset() {
|
||||
this.metrics = {
|
||||
kafka_pulled: 0,
|
||||
parse_error: 0,
|
||||
db_inserted: 0,
|
||||
db_failed: 0
|
||||
};
|
||||
}
|
||||
|
||||
increment(metric, count = 1) {
|
||||
if (this.metrics.hasOwnProperty(metric)) {
|
||||
this.metrics[metric] += count;
|
||||
}
|
||||
}
|
||||
|
||||
getAndReset() {
|
||||
const current = { ...this.metrics };
|
||||
this.reset();
|
||||
return current;
|
||||
}
|
||||
}
|
||||
3
bls-rcu-action-backend/src/utils/uuid.js
Normal file
3
bls-rcu-action-backend/src/utils/uuid.js
Normal file
@@ -0,0 +1,3 @@
|
||||
import { randomUUID } from 'crypto';
|
||||
|
||||
export const createGuid = () => randomUUID().replace(/-/g, '');
|
||||
Reference in New Issue
Block a user