天天看點

Spring XD: 将資料驅動的聯系放到統一的平台上

最近在學習Spring XD的知識,發現剛剛release 1.1GA版本,于是順手翻譯了一篇Sabby Anandan的blog,他是Pivotal的PM,文章類似于release note的感覺,是個Spring XD的介紹

無論你在家裡,辦公室還是旅途中,資訊的互通是一樣的。這已然成為我們生活的一部分,我們對這種聯系已經形成依賴并且習以為常。人與人,人與資訊之間的聯系都可以歸結為資料的遷移和分析,對于這種資料傳輸,資料需要不斷地傳送,并且需要不停的提高速度以便把結果更快地傳遞給使用者。對于更高的标準,始終維持這種穩定且可用的聯系,面臨着諸多挑戰,因為對于資料提供商來說,資料的類型,格式,大小都是不定的。

Spring XD 将這些挑戰放到一個統一的平台當中。不管對于持續的資料流還是有計劃的資料遷移,Spring XD 提供了一套端對端的管道,去解決資料的接收,處理,分析群組織。

在1.1 GA 版本的釋出中,Spring XD 添加了對項目的Reactor,RxJava和Spark Streaming的支援,實作了對流處理的功能。包括現存的對Spring 批處理,Hadoop任務(MR/Hive/Pig,我們還添加了對Sqoop和Spark批處理任務的支援。考慮到Python對大資料的重要性,我們也在Spring XD 流中,內建了Python processor 和 sink 子產品。這些有利于使用者對于不同的場景,選擇合适的工具,使使用者可以使用本地API建構複雜的資料處理管道。

與其他的流處理架構不同,Spring XD的DSL(Domain Specific Language)去掉了編碼的要求,去掉了了如何建立一個Project,IDE,建構腳本或者和資料綁定,用進階配置的語言DSL取代。Spring XD 團隊一直緻力于開發者的效率,在這個平台上,添加了很多對開發者友好的插件和範例。資料流,是由資料管道上的處理單元組成,它可以通過DSL很好的組織起來,内置的管理UI可以用來遠端監控和管理資料流,批處理任務以及叢集。

Spring XD 1.1 GA 提供了數以千計的資料管道組合,不需要任何代碼,就能建構出來。與其他的資料處理架構不同,這個特性由企業級的Spring內建項目所支援,作為市場佔有率的上司者,該項目被普遍看好,即将成為業界标準。

Spring XD的核心,是采用易于擴充的方式建構的。在1.1 GA釋出的版本當中,加入了一個新的開發和貢獻子產品的方法。感謝Spring引導子產品的插件,現在可以選擇Maven或Gradle去綁定你的子產品。通過包含客戶子產品的依賴,你可以通過REST-API部署uber-jar。這些不需要你将現在的運作時關筆,擔心現在正在運作的資料管道。REST-API簡化了流程,裝上的使用者子產品很快就能準備就緒并使用。

因為插件化的架構,Spring XD持續內建架構,以便于簡化Big Data應用的開發。在最新的釋出中,你可以接收Kafka topic(source-adapter)的資料,并且寫入Kafka topics(sink-adapter),也可以将Spring XD內建入Kafka作為一個消息總線。這樣可以讓Spring XD進行資料組織,使你更加集中于業務邏輯當中。

由于我們新加入的Kafka用戶端的API,使用者有了新的選擇,可以在stream級上作partitioning,控制offset,批處理,可靠消息的重新處理等。

1.1 GA 的釋出,也內建了Spark這個頂級的Apache項目,采用out of the box Spark作為一個批處理任務,或者将Spark Streaming作為流處理子產品,你可以建立一個資料管道,使用本地的Spark API,對于一些已經使用Spark的開發者來說,這是一個非常熟悉的過程。同時,對于Spark的新手來說,也可以快速地适應了解數十種輸入和輸出的擴充卡,使用一個子產品化分布式,高容錯的運作時,有利于集中精力在業務需求上。對于單點的崩潰,Spring XD提供了增值服務,重新開機Spark Streaming driver以便從錯誤的場景中恢複。

随着Spring XD 1.1 GA的釋出,開發大資料應用不再是費時和複雜的,我們的目标是去掉應用開發和大資料之間的障礙,減少資料消化到資料查詢的疑慮,真正的實作資料驅動應用。在将來的釋出中,我們會繼續提高開發者的效率,并且一直保持Spring XD是一個核心開放并且可拓展的運作時。

檢視英文原文 https://spring.io/blog/2015/02/12/spring-xd-data-driven-connectivity-within-a-unified-platform