Tengo 6 particiones en un tema y tengo una aplicación nestjs ejecutándose en Kubernetes con 6 réplicas. La idea es asignar cada partición a 1 réplica. Cada vez que presiono una nueva compilación, obtengo el siguiente error de 3 de 6 réplicas, mientras que otras 3 obtienen los temas asignados.
ERROR [ClientKafka] ERROR [Consumer] Crash: Error: value should be an instance of Encoder {"timestamp":"2022-05-31T09:00:48.617Z","logger":"kafkajs","groupId":"myapp-kafka-staging-client","stack":"Error: value should be an instance of Encoder\n at Encoder.writeEncoder (/home/node_modules/kafkajs/src/protocol/encoder.js:255:13)\n at /home/node_modules/kafkajs/src/protocol/encoder.js:325:18\n at Array.forEach (<anonymous>)\n at Encoder.writeArray (/home/node_modules/kafkajs/src/protocol/encoder.js:316:13)\n at /home/node_modules/kafkajs/src/consumer/assignerProtocol.js:51:44\n at Array.map ()\n at Object.encode (/home/node_modules/kafkajs/src/consumer/assignerProtocol.js:50:33)\n at /home/node_modules/@nestjs/microservices/helpers/kafka-reply-partition-assigner.js:108:78\n at Array.map ()\n at KafkaReplyPartitionAssigner.assign (/home/node_modules/@nestjs/microservices/helpers/kafka-reply-partition-assigner.js:106:40)"}Aquí está la configuración de mi cliente:
retry: { retries: 8, initialRetryTime: 1, maxRetryTime: 30000, }, connectionTimeout: 10000, authenticationTimeout: 10000,Mi configuración de consumidor:
maxWaitTimeInMs: 100, sessionTimeout: 120000, heartbeatInterval: 90,sessionTimeout es bastante alto porque estoy consumiendo algunos servicios con una latencia más alta, heartbeatInterval es bajo porque lo he mantenido por debajo de maxWaitTimeInMs y maxWaitTimeInMs es de 100 ms porque quiero evitar el procesamiento de solicitudes simultáneas.
Por favor, ayúdame con este problema.
Saludos