实时流技术来源及比较

简介:

流数据的处理存在很多技术:
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是一个值得多看一眼的项目。

目录
相关文章
|
11月前
|
搜索推荐 JavaScript 前端开发
77 网站点击流数据分析案例(原理及意义)
77 网站点击流数据分析案例(原理及意义)
373 0
|
数据采集 存储 监控
大数据的数据来源 - 数据采集的方式(数据接入的方式)
大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。下面主要介绍下大数据采集
4091 0
|
4月前
|
数据采集 供应链 搜索推荐
数据集成:融合不同来源的数据
【6月更文挑战第4天】数据集成在企业中发挥关键作用,连接数据孤岛,促进信息流动,提升决策能力。通过抽取、清洗、转换和加载(ETL)不同来源、格式的数据,整合到统一框架,进行深度分析。以零售商为例,集成销售、客户和供应链数据可优化库存管理。数据清洗确保质量,转换满足分析需求,最终加载到数据仓库。Python和pandas库是实现这一过程的工具之一。随着技术进步,数据集成将推动企业向智能化和个性化发展。
116 2
|
4月前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI产品使用合集之选择使用Hologres作为在线特征存储,响应延时大概在多久
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
11月前
|
jstorm 大数据 分布式数据库
大数据下的实时热点功能实现讨论(实时流的TopN)
我司内部有个基于jstorm的实时流编程框架,文档里有提到实时Topn,但是还没有实现。。。。这是一个挺常见挺重要的功能,但仔细想想实现起来确实有难度。实时流的TopN其实离大家很近,比如下图百度和微博的实时热搜榜,还有各种资讯类的实时热点,他们具体实现方式不清楚,甚至有可能是半小时离线跑出来的。今天不管他们怎么实现的,我们讨论下实时该怎么实现(基于storm)。
167 0
|
11月前
|
数据采集 分布式计算 数据挖掘
80 网站点击流数据分析案例(数据采集功能)
80 网站点击流数据分析案例(数据采集功能)
65 0
|
11月前
|
搜索推荐 数据挖掘 BI
78 网站点击流数据分析案例(网站流量分析过程)
78 网站点击流数据分析案例(网站流量分析过程)
174 0
|
消息中间件 存储 分布式计算
【大数据学习篇11】广告点击流实时统计
【大数据学习篇11】广告点击流实时统计
324 0
【大数据学习篇11】广告点击流实时统计
|
存储 数据采集 大数据
大数据数据采集的数据来源的日志数据之接口请求数据
在大数据采集中,数据来源多种多样,其中日志数据是一种常见的数据类型。接口请求数据是日志数据的一种形式,本文将介绍如何高效地从接口请求数据中采集和处理数据。
149 0
|
数据采集 存储 大数据
大数据数据采集的数据来源的爬取的网络数据
在大数据应用中,数据采集是非常重要的一步。网络爬虫技术可以帮助企业从互联网上获得更加丰富、多样化的数据,并为后续的数据分析和运用提供支持。
114 0