Tous les produits
Search
Centre de documentation

ApsaraMQ for Kafka:Dépannage des erreurs client ApsaraMQ for Kafka

Dernière mise à jour :Sep 23, 2026

Lorsque vous utilisez ApsaraMQ for Kafka, votre client peut signaler des erreurs. Cette rubrique décrit les messages d'erreur courants et leurs solutions.

Erreurs courantes et solutions

Message d'erreur

Langage du client

Cause

Solution

TimeoutException

Java

  • Problème réseau

  • Échec de l'authentification du client (sasl.mechanisms).

Remarque

Cette erreur n'affecte que les instances publiques de ApsaraMQ for Kafka.

  • Vérifiez que le paramètre servers est correctement configuré.

  • Exécutez la commande telnet pour écarter tout problème réseau.

  • Si le réseau fonctionne, vérifiez votre configuration d'authentification en consultant les documents suivants :

    Remarque

    Cette solution s'applique uniquement aux instances publiques de ApsaraMQ for Kafka.

run out of brokers

Go

Authentication failed for user

Python

Leader is not available

Tous

Cette erreur peut survenir temporairement lors de l'initialisation d'un topic. Si elle persiste, le topic n'a peut-être pas été créé.

  1. Connectez-vous à la ApsaraMQ for Kafka console.

  2. Vérifiez si le topic a été créé.

  3. Si le topic n'existe pas, créez-le. Pour plus d'informations, consultez la section Étape 1 : Créer un topic.

leader is in election

array index out of bound exception

Java

Spring Cloud analyse le contenu des messages selon son propre format.

Appliquez l'une des solutions suivantes :

  • Recommandé : Utilisez Spring Cloud à la fois pour produire et consommer des messages.

  • Si vous envoyez des messages par d'autres méthodes, comme l'appel du client Java natif, définissez headerMode sur raw lors de la consommation des messages avec Spring Cloud. Ce paramètre désactive l'analyse du contenu des messages. Pour plus d'informations, consultez le site officiel de Spring Cloud.

No such configuration property: "sasl.mechanisms"

  • C++

  • Clients qui encapsulent C++, tels que PHP et Node.js.

Les modules SASL et SSL ne sont pas installés ou sont mal installés.

Exécutez les commandes suivantes pour installer les modules SASL et SSL :

Remarque

Ces commandes sont destinées à CentOS. Pour les autres systèmes d'exploitation, reportez-vous à leur documentation officielle ou utilisez un moteur de recherche.

  • Installez SSL : sudo yum install openssl openssl-devel

  • Installez SASL : sudo yum install cyrus-sasl{,-plain}

No worthy mechs found

No KafkaClient Entry

Java

Impossible de trouver le fichier de configuration kafka_client_jaas.conf.

Créez le fichier kafka_client_jaas.conf et enregistrez-le dans un répertoire accessible, tel que /home/admin. Les paramètres de connexion de sécurité Java s'appliquent à l'échelle du système et peuvent être configurés de l'une des manières suivantes :

  • Définissez une propriété système :

    • Définissez un paramètre JVM : -Djava.security.auth.login.config=/home/admin/kafka_client_jaas.conf

    • Définissez la propriété dans votre code : System.setProperty("java.security.auth.login.config","/home/admin/kafka_client_jaas.conf")

      Remarque

      Si vous définissez cette propriété dans votre code, assurez-vous qu'elle s'exécute avant le démarrage du client.

  • Modifiez le fichier de propriétés de sécurité Java : Dans le fichier ${JAVA_HOME}/jre/lib/java.security, ajoutez la ligne suivante : login.config.url.1=file:/home/admin/kafka_client_jaas.conf

Pour plus d'informations, consultez le Fichier de configuration de connexion Oracle JAAS.

Error sending fetch request

Java

Le consommateur n'a pas pu récupérer les messages. Les causes possibles incluent :

  • Problème réseau

  • Délai d'expiration de la récupération (fetch timeout)

  1. Vérifiez que le paramètre servers est correctement configuré.

  2. Exécutez la commande telnet pour écarter tout problème réseau.

  3. Si le réseau ne pose pas de problème, un délai d'expiration de la récupération peut en être la cause. Pour résoudre ce problème, ajustez les paramètres suivants afin de limiter les données renvoyées par chaque requête de récupération :

    • fetch.max.bytes : Nombre maximal d'octets renvoyés par le serveur pour une seule requête de récupération.

    • max.partition.fetch.bytes : Nombre maximal d'octets que le serveur renvoie pour une seule partition lors d'une opération de récupération unique.

  4. Vérifiez s'il existe une limitation du trafic côté serveur. Dans la ApsaraMQ for Kafka console, accédez à la page Instance Details et vérifiez les métriques pertinentes.

    • Pour l'accès VPC, vérifiez le trafic de pointe.

    • Pour l'accès public, vérifiez le Public Traffic.

DisconnectException

CORRUPT_MESSAGE

Tous

  • Pour le moteur de stockage cloud : Le moteur de stockage cloud ne prend pas en charge l'idempotence, qui est activée par défaut dans les clients Kafka version 3.0 et ultérieures.

  • Pour le moteur de stockage local : Un message compacté a été envoyé sans clé.

  • Le client utilise une version obsolète de kafka-clients (telle que 0,10.x) qui ne correspond pas à la version du broker (telle que 2.x), ce qui provoque un échec de la vérification CRC lors de la conversion du format des messages.

  • Si vous utilisez un moteur de stockage cloud, définissez enable.idempotence=false sur le client.

  • Pour le moteur de stockage local : Ajoutez une clé au message.

  • Mettez à niveau la version kafka-clients du client pour qu'elle corresponde à la version du broker (version 2.2.0 ou ultérieure recommandée) afin d'éviter la corruption des données causée par la conversion du format de message v1/v2.

