Dépannage : plan asynchrone
Publications, abonnements, isolation des canaux et chiffrement par champ : le symptôme, sa cause et quoi faire.
DépannageExploitationDepuis la version 1.5.0
Sur cette page
Guide d'exploitation : configurer, déployer et observer la passerelle. Ce que fait la fonctionnalité côté produit : guide produit ; l'appeler : guide développeur.
Les refus et erreurs de l'écouteur Kafka (clients Kafka natifs) ont leur propre tableau : Clients Kafka : référence.
Publier et consommer
| Symptôme | Cause | Action |
|---|---|---|
POST d'une porte x-flexway-publish : 504 upstream_timeout |
Le courtier n'a pas accusé dans le budget : issue inconnue, le message a pu être écrit | Renvoyer avec la même Idempotency-Key ; vérifier la santé du courtier, élargir timeout |
503 overloaded sur une publication |
Le tampon max_in_flight du courtier est plein : il accuse moins vite qu'on ne publie |
Lire flexway_async_publish_duration_seconds ; relever max_in_flight ou la capacité du courtier |
502 upstream_error sur une publication |
Le courtier a refusé : ACL, sujet absent (la passerelle n'en crée jamais), message rejeté ; AMQP : aucune file ne prend le message | Créer le sujet du tenant, accorder l'écriture au principal de la passerelle, lier une file à l'échange |
Démarrage refusé : is consumed and isolates no tenant |
Une consommation sur un canal ni lié au tenant, ni filtré sur l'en-tête tenant |
x-flexway-bind: tenant sur un paramètre du canal, ou l'en-tête tenant dans headers de chaque message |
| Un abonné WebSocket reçoit un message deux fois | Au moins une fois : pas d'accusé dans ack_timeout, ou une coupure avant l'accusé |
Accuser chaque id ({"ack": "<id>"}) ; dédupliquer sur source + id |
Démarrage refusé : reads the schema registry's wire format and is isolated by the tenant attribute alone |
Une consommation d'un canal au format filaire du registre filtrée sur l'attribut tenant, sans liaison : les messages d'un producteur Kafka ordinaire n'ont aucun attribut |
Lier le canal au tenant (x-flexway-bind: tenant, adresse {tenant}.<sujet>), ou le déclarer public (x-flexway-public: true) |
Chiffrement par champ
| Symptôme | Cause | Action |
|---|---|---|
Démarrage refusé : kms.key "...": kms key absent or unusable |
La clé du chiffrement par champ n'existe pas au KMS (faute de frappe) ou ne peut pas envelopper (clé Vault non dérivée) | Corriger kms.key ou créer la clé - Chiffrement par champ |
Consommateurs Kafka en CORRUPT_MESSAGE après un changement de kms.key |
Les enregistrements écrits avant nomment l'ancienne clé | La déclarer dans kms.previous_keys - Chiffrement par champ |