Kafka是否已准备好投入生产?

时间:2012-08-26 13:24:06

标签: apache-kafka

我有一个生产中的应用程序,每天必须处理几千兆字节的消息。我喜欢卡夫卡的建筑和表演;它非常符合我的需求。

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

4 个答案:

答案 0 :(得分:13)

它已经在几家大数据公司使用,包括LinkedIn,它在那里创建(后来开源)和Tumblr。 Just Tumblr本身每天处理许多千兆字节的消息。我相信LinkedIn也在那里。您可以在此处查看当前已知的公司列表:

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

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

我确信它可以处理你可以投入的任何音量。

答案 1 :(得分:10)

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

“如果制作人无法联系任何Kafka经纪人,请将邮件刷新到光盘” 这个问题很久以前在这里提出: https://issues.apache.org/jira/browse/KAFKA-156

当生产者始终必须能够发送事件时,此功能将使完整的Kafka事件pipline对于某些用例更加健壮。例如,当您跟踪综合浏览量或类似按钮点击并且您不想错过任何事件时,即使所有Kafka经纪人都无法访问。

答案 2 :(得分:3)

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

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

答案 3 :(得分:2)

我已经使用过kafka很长一段时间了。使用本机java和python客户端将是首选。

我不得不努力寻找合适的node.js客户端。我使用不同的客户端多次重写我的整个代码,因为他们有很多错误。 最后以franz-kafka与node.js结算。

除了保持消费者抵消有点困难。它缺少一些很好的功能,比如基于AMQP的Apache Qpid或RabbitMQ中存在的交换

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