【问题标题】:Is Kafka ready for production use?Kafka 准备好用于生产了吗?
【发布时间】:2015-03-16 22:58:57
【问题描述】:

我有一个生产应用程序,每天必须处理数 GB 的消息。我非常喜欢 Kafka 的架构和性能;它完全符合我的需求。

我想在某个时候将我的消息传递层替换为Kafka。 0.7.1 版本在稳定性和性能一致性方面是否足够适合生产使用?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    它肯定已经在几家大数据公司中使用,包括 LinkedIn,它是在哪里创建的(后来开源的)和 Tumblr。只有 Tumblr 本身每天处理数 GB 的消息。我敢肯定LinkedIn也在那里。您可以在此处查看当前使用它的已知公司列表:

    https://cwiki.apache.org/confluence/display/KAFKA/Powered+By

    另外,请务必订阅他们的邮件列表,有很多人积极尝试并在生产环境中使用它。

    我确信它可以处理你可以扔给它的任何音量。

    【讨论】:

      【解决方案2】:

      我认为 Kafka 在投入生产之前缺少一个关键功能。

      “如果生产者无法访问任何 Kafka 代理,则将消息刷新到磁盘” 这个问题很久以前就在这里提交了: https://issues.apache.org/jira/browse/KAFKA-156

      当生产者总是必须能够发送事件时,此功能将使完整的 Kafka 事件管道对于某些用例更加健壮。例如,当您跟踪浏览量或点赞按钮的点击时,您不想错过任何事件,即使所有 Kafka 代理都无法访问。

      【讨论】:

      【解决方案3】:

      我必须同意 Dave 的观点,Kafka 是一个很好的工具,但是它缺少一些可以手动完成的基本功能,但是您需要考虑 Kafka 提供了什么。一些缺少的东西是:

      • (正如 Dave 所说)当生产者发送失败时将消息刷新到磁盘
      • 消费者能够跟踪哪些消息已处理(不仅仅是消费),哪些消息在重启时未处理。
      • 监控 - 一种接收系统中实体当前状态的方法,例如生产者中队列的当前大小或代理中的写入/读取速度(这些可以完成,但不是工具的一部分) .

      【讨论】:

        【解决方案4】:

        我使用 kafka 已经有一段时间了。最好使用本机 java 和 python 客户端。

        我费了很大劲才找到合适的 node.js 客户端。从字面上看,使用不同的客户端多次重写我的整个代码,因为它们有很多错误。 最终以 franz-kafka 解决 node.js。

        除此之外,维护消费者偏移量有点困难。它缺少一些很好的功能,例如基于 AMQP 的 Apache Qpid 或 RabbitMQ 中存在的交换

        由于它是分布式的,支持离线消息,性能确实令人印象深刻。我也喜欢它:)

        【讨论】:

          猜你喜欢
          • 2012-04-25
          • 2014-03-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-24
          • 2011-07-14
          • 2015-11-08
          • 2017-12-23
          相关资源
          最近更新 更多