【问题标题】:Need advice on suitable message queue for Storm spout需要有关 Storm spout 的合适消息队列的建议
【发布时间】:2013-07-02 14:08:42
【问题描述】:

我正在开发一个原型Lambda system,我的数据通过 Flume 流式传输到 HDFS。我还需要将数据导入 Storm。 Flume 是一个推送系统,而 Storm 更具有拉力,所以我认为尝试将一个 spout 连接到 Flume 是不明智的,但我认为两者之间应该有一个消息队列。这又是一个原型,所以我在寻找最佳实践,而不是完美。我正在考虑将符合 AMQP 的队列作为 Flume 接收器,然后从 spout 中提取消息。

这是一个好方法吗?如果是这样,我想使用在 Flume 世界(作为接收器)和 Storm 世界(作为 spout)中都具有相对强大支持的消息队列。如果我使用 AMQP,那么我假设这让我可以选择使用我想使用的任何符合 AMQP 的队列,对吗?谢谢。

【问题讨论】:

    标签: rabbitmq activemq amqp apache-storm


    【解决方案1】:

    如果您打算使用 AMQP,我建议您坚持使用 AMQP 规范的最终 1.0 版本。否则,当您尝试从以前的版本升级到它时,您会感到有些痛苦。

    【讨论】:

      【解决方案2】:

      您的方法很有意义,但是,对我们来说,符合 AMQP 的问题看起来不那么重要了。我将尝试解释原因。

      我们正在使用 Kafka 来获取数据。主要原因主要是围绕性能和可用性。 AMQP 投诉队列似乎不是为长时间保存信息而设计的,而对于 Kafka,这只是一个定义。这使我们可以长时间保留消息并允许我们轻松“回放”那些消息(因为我们希望消费的消息始终由消费者控制,我们可以一次又一次地消费相同的消息,而无需设置整个用于该目的的系统)。此外,Kafka 的性能是我所见过的任何东西都无法比拟的。

      Storm有一个非常好用的KafkaSpout,其中主要需要注意的是:

      1. 错误报告 - 那里有一些改进。信息并不像人们希望的那样清晰。
      2. 它依赖于 zookeeper(如果你有风暴,它已经存在)并且需要手动为其创建路径。
      3. 根据storm版本,注意使用的Kafka版本。它已记录在案,但很容易被遗漏并导致不清楚的问题。

      【讨论】:

      • +1 到卡夫卡。当前可用的“官方”KafkaSpout 适用于 Kafka 0.7.x(Kafka 的最新稳定版本)和 Storm 0.8 和 0.9。似乎没有可用于 Kafka 0.8 的 spout 实现——我只在 GitHub 上看到了 Chris Curtin 的初稿实现(请参阅 GitHub 上的mailing list message 和他的storm-kafka fork)。
      【解决方案3】:

      您可以先将数据流式传输到代理主题。然后水槽和风暴喷口都可以从该主题中消费。 Flume 有一个 jms 源,可以很容易地从消息代理中使用。一个storm jms spout 让消息进入storm。

      【讨论】:

        猜你喜欢
        • 2018-08-14
        • 2017-02-23
        • 2015-09-20
        • 2010-10-02
        • 2018-11-02
        • 2021-11-15
        • 1970-01-01
        • 1970-01-01
        • 2015-01-26
        相关资源
        最近更新 更多