Tous les produits
Search
Centre de documentation

API Gateway:ZooKeeper

Dernière mise à jour :Aug 09, 2026

Intégrez ZooKeeper à API Gateway pour la découverte de services afin qu'API Gateway achemine automatiquement les requêtes vers les microservices backend enregistrés dans ZooKeeper.

Présentation

Cette rubrique aborde les sections suivantes :

  • Fonctionnement

  • Créer une instance dédiée d'intégration VPC (seules les instances d'intégration VPC prennent en charge ZooKeeper)

  • Déployer le service ZooKeeper et enregistrer une application de microservices

  • Créer un groupe d'API

  • Créer un service backend

  • Créer une API

  • Créer une application et l'autoriser à appeler l'API

  • Déboguer l'API

Fonctionnement

ZooKeeper stocke les données dans une structure arborescente similaire à un système de fichiers. Chaque nœud possède un chemin d'accès unique, tel que /provider/service. Les fournisseurs de services enregistrent les informations des instances de microservices auprès des nœuds de service ZooKeeper. API Gateway écoute ces nœuds, analyse les adresses IP et les ports, et distribue les requêtes client aux instances de microservices backend selon des politiques d'équilibrage de charge.

image
  1. Les fournisseurs de services enregistrent les instances de microservices auprès des nœuds de service ZooKeeper.

  2. API Gateway écoute les nœuds et leurs nœuds enfants en fonction de leurs chemins d'accès. Il analyse les informations des instances de microservices stockées dans les nœuds, telles que l'adresse IP et le numéro de port. API Gateway met en cache les adresses IP et les numéros de port pour réduire la surcharge de communication.

  3. Lorsqu'il reçoit une requête client, API Gateway récupère une adresse IP et un numéro de port depuis son cache, puis transfère la requête au serveur de microservices correspondant. Ensuite, API Gateway reçoit la réponse du serveur et la transmet au client.

  4. Si l'application de microservices subit une modification, par exemple la déconnexion d'une instance ou l'ajout d'une nouvelle instance, ZooKeeper synchronise ce changement avec API Gateway. API Gateway met alors à jour son cache pour garantir la cohérence avec ZooKeeper.

  5. Lors de la réception d'une nouvelle requête client, API Gateway achemine et transfère la requête en fonction des informations mises à jour.

Important

API Gateway communique avec ZooKeeper et les instances de microservices via des réseaux privés virtuels (VPC). Par conséquent, vous devez configurer une adresse interne comme adresse de service de ZooKeeper lors de la création d'une API. Sinon, API Gateway renvoie une exception indiquant une adresse ZooKeeper non valide. Pour la même raison, les URL internes doivent être enregistrées comme URL des applications de microservices backend dans ZooKeeper. Si API Gateway obtient une URL publique depuis ZooKeeper après avoir reçu une requête API, il ne peut pas traiter la requête. À la place, API Gateway renvoie le code d'erreur I504IA. Si API Gateway ne parvient pas à obtenir d'URL de microservice depuis ZooKeeper, il renvoie le code d'erreur I504BA.

Étape 1 : Créer une instance d'intégration VPC

API Gateway communique avec ZooKeeper et les applications de microservices via des réseaux internes. Les instances dédiées classiques ne prenant pas en charge les réseaux internes personnalisés, l'instance d'intégration VPC permet une communication directe entre API Gateway et les VPC des utilisateurs. Pour plus d'informations sur la création d'une instance d'intégration VPC, consultez Instance dédiée intégrée au VPC.

Étape 2 : Déployer le service ZooKeeper et enregistrer une application de microservices dans ZooKeeper

1. Déployez le service ZooKeeper.

ZooKeeper doit être déployé dans le même VPC, la même zone et le même vSwitch que l'instance d'intégration VPC que vous avez créée. Vous pouvez déployer le service ZooKeeper natif sur une instance Elastic Compute Service (ECS) rattachée au vSwitch. L'adresse d'accès de ZooKeeper sera alors définie sur Adresse IP interne de l'instance ECS : Port de ZooKeeper. Lors de la création de l'instance ECS, définissez le paramètre Réseau sur VPC et sélectionnez le même VPC, la même zone et le même vSwitch que ceux choisis lors de la création de l'instance d'intégration VPC.

Remarque

Pour plus d'informations sur le déploiement de ZooKeeper, consultez le Guide de démarrage de ZooKeeper. Pour plus d'informations sur la création d'une instance ECS, consultez Instructions d'achat.

