【流计算】流计算概论

前言

作者在之前写过一个大数据的专栏,包含GFS、BigTable、MapReduce、HDFS、Hadoop、LSM树、HBase、Spark,专栏地址:

https://blog.csdn.net/joker_zjn/category_12631789.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=12631789&sharerefer=PC&sharesource=Joker_ZJN&sharefrom=from_link

流计算和大数据是紧密相关的,现在接那个大数据专栏,继续向下写流计算专栏。这是第一篇。

目录

1.什么是流计算

2.流计算的架构


1.什么是流计算

流计算,就是对流式数据的计算,是专门用来处理流式数据的。因此在聊流计算之前,我们要先明白什么是静态数据和流式数据。

静态数据:

静态数据不是实时产生的,是有一定历史的数据,静态数据一般是用来进行一些统计分析的,比如数据仓库中的数据就是典型的静态数据。再比如MapReduce做统计分析,存在HDFS中的数据也是静态数据。

流式数据:

流式数据其实就是动态数据,是实时产生的,其应用场景对实时性要求很高,基本上是要求需要对其做实时处理的数据。比如:

  • 物联网中的实时监测设备,诸如烟感、PM2.5监测、安防等设备,要对实时的流式数据做实时的分析,从而判断是否触发报警之类的操作。

  • 购物网站上的"可能感兴趣"的推荐,就是基于用户实时点击浏览产生的流式数据来给客户进行推荐的。

上面这样说只是一方面,其实仔细思考就会发现静态数据、动态数据之间没有很明确的边界,静态数据也会有新的数据进来,流式数据的业务场景中也有对历史数据计算的需求。

其实从业务场景上能更好的区分是不是流计算的场景,流计算的场景一句话就能概括:

大量数据实时产生,涌过来,从这些大量实时数据中计算出实时结果。

流式数据的特征:

  • 快速持续的到达

  • 来源众多、格式复杂

  • 数据量大,不太关注存储,一旦经过处理后,要么被丢弃,要么被归档存储。

2.流计算的架构

流数据的量大、产生的速度快、来源和格式杂,这些特点都是会拉低计算速度的点,所以流计算的核心就是要就是要稳定可靠高效的处理流式数据。市面上的各种流计算框架针对这些核心问题,各自给出了自己的解法,常用的流计算框架:

  • twitter storm

  • spark strem

流计算是整个大系统的一环,接下来我们看看引入流计算的系统架构一般长什么样子。

以flink为例,展示一下流计算常见架构:

观察上面系统,可以发现引入流计算的系统架构一般有以下部分组成:

  • 数据采集

  • 数据传输

  • 数据处理

  • 数据存储

  • 数据展现

数据采集:

传感器、各个服务模块上的各个日志代理等。

数据采集在软件层面无非就是从浏览器、手机终端等设备将数据发给采集服务器。

采集服务器要接收数据,在性能上要有所考虑,关于性能无非以下点:

  • 吞吐量(TPS),要在IO模型上有所抉择,阻塞?非阻塞

  • 时延,有时延要求时首先要报时延,再说拉高吞吐量的事儿

  • TCP连接,当有大量连接需要维持时,用非阻塞IO服务器,如netty;当连接数量较少时,用长连接和连接池

数据传输:

负责数据的流转,数据总线,一般用MQ来实现,数据传输要关注的点:

  • 吞吐量,流式数据的量大,吞吐量肯定要跟上,不能造成数据积压,数据才有实时性。
  • 可靠性,可靠性肯定要跟上,数据尽可能不要丢。

数据处理:

流计算的核心,也是流计算框架主要工作的环节,用计算引擎来对流进行:

  • 转化、清洗、转换

  • 计数、求和、均值、标准差、极值、聚合、关联、直方图等

数据存储:

根据自己的业务场景来决定计算出来的结果是否需要存储?如果要存储就要考虑自己业务场景的需求:

  • 数据量大不大?

  • 时延要求如何?

  • 吞吐量大不大?

然后来选择对应的存储介质,内存?关系型数据库?非关系型数据库?分布式文件系统?等等等等

3.常见流计算场景

以下是流式计算的一些典型应用场景:

  • 实时数据分析
    • 金融交易:实时监测市场波动、交易异常和欺诈检测。
    • 物联网(IoT):实时处理传感器数据,监控设备状态,触发警报。
  • 日志处理与监控
    • 系统监控:实时监控服务器日志,快速发现并处理系统故障。
    • 应用性能管理(APM):实时分析应用日志,优化性能瓶颈。
  • 社交媒体分析
    • 趋势分析:实时分析社交媒体上的热点话题和用户情绪。
    • 推荐系统:根据用户实时行为更新推荐内容。
  • 网络安全
    • 入侵检测:实时分析网络流量,识别潜在的安全威胁。
    • 异常检测:监控网络活动,及时发现异常行为。
  • 电子商务
    • 库存管理:实时更新库存信息,避免超卖情况。
    • 订单处理:实时跟踪订单状态,提高客户满意度。
  • 智能制造
    • 生产监控:实时监控生产线状态,提高生产效率。
    • 预测性维护:通过分析机器运行数据,提前预测并预防故障。
  • 交通与物流
    • 交通管理:实时分析交通流量,优化交通信号控制。
    • 物流追踪:实时更新货物位置,提高物流效率。
相关推荐
不会写DN14 小时前
Git 开发中最常用的命令与场景
大数据·git·elasticsearch
源码之家14 小时前
计算机毕业设计:Python 共享单车数据分析可视化系统 Flask框架 可视化 大数据 机器学习 深度学习 数据挖掘(建议收藏)✅
大数据·python·数据挖掘·数据分析·汽车·课程设计·美食
xingyuzhisuan14 小时前
遇到GPU驱动冲突问题,云厂商通常提供怎样的技术支持?
大数据·人工智能·gpu算力
码农小白AI14 小时前
AI审核驱动动态预警:IACheck如何重塑环境数据一致性监测与质量管控新模式
大数据·人工智能
LaughingZhu14 小时前
Product Hunt 每日热榜 | 2026-04-02
大数据·人工智能·经验分享·搜索引擎
福客AI智能客服14 小时前
低价竞争之外,商家正在重新思考客服的价值
大数据·人工智能
GJGCY14 小时前
企业级AI智能体平台技术评测:9款产品架构差异与生产落地能力分析
大数据·人工智能·ai·智能体
专注API从业者14 小时前
淘宝 API 调用链路追踪实战:基于 SkyWalking/Pinpoint 的全链路监控搭建
大数据·开发语言·数据库·skywalking
jinanwuhuaguo14 小时前
OpenClaw v2026.4.1 深度剖析报告:任务系统、协作生态与安全范式的全面跃迁
java·大数据·开发语言·人工智能·深度学习
SeaTunnel15 小时前
关于 Apache SeaTunnel 类加载器治理的一些观察与思考(欢迎讨论)
大数据·开源·apache·seatunnel·数据同步