read tcp i/o timeout

Go (ou autre)

La connexion réseau entre le consommateur et le broker a expiré, le décalage (offset) du groupe de consommateurs n'a pas été correctement initialisé ou un problème de rééquilibrage (Rebalance) s'est produit.

  1. Vérifiez la connectivité réseau entre le client et l'instance Kafka.

  2. Vérifiez si la version du client est antérieure à 0.10.2. Si c'est le cas, mettez à niveau le client.

  3. Ajustez les paramètres max.poll.interval.ms et session.timeout.ms.

  4. Connectez-vous à la console pour vérifier l'état du consommateur et confirmer que l'accumulation de messages et les décalages (offsets) sont normaux.

Connection terminated during authentication

Tous

L'authentification a été interrompue lorsqu'un cluster ACK ou un autre environnement s'est connecté à Kafka Serverless. Cela est généralement dû à une configuration incorrecte du protocole, à des autorisations insuffisantes ou à des restrictions de politique réseau.

  1. Vérifiez que l'utilisateur RAM est correctement autorisé.

  2. Vérifiez si l'adresse IP du client figure dans la liste d'autorisation de l'instance Kafka.

  3. Assurez-vous que le cluster ACK et l'instance Kafka se trouvent dans le même VPC.

  4. Vérifiez si le groupe de sécurité autorise le trafic sur le port 9094.

  5. Confirmez que la politique ACL accorde à l'utilisateur SASL l'accès aux topics et groupes de consommateurs concernés.

  6. Essayez de changer d'endpoints ou de ports pour tester la connectivité, et vérifiez si la configuration du protocole client est correcte.

Connection to node -1 could not be established

Tous

Le client ne peut pas établir de connexion avec le nœud Kafka. Cela est généralement dû à des problèmes réseau, à l'absence de configuration de la liste d'autorisation ou à une configuration incorrecte de l'accès au réseau public.

  1. Vérifiez la connectivité réseau : Assurez-vous que la machine cliente (comme une instance ECS) et l'instance Kafka se trouvent dans le même VPC. Si elles ne sont pas dans le même VPC ou si vous utilisez un accès local, assurez-vous que le réseau est connecté.

  2. Vérifiez la configuration de la liste d'autorisation : Assurez-vous que l'adresse IP de sortie du client a été ajoutée à la liste d'autorisation de l'instance Kafka. Vous pouvez exécuter une commande telnet pour tester la connectivité vers le nom de domaine de l'endpoint et le port (comme le port 9092).

  3. Configurez l'accès au réseau public : Si vous devez utiliser l'accès au réseau public, le type de réseau de l'instance doit être Internet/VPC (les instances VPC doivent être mises à niveau pour prendre en charge l'accès Internet). Vous devez utiliser l'endpoint SSL (port 9093). Dans le code client, configurez l'endpoint de réseau public et le certificat SSL, définissez security.protocol sur SASL_SSL et conservez le nom d'utilisateur et le mot de passe inchangés.

Metadata-UNKNOWN_TOPIC_OR_PARTITION ou all brokers failed in fetch topic metadata

Tous

Le topic demandé n'existe pas, la casse du nom du topic ne correspond pas à votre configuration, la création automatique de topics est désactivée, le réseau est inaccessible ou les autorisations ACL sont insuffisantes.

  1. Connectez-vous à la ApsaraMQ for Kafka console et confirmez que le topic est créé sur votre instance et que la casse du nom du topic correspond exactement à votre configuration. La création automatique de topics est désactivée par défaut dans ApsaraMQ for Kafka.

  2. Utilisez la commande telnet pour tester la connectivité réseau vers le nom de domaine de l'endpoint et le port en fonction du type de réseau de l'instance (port 9092 pour l'accès VPC, port 9093 pour l'accès au réseau public avec SSL).

  3. Vérifiez si le compte SASL dispose des autorisations de lecture et d'écriture (autorisations d'accès ACL) sur le topic.

  4. Vérifiez si le groupe de sécurité ou le pare-feu autorise le port sortant requis.

FAQ

Que faire si une connexion via SASL_SSL entre environnements cloud signale que le Group Coordinator n'est pas disponible ou génère une exception NotCoordinatorException ?

Ce problème peut être causé par des problèmes de compatibilité avec des frameworks tiers, tels que Spring Kafka. Nous vous recommandons d'utiliser d'abord le SDK (kit de développement logiciel) officiel Alibaba Cloud pour tester la connexion et vérifier si le problème provient du framework tiers.

Que faire si l'exécution de kafka-topics.sh pour interroger les détails du topic signale une erreur java.lang.OutOfMemoryError: Java heap space ?

Cette erreur de mémoire insuffisante se produit car la JVM du client ne dispose pas de suffisamment de mémoire heap. Augmentez la mémoire heap via une variable d'environnement avant d'exécuter la commande. Nous vous recommandons de définir la mémoire heap à au moins 2 Go. Par exemple :

export KAFKA_OPTS="-Xms2g -Xmx2g"

Exécutez ensuite à nouveau kafka-topics.sh. Nous vous recommandons également de vérifier le nombre de partitions dans le topic, car un nombre excessif de partitions augmente la consommation de mémoire.