设计数据密集型应用 - 在线流式处理 (stream processing)

本文探讨了在线流式处理的特点及挑战,包括消息系统的构建、消息代理的角色与容错机制,以及在线数据分析、特征挖掘等应用场景。同时,还讨论了消息生成、排队和处理时间的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面咱们介绍了线上服务和离线批量处理中涉及的一些问题和方案,这章我们将分享的是在线流式处理中的问题和方案;

流失数据处理系统与其他类型系统对比,数据流可能无穷尽,数据上游可能多方,下游也可能多方,基于这种数据流特点,我们需要一个消息系统(message system);

为了适应业务节点的多变特性,如新增消息产生方,减少消息处理方等,维持整个系统的稳定等,普遍通过消息代理(message broker)来处理和分发消息, 其中涉及消息队列和容错等功能, 可通过设置消息开端(offset)来区分每个消息消费者(consumer)当前所处理的信息;

关于消息代理容错,消息代理在接受到消息时会将消息接入日志,并放到内存,如果crash, 可快速从日志中回复消息; 而且还可通过两个小技巧-最小批量(micro-batching, 基本想法是对消息进行分批)和检测点(check-point,基本想法是对消息进行设点备份,如果crash, 按最近一个点来重新开始),来减少出错是带来的损失;

流式处理中可应用的场景:

  • 在线数据分析,事件发生的频次和统计分析
  • 在线特征挖掘和监控,欺诈检测,价格波动, 机器状态监控
  • 系统状态监控

在流式数据处理过程中,涉及三个较为重要的时间,消息生成时间(message produce time), 消息队列时间(time send to server), 消息处理时间(message process time); 在分析数据时需要区分这个时间的不同;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值