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.

Combining Eventos Kafka que se producen en momentos muy distintos en el tiempo mediante Kafka Streams.

Antes de comenzar, es importante mencionar que soy nuevo en Kafka Streams y no soy programador de Java. Todo lo que sé es por leer muchos artículos en los últimos días y revisar algunos ejemplos de Tutorial de Kafka.

Tengo un requisito de combinar eventos que ocurren en momentos bastante distintos en el tiempo. Puede que reciba el evento X hoy y el evento Y 3 días después. Pero solo debería producir un nuevo evento Z después de haber recibido X e Y.

Por lo tanto, busco algunos consejos en términos de si Kafka Streams (o cualquier otra herramienta relacionada con Kafka) tendría una forma fácil de manejar mi requerimiento sin involucrar mucho código personalizado. He investigado técnicas de agrupación limitada por tiempo, pero parece que no son adecuadas para mi problema, ya que sería muy difícil adivinar el tamaño de la ventana.

He leído toneladas en estos últimos días y estoy llegando a la conclusión de que terminaré teniendo que hacer todas las combinaciones “a mano”, pero me pregunto si me estoy perdiendo algo ya que soy nuevo en todo este ecosistema. Kafka Streams parece asombroso para muchos otros requisitos que tenemos aquí, simplemente estoy luchando por ver si puedo incluir este escenario particular bajo el paraguas de “kafka streams” o tratarlo como un desarrollo personalizado completamente separado.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Basándome en sus requisitos, parece que necesita realizar una operación de unión en dos o más eventos distintos que ocurren en diferentes momentos. Kafka Streams proporciona una forma sencilla de unir flujos basados en una clave común. En su caso, puede utilizar un identificador único para cada evento como clave y unir los flujos utilizando esta clave.

    Para implementar esto, puede crear un tema de Kafka para cada evento, y cada evento puede tener su propio par clave-valor. Puede utilizar Kafka Streams para consumir estos temas y realizar la operación de unión. Una vez que la unión es exitosa y ambos eventos han llegado, puede producir un nuevo evento Z en otro tema de Kafka.

    Kafka Streams proporciona varios operadores para realizar operaciones de unión, como unión interna, unión izquierda y unión externa. Puede elegir el operador adecuado en función de sus requisitos. Además, puede establecer una ventana de tiempo para la operación de unión para asegurarse de que los eventos que lleguen después de un cierto período de tiempo no se consideren para la unión.

    En general, Kafka Streams se puede utilizar para implementar su requisito sin necesidad de código personalizado. Sin embargo, es necesario tener un buen entendimiento de Kafka Streams y sus operadores para implementar esto de manera eficiente.

Comments are closed.