Vous pouvez également utiliser Alibaba Cloud Microservice Engine (MSE) pour déployer un service ZooKeeper. Dans ce cas, définissez le type de réseau sur VPC et sélectionnez le même VPC et le même vSwitch que l'instance d'intégration VPC créée. Une fois le service ZooKeeper déployé, vous pouvez afficher son endpoint dans la liste des instances MSE.

Remarque

Pour plus d'informations sur le déploiement d'un service ZooKeeper à l'aide de MSE, consultez Créer un moteur ZooKeeper.

2. Enregistrez une application de microservices.

Vous devez déployer l'application de microservices dans le même VPC, la même zone et le même vSwitch que l'instance d'intégration VPC que vous avez créée. Cela garantit que l'application de microservices est enregistrée dans le service ZooKeeper et accessible par API Gateway. Vous pouvez choisir de déployer l'application de microservices sur une instance ECS. Cette instance ECS doit être créée dans le même vSwitch que l'instance d'intégration VPC.

Utilisez le format suivant pour les informations sur l'application de microservices enregistrée auprès de ZooKeeper :

{
    "address":"localhost",
    "enabled":true,
    "id":"cb1467f745c64d9f8cbfa5c2bd217cb8",
    "name":"provider",
    "payload":{

    },
    "port":8080,
    "registrationTimeUTC":1699525871398,
    "serviceType":"DYNAMIC",
    "sslPort":443,
    "uriSpec":{
        "parts":[
            {
                "value":"scheme",
                "variable":true
            },
            {
                "value":"://",
                "variable":false
            },
            {
                "value":"address",
                "variable":true
            },
            {
                "value":":",
                "variable":false
            },
            {
                "value":"port",
                "variable":true
            }
        ]
    }
}
Remarque

Pour la structure des données stockées sur les nœuds ZooKeeper, consultez la classe org.apache.curator.x.discovery.ServiceInstance fournie par le projet open source Apache Curator. Notez que uriSpec ne peut pas rester vide. Nous vous recommandons de le configurer comme {scheme}://{address}:{port}. Si vous souhaitez utiliser le protocole HTTPS, configurez l'attribut sslPort.

Important

Des formats de données non valides peuvent empêcher API Gateway d'analyser les adresses backend des instances de microservices. Les applications de microservices enregistrées auprès de ZooKeeper doivent prendre en charge les appels HTTP.

Étape 3 : Créer un groupe d'API

Les API sont gérées par groupes. Créez un groupe d'API avant de créer une API.

  1. Connectez-vous à la console API Gateway.

  2. Dans le volet de navigation de gauche, choisissez Manage APIs > API Groups. Dans le coin supérieur droit de la page, cliquez sur Create Group. Dans la boîte de dialogue qui s'affiche, sélectionnez l'intégration VPC créée, configurez les paramètres Group Name et BasePath, puis cliquez sur Confirm.

Remarque

Une fois le groupe créé, cliquez sur son nom dans la liste pour accéder à la page des détails. Vous pourrez y lier un nom de domaine, modifier les informations de base et changer le type d'instance.

API Gateway attribue automatiquement un nom de domaine public de deuxième niveau à chaque groupe d'API. Ce nom de domaine est réservé uniquement au débogage. Les appels directs d'API utilisant ce nom de domaine sont limités à 1 000 par jour dans les régions de Chine continentale et à 100 par jour dans la région Chine (Hong Kong) et les autres régions hors de Chine continentale. Nous vous recommandons de lier un nom de domaine indépendant à votre groupe d'API. Pour plus d'informations, consultez Lier un nom de domaine personnalisé à un groupe d'API.

Étape 4 : Créer un service backend

Pour créer une API avec Service discovery comme type de service backend, commencez par créer un service backend.

  1. Connectez-vous à la console API Gateway.

  2. Dans le volet de navigation de gauche, choisissez Manage APIs > Backend Services. Dans le coin supérieur droit de la page, cliquez sur Create Backend Service. Dans la boîte de dialogue qui s'affiche, saisissez le nom du service backend et définissez Type sur Service discovery. Une fois le service backend créé, vous pouvez le trouver dans la liste des services backend et cliquer sur son nom pour accéder à la page des détails.

Dans cet exemple, l'environnement Production est sélectionné. Créez un service backend dans l'environnement avant de publier une API. Sur le côté droit de la page, cliquez sur Create pour accéder à la page Define Backend Service.

