feat: 初始化BLS心跳接收端项目
- 添加基础项目结构,包括.gitignore、vite配置和package.json - 实现Kafka消费者模块框架 - 添加心跳处理器模块框架 - 实现数据库管理模块框架 - 添加OpenSpec规范文档 - 更新README文档说明项目功能和技术栈
This commit is contained in:
69
openspec/specs/db/spec.md
Normal file
69
openspec/specs/db/spec.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# 数据库操作规范
|
||||
|
||||
## 需求
|
||||
|
||||
### Requirement: 数据库连接管理
|
||||
系统必须能够建立和维护与PostgreSQL数据库的连接。
|
||||
|
||||
#### Scenario: 成功连接数据库
|
||||
- **WHEN** 系统启动时
|
||||
- **THEN** 应该成功连接到配置的PostgreSQL数据库
|
||||
- **AND** 应该监控连接状态
|
||||
|
||||
#### Scenario: 数据库连接断开重连
|
||||
- **WHEN** 数据库连接断开时
|
||||
- **THEN** 系统应该自动尝试重连
|
||||
- **AND** 重连失败时应该记录错误日志
|
||||
|
||||
### Requirement: 心跳数据写入
|
||||
系统必须能够将处理后的心跳数据写入PostgreSQL数据库。
|
||||
|
||||
#### Scenario: 写入单条心跳数据
|
||||
- **WHEN** 接收到单条处理后的心跳数据时
|
||||
- **THEN** 系统应该将数据写入数据库
|
||||
- **AND** 返回写入结果
|
||||
|
||||
#### Scenario: 批量写入心跳数据
|
||||
- **WHEN** 接收到批量处理后的心跳数据时
|
||||
- **THEN** 系统应该使用批量写入机制将数据写入数据库
|
||||
- **AND** 提高写入效率
|
||||
|
||||
### Requirement: 数据完整性保障
|
||||
系统必须保障写入数据库的心跳数据的完整性。
|
||||
|
||||
#### Scenario: 事务管理
|
||||
- **WHEN** 写入多条相关数据时
|
||||
- **THEN** 系统应该使用事务确保数据一致性
|
||||
- **AND** 要么全部写入成功,要么全部失败
|
||||
|
||||
#### Scenario: 数据约束验证
|
||||
- **WHEN** 写入的数据违反数据库约束时
|
||||
- **THEN** 系统应该捕获约束错误
|
||||
- **AND** 记录错误日志
|
||||
- **AND** 根据配置决定是否重试
|
||||
|
||||
### Requirement: 数据库表结构管理
|
||||
系统必须包含数据库表结构的定义和管理机制。
|
||||
|
||||
#### Scenario: 表结构初始化
|
||||
- **WHEN** 系统首次启动时
|
||||
- **THEN** 系统应该检查数据库表是否存在
|
||||
- **AND** 不存在时应该创建表结构
|
||||
|
||||
#### Scenario: 表结构迁移
|
||||
- **WHEN** 表结构需要变更时
|
||||
- **THEN** 系统应该支持平滑的表结构迁移
|
||||
- **AND** 不影响现有数据
|
||||
|
||||
### Requirement: 数据查询支持
|
||||
系统必须支持基本的数据查询操作,用于监控和调试。
|
||||
|
||||
#### Scenario: 查询最新心跳数据
|
||||
- **WHEN** 需要查询最新的心跳数据时
|
||||
- **THEN** 系统应该提供查询接口
|
||||
- **AND** 返回符合条件的数据
|
||||
|
||||
#### Scenario: 按条件查询心跳数据
|
||||
- **WHEN** 需要按特定条件查询心跳数据时
|
||||
- **THEN** 系统应该支持条件过滤
|
||||
- **AND** 返回符合条件的数据
|
||||
40
openspec/specs/kafka/spec.md
Normal file
40
openspec/specs/kafka/spec.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Kafka消息处理规范
|
||||
|
||||
## 需求
|
||||
|
||||
### Requirement: Kafka连接管理
|
||||
系统必须能够建立和维护与Kafka集群的连接。
|
||||
|
||||
#### Scenario: 成功连接Kafka集群
|
||||
- **WHEN** 系统启动时
|
||||
- **THEN** 应该成功连接到配置的Kafka集群
|
||||
- **AND** 应该监控连接状态
|
||||
|
||||
#### Scenario: Kafka连接断开重连
|
||||
- **WHEN** Kafka连接断开时
|
||||
- **THEN** 系统应该自动尝试重连
|
||||
- **AND** 重连失败时应该记录错误日志
|
||||
|
||||
### Requirement: 心跳消息消费
|
||||
系统必须能够消费Kafka队列中的心跳消息。
|
||||
|
||||
#### Scenario: 消费心跳消息
|
||||
- **WHEN** Kafka队列中有心跳消息时
|
||||
- **THEN** 系统应该消费该消息
|
||||
- **AND** 将消息传递给处理器进行解包
|
||||
|
||||
#### Scenario: 消息消费确认
|
||||
- **WHEN** 消息处理完成后
|
||||
- **THEN** 系统应该向Kafka确认消息已消费
|
||||
|
||||
### Requirement: 消息过滤与路由
|
||||
系统必须能够根据消息类型过滤和路由心跳消息。
|
||||
|
||||
#### Scenario: 过滤无效消息
|
||||
- **WHEN** 接收到无效格式的消息时
|
||||
- **THEN** 系统应该丢弃该消息
|
||||
- **AND** 记录错误日志
|
||||
|
||||
#### Scenario: 路由有效消息
|
||||
- **WHEN** 接收到有效格式的心跳消息时
|
||||
- **THEN** 系统应该将消息路由到正确的处理器
|
||||
46
openspec/specs/processor/spec.md
Normal file
46
openspec/specs/processor/spec.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 数据处理器规范
|
||||
|
||||
## 需求
|
||||
|
||||
### Requirement: 心跳数据解包
|
||||
系统必须能够解包Kafka消息中的二进制心跳数据。
|
||||
|
||||
#### Scenario: 解包有效心跳数据
|
||||
- **WHEN** 接收到有效格式的Kafka心跳消息时
|
||||
- **THEN** 系统应该成功解包消息
|
||||
- **AND** 提取出心跳数据的各个字段
|
||||
|
||||
#### Scenario: 解包无效心跳数据
|
||||
- **WHEN** 接收到无效格式的Kafka心跳消息时
|
||||
- **THEN** 系统应该返回解包错误
|
||||
- **AND** 记录错误日志
|
||||
|
||||
### Requirement: 心跳数据验证
|
||||
系统必须能够验证解包后的心跳数据的有效性。
|
||||
|
||||
#### Scenario: 验证有效心跳数据
|
||||
- **WHEN** 解包后的心跳数据格式正确且字段完整时
|
||||
- **THEN** 系统应该验证通过
|
||||
- **AND** 将数据传递给数据库层进行存储
|
||||
|
||||
#### Scenario: 验证无效心跳数据
|
||||
- **WHEN** 解包后的心跳数据缺少必填字段时
|
||||
- **THEN** 系统应该验证失败
|
||||
- **AND** 记录错误日志
|
||||
- **AND** 丢弃该数据
|
||||
|
||||
### Requirement: 心跳数据转换
|
||||
系统必须能够将解包后的心跳数据转换为数据库存储格式。
|
||||
|
||||
#### Scenario: 转换心跳数据格式
|
||||
- **WHEN** 心跳数据验证通过时
|
||||
- **THEN** 系统应该将数据转换为数据库表结构所需的格式
|
||||
- **AND** 添加必要的元数据
|
||||
|
||||
### Requirement: 批量处理支持
|
||||
系统必须支持批量处理心跳数据,提高处理效率。
|
||||
|
||||
#### Scenario: 批量处理心跳数据
|
||||
- **WHEN** 接收到大量心跳消息时
|
||||
- **THEN** 系统应该将数据分批处理
|
||||
- **AND** 每批处理的数量可配置
|
||||
Reference in New Issue
Block a user