2012-08-26 8 views
17

Tengo una aplicación en producción que tiene que procesar varios gigabytes de mensajes por día. Me gusta mucho la arquitectura y el rendimiento de Kafka; se adapta perfectamente a mis necesidades.¿Kafka está listo para el uso de producción?

Me gustaría reemplazar mi capa de mensajes con Kafka en algún momento. ¿Es la versión 0.7.1 lo suficientemente buena para el uso de producción en términos de estabilidad y consistencia en el rendimiento?

Respuesta

13

Definitivamente ya se usa en varias compañías de Big Data, incluido LinkedIn, donde se creó (y más tarde se abrió de forma gratuita) y Tumblr. Solo Tumblr maneja muchos gigabytes de mensajes por día. Estoy seguro de que LinkedIn también está muy arriba. Se puede ver una lista de compañías conocidas para usar actualmente aquí:

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

Además, asegúrese de suscribirse a su lista de correo, hay un montón de personas que tratan activamente hacia fuera y lo utilizan en entornos de producción.

Estoy seguro de que puede manejar cualquier volumen que se le pueda arrojar.

2

He usado kafka durante bastante tiempo. El uso de clientes nativos de java y python sería preferible.

Tuve que luchar mucho para encontrar un cliente node.js adecuado. Literalmente reescribí todo mi código muchas veces usando clientes diferentes ya que tenían muchos errores. Finalmente se resolvió con franz-kafka para node.js.

Aparte de eso, mantener las compensaciones del consumidor es un poco difícil. Le faltan algunas buenas características como intercambios que existen en Apache Qpid basado en AMQP o RabbitMQ

Dado que se distribuye, admite mensajes fuera de línea y el rendimiento es realmente impresionante. Yo también lo preferí :)

10

Hay una característica crítica que creo que falta en Kafka antes de que esté lista para producción.

"mensajes a Flushing disco si el productor no puede llegar a cualquier corredor de Kafka" El tema ha sido presentado hace mucho tiempo aquí: https://issues.apache.org/jira/browse/KAFKA-156

Esta característica hace que el voluntad completa pipline caso Kafka aún más robusto para algunos casos de uso cuando el productor siempre tiene que poder enviar eventos. Por ejemplo, cuando realiza un seguimiento de visitas a la página o clics de botones y no quiere perderse ningún evento, incluso si no se puede acceder a todos los intermediarios de Kafka.

+2

1 por señalar este billete – sandris

+1

FYI: Parece que esta función solo se ha corregido en Kafka: https://issues.apache.org/jira/browse/KAFKA-789 – Dave

+1

No, creo que tiene 789 cerrado porque es un duplicado de https://issues.apache.org/jira/browse/KAFKA-156. – sandris

3

Debo estar de acuerdo con Dave, Kafka es una buena herramienta, pero le faltan algunas características básicas que se pueden hacer manualmente, pero luego debe pensar en lo que Kafka ofrece. algunas cosas que faltan son:

  • (Como dijo Dave) Flushing mensajes en el disco cuando el productor deja de enviar
  • Consumidores capacidad de rastrear los mensajes que se manejan (no sólo se consume) y que no era en el caso de un reinicio.
  • Monitoreo: una forma de recibir el estado actual de las entidades en el sistema como el tamaño actual de la cola en el productor o el ritmo de escritura/lectura en los intermediarios (se pueden hacer pero no son parte de la herramienta) .
Cuestiones relacionadas