Spring XD 1.0 Milestone 1 发布
今天我们高兴地宣布 Spring XD 的 1.0 M1 版本发布 (下载)。Spring XD 是一个统一、分布式且可扩展的系统,用于数据摄取、实时分析、批处理和数据导出。该项目的目标是简化大数据应用的开发。
从宏观角度看,大数据应用与企业集成和批处理应用有许多共同特征。Spring 通过 Spring Integration 和 Spring Batch 项目为构建集成和批处理应用提供了经过验证的解决方案,至今已有 6 年多。Spring XD 基于这一基础构建,提供了一个轻量级的运行时环境,可以通过简单的 DSL 轻松配置和组装。
在本篇博客中,我们将介绍 Spring XD 的关键组件,即流(Streams)、作业(Jobs)、分流(Taps)、分析(Analytics)以及用于声明它们的 DSL,还有运行时架构。更多详细信息可在XD 指南中找到。流 (Streams)
流(Stream)定义了数据如何被收集、处理、存储或转发。例如,一个流可以收集 syslog 数据,对其进行过滤,并将其存储在 HDFS 中。Spring XD 提供了一个 DSL 来定义流。该 DSL 允许您使用 UNIX 管道和过滤器语法从简单开始构建线性处理流程,但也允许您使用扩展语法描述更复杂的流程。源 (Sources) 和汇 (Sinks)
一个简单的线性流由以下序列组成:输入源(Input Source)、(可选)处理步骤(Processing Steps)和输出汇(Output Sink)。一个简单的例子是收集来自 HTTP 源的数据并写入文件汇。描述此流的 DSL 是http | file
您可以通过向默认运行在 8080 端口的 XD 管理服务器发送 HTTP 请求来告诉 Spring XD 创建一个流。在 M2 版本中,我们将提供一个交互式 shell 来与 XD 通信,但对于 M1 版本,与 XD 交互的最简单方法是使用 'curl'。
curl -d "http | file" http://localhost:8080/streams/httptest
流的名称是 httptest
,默认监听的 HTTP 端口是 9000
,默认文件位置是 /tmp/xd/output/${streamname}
。
curl -d "hello world" http://localhost:9000
您会在文件 /tmp/xd/output/httptest
中看到字符串 hello world
要更改默认值,您可以传入选项参数
http --port=9090 | file --dir=/var/streams --name=data.txt
M1 版本支持的源包括 file、time、HTTP、Tail、Twitter Search、Gemfire (Continuous Queries)、Gemfire (Cache Event)、Syslog 和 TCP。支持的汇包括 Log、File、HDFS…