实时事件流:您有什么选择?

到2020年,物联网预计将使至少210亿台设备联机( 根据Gartner ),许多人对事件流的潜在价值感到兴奋,即,摄取和分析大量实时数据以立即获取做决定。 但是流媒体还引入了需要仔细研究的新概念和组件。 这篇博客文章旨在介绍典型流结构的组件以及每个阶段可用的各种选项。

流架构的三个组成部分

大多数流架构具有三个主要组件- 生产者流系统使用者

生产者是连接到数据源的基于软件的系统。 生产者在从数据源收集事件数据,将其转换为所需的格式,以及可选地对其进行过滤,汇总和丰富之后,将事件数据发布到流式系统中

流传输系统获取生产者发布的数据,将其持久保存,并可靠地将其交付给消费者。

消费者通常是流处理引擎 ,它们订阅流中的数据并处理或分析该数据以寻找警报和见解。 有很多选项可供选择,而且还有更多选择。 让我们看看每个阶段的选择。

阶段1:制作人

数据生产者从数据源收集数据,将其转换为所需的格式,然后将数据发布到诸如Apache KafkaMapR Streams的流平台中。 Apache Flume通常用作Kafka的生产者。 StreamSets是一个新兴的数据收集器,可能值得一看。

Apache Flume是一个分布式系统,用于有效地收集,聚合和移动大量数据。 Flume具有源和接收器体系结构。 Flume源从数据源收集事件数据。 Flume接收器将事件放入外部存储库,该存储库通常是诸如Apache Kafka或MapR Streams之类的流系统。

StreamSets Data Collector是用于开发和操作复杂数据流的开源软件。 它提供了用于构建摄取管道的图形化IDE。 StreamSets可以帮助您与Kafka连接,而无需编写任何代码。 StreamSets Data Collector包括适用于Kafka以及许多其他来源和目标的现成连接器。

第二阶段:流媒体系统

Apache Kafka和MapR Streams是两个可以轻松扩展以每秒传输数十亿个事件的事件传输系统。 线性扩展能力可以每秒传递数十亿个事件,从而使Kafka和MapR流与传统的消息传递队列(如Tibco EMSIBM MQ)区分开来。 Kafka和MapR Streams均使用发布-订阅模型,其中数据生产者为发布者,数据消费者为订阅者。

Apache Kafka非常适合处理大量数据。 您可以将集群设置为数据主干,从而提供了出色的可伸缩性。 然后,您可以根据需要轻松扩展集群,而无需停机。 Kafka还将消息存储在磁盘上,并在群集中复制消息,以减少遇到硬件故障时数据丢失的风险。

MapR Streams就像Kafka –实际上,它使用Kafka 0.9 API –但是它具有某些企业功能,这些功能为对数据完整性至关重要的超大型且地理位置分散的网络提供了额外的支持。 MapR Streams与MapR Converged Data Platform集成在一起,后者在单个集群中结合了文件存储,数据库服务和处理框架。 这意味着批处理,交互式和流处理引擎都可以直接访问事件流,从而减少了数据移动并确保了一致性。 在此处了解有关MapR流的更多信息

阶段3:消费者(处理中)

MapR Streams和Kafka可以从IoT规模的各种来源传递数据。 然后由处理引擎来处理它。 要了解的四个重要引擎包括Apache Spark Streaming,Apache Flink,Apache Storm和Apache Apex。

Spark Streaming是Apache Spark的内置组件。 Spark流可以消耗MapR流,Kafka和许多其他系统中的事件流。 通过作为Spark的内置组件,Spark Streaming可在内存中运行,并允许您对流数据运行即席查询。 可以将Spark Streaming更准确地描述为“微批处理”,或快速突发处理少量批处理信息。

Apache Storm是另一个流行的事件处理引擎。 与Spark不同,Storm是纯实时的基于事件的分析引擎,因此在需要即时处理每个事件的情况下,Storm最为有用。 Storm实际上会在每个事件交付后立即对其进行处理。

Apache Flink在内存中工作,并且以其速度和可伸缩性而著称。 与Storm相似,它是一个纯实时的基于事件的处理引擎。 两者之间的差异是非常技术性的,与诸如确保数据可靠性的方式,它们支持的编程语言以及各自的API的功能等方面有关。 Flink支持Apache Storm API,以使熟悉Storm的开发人员可以轻松地从Storm过渡。

Apache Apex (孵化)是最近进入市场的产品,仅在去年6月才以开源形式提供。 这是一个YARN原生平台,可统一流和批处理。 通过提供使用户能够编写或重用通用Java代码的简单API,它降低了编写大数据应用程序所需的专业知识。 该项目仍处于孵化阶段,因此没有太多的现场经验可做。 但是,Apex当然值得关注。

您会看到,对实时处理的热情已经被许多技术所满足。 而且景观在不断发展。 如果您有兴趣进行更深入的研究,请获取Ted Dunning和Ellen Friedman撰写的“ 流式体系结构:使用Apache Kafka和MapR流的新设计 ”电子书。

翻译自: https://www.javacodegeeks.com/2016/04/real-time-event-streaming-options.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值