流式系统的数据处理与消息队列技术解析
1. 容错日志技术
在流式系统中,容错日志技术对于数据保护至关重要。主要有基于接收方的消息日志(RBML)和基于发送方的消息日志(SBML)两种方式,而混合消息日志(HML)则是为平衡两者优缺点而设计的。
1.1 基于接收方的消息日志(RBML)
RBML 技术会在对收到的每条消息采取任何操作之前,将其同步写入稳定存储。这样做的好处是,当软件在处理消息时崩溃,消息已被保存,恢复后可以重新播放该消息。
1.1.1 正常数据流程
正常情况下,消息流程如下:
1. 数据生产者(任何客户端)发送消息。
2. 为收集节点编写的 RBML 记录器从数据生产者获取消息并发送到存储。
3. 消息被写入稳定存储。
4. 消息经过节点中的其他逻辑处理,如丰富数据、过滤或根据业务规则路由。
5. 消息被发送到消息队列层,即流式系统的下一层。
graph LR
A[数据生产者] -->|发送消息| B[RBML记录器]
B -->|发送到存储| C[稳定存储]
C -->|经过逻辑处理| D[节点逻辑]
D -->|发送消息| E[消息队列层]
不过,根据所使用的稳定存储类型,步骤 2 和 3 可能会对收集节点的吞吐量性能产生负面影响,这也是日志协议的一个缺点。
1.1.2 恢复数据流程
当发生崩溃时,恢复流程如下:
1. 停止向该收集节点的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



