`
can_do
  • 浏览: 258450 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Storm和Akka的比较

阅读更多
1.【Storm】==>tuple || bolt || spout || topology
Storm is a distributed, real-time computation system. On a Storm cluster, you execute topologies, which process streams of tuples (data).
  Each topology is a graph consisting of spouts (which produce tuples) and bolts (which transform tuples).
  Storm takes care of cluster communication, fail-over and distributing topologies across cluster nodes.
2.【Akka】==>message || actor ||
Akka is a toolkit for building distributed, concurrent, fault-tolerant applications. In an Akka application, the basic construct is an actor;
actors process messages asynchronously, and each actor instance is guaranteed to be run using at most one thread at a time,
making concurrency much easier. Actors can also be deployed remotely. There’s a clustering module coming,
which will handle automatic fail-over and distribution of actors across cluster nodes.
3.compare ==>
共同点:对象都需要序列化,Storm中基本单元是tuple,也就是data,其中包括的对象必须是可序列化的;Akka中基本单元是message,其中包括的对象必须是可序列化的;
不同点:
>>>Storm必须发送消息到指定的channel,即单向的,one-way,而Akka可以发送给任意的Actor,即可以是双向的,
>>>Akka可以有上百万的actor,Storm中bolts数量期望尽量小;设计原因:Actor是共享线程的,而每个一个bolt使用的是专有线程,
   这也正说明了actor可以很多,而bolt要尽量少;
>>>Storm具备out-of-the-box,保证消息的分发,
==>If all tuples aren’t acknowledged, the tuple will be replayed.==>如果所有的tuple都没有应答,则tuple将会重发;
>>>Storm的集群管理更高级,自动fail-over,自动在整个集群上对worker进行负载,基于zookeeper,而akka的集群模块正在开发中;
>>>Storm中的通讯层,topology,是一个静态的、预定义的;而在Akka中,通讯模式可以随时改变,整体上是动态的,actor可以发送消息到其他actor,发送到任何地址(ActorRefs)

【小结】:So overall, Storm implements a specific range of usages very well, while Akka is more of a general-purpose toolkit.
总体而言,Storm是一个很好的实现了指定的使用范围的系统,而Akka更是一个一般意义上的工具,你可以在Akka上构建一个类似Storm的系统。

【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    chill:Kryo 序列化库的 Scala 扩展

    寒意 扩展,包括序列化程序和一组类,以简化 Kryo 在 Hadoop、Storm、Akka 等系统中的配置。兼容性版本之间不保证序列化兼容性,因此,我们不建议将其用于长期存储。 序列化高度依赖于 scala 版本兼容性和底层 Kryo ...

    iot-masterclass

    使用该存储库中的实验室,您将学习如何使用Spark,Storm,Kafka,Akka,Hbase和Hive等工具在Hortonworks Data Platform(HDP)上构建实时事件处理应用程序。 这个主类有多个部分,这些部分是相互构建的。 通过按...

    实时计算-流数据处理系统简介与简单分析.docx

    银河流数据处理平台是一个基于actor模型的分布式流数据计算框架,采用akka作为底层支持,它能处理实时流数据和静态数据,提供灵活的实时数据输出接口,广泛应用于交易、浏览和搜索日志的实时计算。同时,淘宝还利用...

    Scala在挖财的应用实践-infoq.pdf

    在数据存储方面,MySQL和Hbase是主要的技术选择,对于消息队列和实时计算场景,挖财使用了Kafka和Storm。日志及监控系统方面,挖财选择了ELK(Elasticsearch, Logstash, Kibana)和Zabbix。此外,挖财决定放弃...

    拓扑包

    Java的RMI (Remote Method Invocation) 和Akka等框架可以帮助开发者构建分布式系统,并需要理解拓扑概念来处理节点间的依赖和通信。 5. **数据流分析**:在处理实时数据流或事件驱动的应用中,拓扑可以用来描述数据...

    大数据资源整理.docx

    - **Tuktu**:基于Scala、Akka和Play构建的批处理和流计算平台。 - **Twitter Scalding**:基于Cascading的Scala库,用于MapReduce任务。 - **Twitter Summingbird**:结合Scalding和Storm进行流式MapReduce。 -...

    google、facebook、Twitter、eBay、腾讯、淘宝技术发展历程

    Twitter初期采用Ruby on Rails,后来转向Scala和Java,构建了基于Akka框架的“Storm”实时处理系统,以处理每秒数十万条的推文流。 eBay作为电子商务先驱,从最初的拍卖网站发展为全球交易市场,其技术架构也经历了...

    Learning Apache Flink.pdf

    除此之外,文档还可能会探讨Flink与其它数据处理工具比如Apache Kafka和Apache Storm相比的优点,以及它如何适应不同的应用场景。Flink的设计允许它能够处理各种不同类型的数据流,包括事件流、批处理数据以及它们...

    采用多种方式实现词频统计

    一、利用Java程序实现词频统计 二、利用Scala程序实现词频统计 ...四、利用Akka和Scala实现词频统计 五、利用MapReduce实现词频统计 六、利用Hive实现词频统计 七、利用Storm实现词频统计 八、利用Spark实现词频统计

    Scala第十章节1

    val arrBuffer = ArrayBuffer("hadoop", "storm", "spark") // 创建一个包含三个元素的变长数组 ``` 变长数组可以通过`+=`、`-=`、`++=`和`--=`操作符进行元素的添加、删除和追加。 3. **元组**:元组是Scala中用于...

    淘宝开放平台java源码-streaming:流媒体

    Akka 构建的轻量级实时分布式流引擎。 [Scala/Java] - 基于 Kafka(消息传递、存储)和 YARN(容错、处理器隔离、安全和资源管理)构建的分布式流处理框架。 [Scala] - 可以轻松构建可扩展的容错流应用程序。 ...

    淘宝开放平台java源码-awesome-streaming:精选的流媒体框架、应用程序等列表

    Storm 之于流处理,就像 Hadoop 之于批处理一样。 [Java] - 生产中使用的 Uber 流分析框架 [Python] - 流处理库,将思想从 Kafka Streams 移植到 Python [Scala] - 基于 Akka 构建的轻量级实时分布式流引擎。 [Java]...

    大数据技术分享 大数据技术深入浅出 共39页.pdf

    - **Akka**:用于构建高度并发、分布式和容错系统的工具包。 ### Hadoop简介 - **起源**:Hadoop由Doug Cutting创立,灵感来源于Google的论文,特别是关于GFS(Google文件系统)、MapReduce和BigTable的研究。 - *...

    使用SMACK堆栈进行快速数据分析

    为了解决这一问题,业界提出了Lambda架构,它结合了“快”(如Apache Storm)和“慢”(如Hadoop)两种处理框架,但这种架构可能导致代码冗余和数据集成复杂性。 SMACK堆栈应运而生,它是一个更优化的解决方案,...

    节目发行

    结合Storm或Spark Streaming,可以实现实时分析和响应。 文件名"ProgramacaoDistribuida-main"可能暗示了项目的核心部分涉及分布式编程。在Java中,可以使用Hadoop、Apache Spark或者Akka框架进行分布式计算,处理...

Global site tag (gtag.js) - Google Analytics