Red de conocimientos turísticos - Información de alquiler - Experiencia en la resolución de problemas de uso elevado de memoria de golang sarama kafka

Experiencia en la resolución de problemas de uso elevado de memoria de golang sarama kafka

Entorno:

Fenómeno: la memoria del microservicio de golang ocupa más de 1G. Verifique los registros y encuentre una gran cantidad de registros de errores relacionados con Kafka. Luego verifique el clúster de Kafka y encuentre eso. Uno de los contenedores del nodo Kafka ha muerto.

Pregunte por qué el cliente informa una gran cantidad de errores cuando solo un corredor se bloquea en el clúster de Kafka.

Obtenga mem-1.memprof de la página de administración de beego.

Puede ver que la pila de llamadas es withRecover > backgroundMetadataUpdate.

sarama-cluster: NewClient

¿Por qué NewClient falla cuando solo hay un corredor en el clúster de Kafka?

Mirando los temas en el contenedor kafka, veo que solo hay una Réplica y un Isr. Encontré las instrucciones de configuración oficiales de Kafka, que indicaban que el tema generado automáticamente debe configurarse con el parámetro default.replication.factor para generar 3 réplicas.