Saisissez les informations suivantes concernant ZooKeeper et les microservices sur la page Define Backend Service :

  • Service URL : endpoint interne de ZooKeeper. Obligatoire.

  • Namespace : nom du nœud parent qui stocke les informations de l'application de microservices. Obligatoire.

  • Service Name : nom de l'application de microservices. Obligatoire.

Remarque

Le namespace et le service name forment ensemble le chemin d'accès d'un nœud de service. Par exemple, si le chemin du nœud est /provider/service, définissez le namespace sur provider et le service name sur service. Le fournisseur de services peut enregistrer les informations des instances de microservices dans le nœud situé à /provider/service et ses nœuds enfants.

Étape 5 : Créer une API

Dans le volet de navigation de gauche de la console API Gateway, choisissez Manage APIs-APIs. Dans le coin supérieur droit de la page, cliquez sur Create API.

  1. Configurez les informations de base de l'API.

    À cette étape, configurez les informations de base de l'API à créer, y compris le groupe d'API auquel elle appartient, ainsi que son nom, sa méthode d'authentification, son type et sa description. Sélectionnez le groupe d'API créé, choisissez Alibaba Cloud App pour Security Authentication, et sélectionnez Enable AppCode Authentication (Header & Query) pour AppCode Authentication. Vous pouvez spécifier un nom et une description d'API personnalisés.

Remarque

Vous pouvez configurer les paramètres Security Authentication et AppCode Authentication selon vos besoins. Cet exemple fournit uniquement une configuration de référence.

  1. Définissez les requêtes API.

    À cette étape, définissez la manière dont un client (navigateur, application mobile ou système métier) demande votre API. Les paramètres incluent le type de requête, le protocole, le chemin de requête, la méthode HTTP, le mode de requête des paramètres d'entrée et les définitions des paramètres d'entrée. Vous pouvez spécifier le chemin de requête et la méthode HTTP en fonction de vos exigences métier.

  2. Définissez le service backend.

    À cette étape, définissez comment API Gateway mappe et traite les paramètres de requête après réception. Vous pouvez également spécifier l'adresse backend à laquelle API Gateway se connecte. Dans cet exemple, Use Existing Backend Service est sélectionné pour le paramètre Configuration Mode et Service discovery est sélectionné pour le paramètre Backend Service Type. Vous pouvez définir les autres paramètres en fonction de vos exigences métier.

  3. Définissez les réponses pour l'API.

    À cette étape, configurez les informations de réponse pour générer la documentation de l'API, ce qui aide les appelants à mieux comprendre les API. Vous pouvez également spécifier un exemple de réponse réussie et un exemple de réponse d'échec. Dans cet exemple, cette étape est ignorée. Cliquez sur Create.

  4. Publiez l'API.

    Après avoir enregistré les configurations précédentes, vous devez publier l'API. Toutes les configurations effectuées sur une API ne prennent effet qu'après sa publication dans un environnement. Dans cet exemple, le service backend est configuré dans l'environnement de production. Par conséquent, l'API est publiée dans l'environnement de production. Si vous souhaitez publier l'API dans un autre environnement, vous devez d'abord configurer le service backend dans l'environnement de destination. Dans cet exemple, cliquez sur Publish dans le message indiquant la création réussie de l'API. Dans la boîte de dialogue Publish API, définissez le paramètre Stage sur Release, saisissez des remarques, puis cliquez sur Publish.

Étape 6 : Créer une application et l'autoriser à appeler l'API

Une application est l'identité qu'un appelant d'API utilise pour appeler une API. Dans cet exemple, Alibaba Cloud App a été sélectionné pour Security Authentication lors de la création de l'API. Après la publication de l'API, créez une application et autorisez-la à appeler l'API. Pour plus d'informations, consultez Gestion des autorisations.

Étape 7 : Déboguer l'API

API Gateway prend en charge le débogage en ligne. Utilisez cette fonctionnalité pour vérifier qu'une API est correctement configurée avant de la mettre à la disposition des clients.

Sur la page APIs, cliquez sur l'API créée. Dans le volet de navigation de gauche de la page des détails de l'API, cliquez sur Debug API. Si vous avez défini des paramètres de requête, saisissez différentes valeurs pour vérifier que l'API fonctionne comme prévu.

Lors du débogage, assurez-vous d'utiliser l'application autorisée et que l'environnement de débogage correspond à celui dans lequel l'application est autorisée. Sinon, le débogage peut échouer.