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.

Hilos del Escucha de Apache Kafka

Digamos que tengo 50 tópicos de Kafka, cada uno con 3 particiones, lo que hace un total de 150 particiones. Si tengo un KafkaListener/Consumer configurado para cada una de estas 150 particiones (debido al alto volumen en cada partición), significa que tengo 150 oyentes en ejecución. Según entiendo, cada oyente obtiene su propio hilo. ¿Significa esto que habrá 150 hilos activos en este escenario? Eso parece ser mucho. ¿Hay alguna forma de restringir esto a un número máximo de hilos a la vez (digamos, 20)?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, en este escenario, tener 150 oyentes significaría que hay 150 hilos activos en ejecución. Esto podría convertirse potencialmente en un problema de rendimiento y afectar el rendimiento general del sistema.

    Para limitar el número de hilos activos a un máximo de 20, puede modificar la configuración de ConcurrentKafkaListenerContainerFactory estableciendo la propiedad concurrency en 20. Esta propiedad determina el número de instancias de Contenedor de mensajes Kafka concurrentes para ejecutar.

    Por ejemplo, si está utilizando Spring Kafka, puede configurar ConcurrentKafkaListenerContainerFactory así:

    @Bean
    public ConcurrentKafkaListenerContainerFactory<string, string=""> kafkaListenerContainerFactory () {
        ConcurrentKafkaListenerContainerFactory<string, string=""> factory = new ConcurrentKafkaListenerContainerFactory<> (); 
        factory.setConsumerFactory (consumerFactory ());
        factory.setConcurrency (20); // limitar a 20 oyentes/consumidores concurrentes
        return factory;
    }
    

    Al limitar el número de oyentes/hilos concurrentes, puede evitar posibles problemas de rendimiento y garantizar que el sistema funcione eficientemente.</string,></string,>

Comments are closed.