系统性能调优必知必会
陶辉
智链达 CTO,前阿里云 P8 高级技术专家
36367 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 47 讲
系统性能调优必知必会
15
15
1.0x
00:00/00:00
登录|注册

29 | 流式计算:如何通过集群实现实时计算?

思考题
窗口类型
工作原理
实时计算
流式计算

该思维导图由 AI 生成,仅供参考

你好,我是陶辉。
上节课我们介绍了在有边界的存量数据上进行的 MapReduce 离线计算,这节课我们来看看对于无边界数据,怎样实时地完成流式计算。
对于不再变化的存量数据,可以通过分而治之的 MapReduce 技术将数据划分到多台主机上并行计算,由于待处理的数据量很大,我们只能获得分钟级以上的时延。当面对持续实时产生动态数据的场景时,业务上通常需要在秒级时延中及时地拿到运算结果。
比如,商家为了拉新促活,会为特定的用户群体(比如新用户或者不活跃用户)推出优惠活动,为了防止“羊毛党”通过大量主机并行地“薅羊毛”,系统要能实时地聚合分析所有优惠券的使用者特点,再基于业务规则及时地封掉“羊毛党”帐号或者 IP 地址,才可以控制住风险范围,提高营销活动的收益。那对于整个系统持续生成的大量订单数据,怎样才能提供秒级的聚合分析结果呢?
最初的流式计算方案,是在时间维度上定期地将数据分片,再基于 MapReduce 思想在空间维度的多台主机上实现并行计算,这样也能获得实时计算结果。然而,对每片数据执行批量计算,想要在秒级甚至毫秒级拿到计算结果并不容易。当网络不稳定时,数据会因为报文延误而乱序,简单的基于时序分片会导致计算结果失真。当数据之间具有明显的业务关系时,固定的时间窗口更是难以得到预期的分析结果。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

流式计算是一种通过集群实现实时计算的技术,适用于处理无边界数据,如持续产生的动态数据流。文章介绍了流式计算的工作原理和常用的数据分片窗口。流式计算通过固定时间窗口的批处理解决方案实现实时计算,同时也可以在每个消息到来时计算出中间状态,提高整体性能。此外,文章还介绍了有状态计算和无状态计算的区别,以及滑动窗口和计数窗口等常见窗口类型。另外,为了避免乱序事件影响统计结果,可以使用水位线减少乱序概率。总的来说,流式计算通过并行的Map计算和Reduce操作实现实时计算,同时结合不同类型的窗口来确定待计算的数据,以满足不同业务场景的需求。文章内容详实,对流式计算的工作原理和常见窗口类型进行了深入讲解,适合读者快速了解流式计算的基本概念和技术特点。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《系统性能调优必知必会》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 那时刻
    可以采用kappa架构,比如Kafka,来解决lambda架构带来的系统复杂性,以及同一逻辑需要批、流两套实现。 另外Apache beam也是不错的选择,一套代码可以实现批、流两套数据处理。
    2020-07-24
    2
  • 惘 闻
    当然,并不是有了水位线,第 1 个窗口就会无限制的等下去。 这句话没有上文映照啊?没有水位线第一个窗口就不等了吗?有了水位线第一个窗口在等什么呀?
    2021-05-13
  • 潘政宇
    陶老师,请教个问题,我用netstat查看nginx 在那个进程listening,发现有的在master进程,有的在worker进程,这是为什么啊,我的理解应该是在master进程上啊,是reload的原因吗
    2020-07-24
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部