有很多流媒体处理的困扰之谈

杂记

近年,我有种感觉,关于”开源×流媒体处理”的实现正在大量涌现出来。仅凭想象,我能够列举以下几个例子。

    • Storm

 

    • Samza

 

    • Spark Streaming

 

    • Flink

 

    • Apex

 

    Kafka Streams

考虑到这股潮流的源头,不仅仅是由于大数据和物联网等背景下需求的增加,还有分布式处理平台以Hadoop为首的成熟化趋势可能也是原因之一吧。

这些产品的目标方向大体相同,通常伴随着以下关键词。

    • at least onceなセマンティクス

 

    • 分散処理 (主にHadoop/YARN上で動作する)

 

    • 耐障害性

 

    • ステートフルな処理 (Window処理)

 

    • (ある程度の)順序性の担保

 

    機械学習

人们想要比较已经实施的东西是人的本性,如果试着去寻找的话,可以发现Samza的官方文档(http://samza.apache.org/learn/documentation/0.10/comparisons/introduction.html)以一个合理的标准来比较产品。比较的标准包括Durability/Ordering/StateManagement/Parallelism/Buffering等等。在日语文档中,我觉得昨天的Kafka Meetup#1中@kimutansk的资料总结得非常好。http://kafka-apache-jp.connpass.com/event/32293/presentation/

就我所知(或者说我只有接触过Spark Streaming和Kafka Streams这些较为正式的),大致上有以下的挑战感。

    • プログラミングの前に抽象化された概念(KTable とかDStreamとか)を理解しなければいけない

 

    • 基盤の特徴を理解したうえでの実装が必要(例: Idemponentにして exactly onceを実現する)

 

    基盤側の都合もプログラムでケアしなければならない(チェックポイントとか)

日本的SI行业里很难找到那样的人才,我真心觉得。如果身边有的话,那就会非常重要。嗯,不要寄望于SI供应商,自己培养人才吧。

考虑到有很多产品可供选择时,如果想到最推荐的一个,一般会考虑到它是“后发优势”、“与数据源的协作性极高”以及“具备稳定的开发结构”。

卡夫卡流处理

我认为这样可能不错。哦,对了,我听说了LinkedIn被微软收购的消息。可能没事吧,但我还是开始担心起来了,哈哈。

在那个雨季的夜晚,我会产生这种想法。

广告
将在 10 秒后关闭
bannerAds