es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Evitando una Elección de Líder Sucia de Kafka

Contexto:
Cluster de Kafka de 6 nodos. Alto volumen de lecturas/consumidores y escrituras.

Requisito/deseo:
Muy poco/ningún tiempo de inactividad.

Estado actual:
De vez en cuando (hasta ahora tal vez una vez cada 6 meses/año) ocurre una elección de líder no limpia.

Literatura/Referencias:

  • Descripción de elección de líder no limpia: https://www.datadoghq.com/blog/kafka-at-datadog/#unclean-leader-elections-to-enable-or-not-to-enable

  • Posible solución (dos clusters de Kafka): https://www.datadoghq.com/blog/kafka-at-datadog/#unclean-leader-elections-to-enable-or-not-to-enable

  • Segunda posible solución en https://www.datadoghq.com/blog/kafka-at-datadog/#unclean-leader-elections-to-enable-or-not-to-enable es desactivar la configuración de elección de líder no limpia, pero esto no es aceptable para nosotros, porque en lugar de tener una elección de líder no limpia, cuando la configuración está desactivada una partición podría volverse inaccesible (cita: “Si no puede elegir un nuevo líder, Kafka detendrá todas las lecturas y escrituras en esa partición”). Y requerimos que todos los datos sean accesibles.

  • ¿El nuevo Kafka no requiere ZooKeeper, cierto? ¿Entonces esto no es un problema simplemente actualizando Kafka?

Pregunta:
¿Hay algo inherente a nuestro cluster de Kafka que pueda causar la elección de líder no limpia que podamos evitar? Según la literatura anterior, Datadog parece sugerir simplemente ejecutar dos clusters de Kafka (presumiblemente con una capa de deduplicación que coordine entre los dos), pero por supuesto nos gustaría evitar los costos adicionales que esto conlleva. Causa aproximadamente de 10 a 20 minutos de tiempo de inactividad mientras se resuelve la elección de líder no limpia.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basándonos en la información proporcionada, es posible que no haya un problema inherente con el clúster de Kafka que cause una elección de líder no limpia. Este evento puede ocurrir debido a fallas de red o hardware, u otros problemas fuera del control del propio clúster. Ejecutar dos clústeres de Kafka con una capa de deduplicación podría ser de hecho una solución viable para garantizar un tiempo de inactividad mínimo en caso de una elección de líder no limpia. Sin embargo, esto también conlleva la carga adicional y la complejidad de mantener dos clústeres separados.

    También vale la pena señalar que actualizar a la última versión de Kafka, que no requiere Zookeeper, puede ayudar a mitigar algunos problemas relacionados con la elección de líder no limpia. Sin embargo, no es una garantía y debe ser ampliamente probado antes de implementarse en un entorno de producción. Además, desactivar la elección de líder no limpia puede resultar en otros problemas, como particiones inaccesibles, lo cual puede no ser aceptable para los requisitos establecidos de tiempo de inactividad mínimo y plena accesibilidad a los datos.

Comments are closed.