Cómo escribir a los consumidores de Kafka: subprocesos individuales o subprocesos múltiples

He escrito un solo consumidor de Kafka (usando Spring Kafka), que lee de un solo tema y es parte de un grupo de consumidores. Una vez que se consume un mensaje, realizará todas las operaciones posteriores y pasará al siguiente desplazamiento del mensaje. He empaquetado esto como un archivo WAR y mi canalización de implementación lo lleva a una sola instancia. Con mi canal de implementación, podría implementar este artefacto en varias instancias en mi grupo de implementación.

Sin embargo, no puedo entender lo siguiente, cuando quiero múltiples consumidores como parte de mi infraestructura:

Realmente puedo definir varias instancias en mi grupo de implementación y hacer que este WAR se ejecute en todas esas instancias. Esto significaría que todos ellos están escuchando el mismo tema, son parte del mismo grupo de consumidores y en realidad dividirán las particiones entre ellos. La lógica descendente funcionará tal cual. Esto funciona perfectamente bien para mi caso de uso, sin embargo, no estoy seguro, si este es el enfoque óptimo a seguir.

Leyendo en línea, encontré recursosaqu yaqu, donde las personas están definiendo un solo hilo de consumidor, pero internamente, creando múltiples hilos de trabajo. También hay ejemplos en los que podríamos definir múltiples subprocesos de consumidores que hacen la lógica descendente. Pensando en estos enfoques y asignándolos a entornos de implementación, podríamos lograr el mismo resultado (como podría hacerlo mi solución teórica anterior), pero con menos máquinas.

Personalmente, creo que mi solución es simple, escalable pero podría no ser óptima, mientras que el segundo enfoque podría ser óptimo, pero ¿quería saber sus experiencias, sugerencias o cualquier otra métrica / restricción que debería considerar? Además, estoy pensando que con mi solución teórica, podría emplear máquinas simples como consumidores de Kafka.

Mientras lo sé, no he publicado ningún código, avíseme si necesito mover esta pregunta a otro foro. Si necesita ejemplos de código específicos, también puedo proporcionarlos, pero no pensé que fueran importantes, en el contexto de mi pregunta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta