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.

Consumidor de Kafka de alto rendimiento.

Tenemos el requisito de consumir de un Tema de Kafka. El Tema es proporcionado por el equipo productor y no tenemos control sobre él. El productor publica una gran cantidad de mensajes que nuestro consumidor no puede consumir. Sin embargo, solo necesitamos el 5-10% del volumen producido. Actualmente en el consumidor, deserializamos el mensaje y, en base a ciertos atributos, eliminamos el 90-95% de los mensajes. El consumidor está detrás de 5-10L mensajes la mayor parte del día. Incluso intentamos con 5 consumidores y 30 hilos en cada uno, pero sin mucho éxito.

¿Hay alguna manera en que podamos suscribir al consumidor al Tema con algunos criterios de filtro para que solo recibamos los mensajes que nos interesan?

Cualquier ayuda o orientación sería muy apreciada.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible que el consumidor de Kafka se suscriba al tema con algunos criterios de filtro para que sólo reciba mensajes de interés para el consumidor. Esto se puede lograr utilizando la API de consumidor de Kafka, que proporciona varias opciones para filtrar mensajes según la clave, el valor o los metadatos del mensaje.

    Una forma de lograr esto es utilizar el método ‘subscribe(Pattern pattern)’, que le permite suscribirse a varios temas utilizando una expresión regular. Por ejemplo, si los mensajes de interés tienen un valor específico en un campo determinado, puede utilizar una expresión regular para igualar ese valor y filtrar el resto de los mensajes.

    Otra opción es utilizar el método ‘assign(Collection partitions)’ para asignar manualmente particiones específicas al consumidor que le interesan. Esto permite un control más granular sobre los mensajes que recibe el consumidor.

    En general, el uso de la API de consumidor de Kafka e implementar lógica de filtrado puede reducir significativamente la cantidad de mensajes innecesarios consumidos y mejorar el rendimiento del consumidor.

Comments are closed.