实时流技术来源及比较

简介:

流数据的处理存在很多技术:
1、简单的事件处理器
2、复杂的事件处理器
3、流处理器

分布式流处理需求日益增加,包括支付交易、社交网络、物联网(IOT)、系统监控等。业界对流处理已经有几种适用的框架来解决,下面我们来比较各流处理框架的相同点以及区别。
分布式流处理是对无边界数据集进行连续不断的处理、聚合和分析。它跟MapReduce一样是一种通用计算,但我们期望延迟在毫秒或者秒级别。这类系统一般采用有向无环图(DAG)。

当选择不同的流处理系统时,有以下几点需要注意的:
运行时和编程模型:平台框架提供的编程模型决定了许多特色功能,编程模型要足够处理各种应用场景。这是一个相当重要的点,后续会继续。

函数式原语:流处理平台应该能提供丰富的功能函数,比如,map或者filter这类易扩展、处理单条信息的函数;处理多条信息的函数aggregation;跨数据流、不易扩展的操作join。

状态管理:大部分应用都需要保持状态处理的逻辑。流处理平台应该提供存储、访问和更新状态信息。

消息传输保障:消息传输保障一般有三种:at most once,at least once和exactly once。At most once的消息传输机制是每条消息传输零次或者一次,即消息可能会丢失;A t least once意味着每条消息会进行多次传输尝试,至少一次成功,即消息传输可能重复但不会丢失;Exactly once的消息传输机制是每条消息有且只有一次,即消息传输既不会丢失也不会重复。

容错:流处理框架中的失败会发生在各个层次,比如,网络部分,磁盘崩溃或者节点宕机等。流处理框架应该具备从所有这种失败中恢复,并从上一个成功的状态(无脏数据)重新消费。

性能:延迟时间(Latency),吞吐量(Throughput)和扩展性(Scalability)是流处理应用中极其重要的指标。

平台的成熟度和接受度:成熟的流处理框架可以提供潜在的支持,可用的库,甚至开发问答帮助。选择正确的平台会在这方面提供很大的帮助。

对海量事件的收集和处理要满足:低开销、低延迟。流处理器对此提供了比较好的支持。考虑每秒数据量的大小,再确定如何选用何种技术。(例如流量每秒几百条消息,每秒数十万条消息,处理的技术可以完全不同)

image

Flume 和 NiFi 确切地属于数据收集(DC)和单事件处理器(SEP),而其它的是多事件流处理器(ESP)引擎或复杂的事件处理器(CEP)。

Spark 本身和 Ignite 确切来说不仅仅是流处理器,他们还提供流媒体功能。Apex 也是同样的情况,这是一个统一批次和流数据的平台,它应该是介于一个数据收集引擎、一个基本 ETL 工具与一个事件流处理器之间。

Kafka 流是一个 Kafka 的 Java 库,主要用于消息的处理。Kafka流是最初由 LinkedIn 开发的消息传递系统。Kafka 目前在 LinkedIn、Netflix 和 Spotify 中被广泛应用。Kafka流的特点是低延迟、高容量、分布式的队列系统。

在 CEP 市场上当然还有许多其他选择,例如:Software AG 的 Apama,微软的 StreamInsight,Oracle 事件处理,SAP ESP,Tibco 的 BusinessEvents&Streambase。它们列出时并没有按具体的顺序!另外还有Esper,其中有一个可获取的开源版本,是 GNU GPL 许可的。

In-flight 修改表示没有任何停机或应用程序重新提交的情况。有时也被称为零停机扩容,和即席或动态应用程序修改。对于 in-flight 修改,Spooker是一个值得多看一眼的项目。

目录
相关文章
|
数据采集 存储 监控
大数据的数据来源 - 数据采集的方式(数据接入的方式)
大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。下面主要介绍下大数据采集
4473 0
|
5月前
|
数据采集 供应链 搜索推荐
数据集成:融合不同来源的数据
【6月更文挑战第4天】数据集成在企业中发挥关键作用,连接数据孤岛,促进信息流动,提升决策能力。通过抽取、清洗、转换和加载(ETL)不同来源、格式的数据,整合到统一框架,进行深度分析。以零售商为例,集成销售、客户和供应链数据可优化库存管理。数据清洗确保质量,转换满足分析需求,最终加载到数据仓库。Python和pandas库是实现这一过程的工具之一。随着技术进步,数据集成将推动企业向智能化和个性化发展。
138 2
|
3月前
|
算法 数据处理 流计算
流计算引擎数据问题之传播模块工作如何解决
流计算引擎数据问题之传播模块工作如何解决
42 1
|
jstorm 大数据 分布式数据库
大数据下的实时热点功能实现讨论(实时流的TopN)
我司内部有个基于jstorm的实时流编程框架,文档里有提到实时Topn,但是还没有实现。。。。这是一个挺常见挺重要的功能,但仔细想想实现起来确实有难度。实时流的TopN其实离大家很近,比如下图百度和微博的实时热搜榜,还有各种资讯类的实时热点,他们具体实现方式不清楚,甚至有可能是半小时离线跑出来的。今天不管他们怎么实现的,我们讨论下实时该怎么实现(基于storm)。
186 0
|
数据采集 分布式计算 数据挖掘
80 网站点击流数据分析案例(数据采集功能)
80 网站点击流数据分析案例(数据采集功能)
71 0
|
消息中间件 存储 分布式计算
【大数据学习篇11】广告点击流实时统计
【大数据学习篇11】广告点击流实时统计
342 0
【大数据学习篇11】广告点击流实时统计
|
存储 数据采集 大数据
大数据数据采集的数据来源的日志数据之接口请求数据
在大数据采集中,数据来源多种多样,其中日志数据是一种常见的数据类型。接口请求数据是日志数据的一种形式,本文将介绍如何高效地从接口请求数据中采集和处理数据。
155 0
|
数据采集 存储 大数据
大数据数据采集的数据来源的爬取的网络数据
在大数据应用中,数据采集是非常重要的一步。网络爬虫技术可以帮助企业从互联网上获得更加丰富、多样化的数据,并为后续的数据分析和运用提供支持。
142 0
|
存储 数据采集 NoSQL
大数据数据采集的数据来源的日志数据之埋点访问数据
在大数据采集中,埋点访问数据是一种常见的日志数据类型。本文将介绍什么是埋点访问数据以及如何高效地从该类型的数据中采集和处理数据。
168 0
|
存储 数据采集 XML
大数据数据采集的数据来源的日志数据之搜索类数据
在大数据领域,数据采集是一个非常重要的环节。日志数据已经成为了大数据应用中不可或缺的一部分,尤其是搜索类数据。本文将介绍搜索类日志数据作为数据来源的特点以及其采集流程。
183 0
下一篇
无影云桌面