Escalado de mensajes con Kafka

IBM® App Connect Enterprise ofrece tres formas de aumentar el rendimiento de los flujos de mensajes al consumir mensajes de un servidor de Kafka.

Aumento de instancias adicionales

Puede aumentar el número de instancias adicionales para un flujo estableciendo el valor de Additional instances en la pestaña Instancias del nodo KafkaConsumer nodo. El aumento del número de instancias adicionales permite la ejecución en paralelo de los mensajes Kafka. Los mensajes que se reciben de Kafka se distribuyen entre estas instancias, lo que permite un procesamiento concurrente.

Caso práctico :
Flujos que realizan un procesamiento intensivo por mensaje.

Efecto :
Los mensajes se reparten entre varias instancias de flujo para su ejecución en paralelo. El uso de instancias adicionales puede provocar la pérdida del orden de los mensajes, a menos que la propiedad Commit message offset to Kafka se establezca en Transactionally en la pestaña Transactionality del nodo KafkaConsumer del nodo.

Despliegue de flujos múltiples

Puede desplegar varios flujos que utilicen KafkaConsumer nodos que estén configurados con el mismo Consumer group ID y suscritos al mismo Topic name en la pestaña Básico del nodo KafkaConsumer nodo. Estos flujos forman colectivamente un grupo de consumidores Kafka, y cada flujo establece su propia conexión con Kafka para extraer mensajes de forma independiente.

Caso práctico :
Escalado de la ingesta de mensajes a través de múltiples flujos.

Efecto :
Cada flujo actúa como consumidor dentro del mismo grupo, aumentando el paralelismo en el consumo de mensajes.

Kafka Nodo de Conexiones Propiedad

En la pestaña Avanzado del nodo KafkaConsumer nodo, puede configurar la propiedad Kafka connections . Por defecto, esta propiedad está establecida en 1. Aumentar este valor permite que un único flujo establezca múltiples conexiones de consumidor a Kafka, todas dentro del mismo grupo de consumidores.

Caso práctico :
Gran volumen de mensajes con necesidades de escalado flexible.

Efecto :
Se crean varias conexiones Kafka por flujo, lo que permite un mayor rendimiento.

Cada conexión Kafka recibe su propio conjunto de particiones, asignadas por Kafka. Por lo tanto, aumentar el número de conexiones puede mejorar el paralelismo en el consumo de mensajes. Sin embargo, si el número de conexiones supera el número de particiones, Kafka devuelve un error, ya que no puede asignar más consumidores que particiones disponibles.

Este método puede combinarse con instancias adicionales para obtener la máxima escalabilidad. Por ejemplo:
  • Aumentar Kafka Conexiones para extraer más mensajes simultáneamente.
  • Aumente las Instancias Adicionales para procesar esos mensajes en paralelo.
Para obtener más información sobre cómo configurar y usar un nodo KafkaConsumer, consulte los temas Nodo KafkaConsumer y Consumo de mensajes de Kafka.