Intégration de la découverte et de l'enregistrement de services avec API7 Enterprise
June 13, 2024
Avec l'adoption généralisée de l'architecture des microservices, les relations entre les services deviennent de plus en plus complexes. Dans ce contexte, la découverte de services est particulièrement importante, car elle permet aux services de se localiser et d'interagir dynamiquement les uns avec les autres.
API7 Enterprise, en tant que plateforme de gestion d'API riche en fonctionnalités, peut s'intégrer de manière transparente avec les registres de découverte de services pour réaliser la découverte automatique et le routage intelligent des services en amont.
Qu'est-ce que la découverte de services ?
La découverte de services est un mécanisme permettant de détecter automatiquement les instances de services et leurs adresses au sein d'un réseau, afin que d'autres services ou clients puissent les trouver et communiquer avec eux. Dans les systèmes distribués modernes et l'architecture des microservices, la découverte de services est un composant crucial, car elle permet la localisation et la connexion dynamiques aux services sans avoir à coder en dur les adresses des services ou à mettre à jour manuellement les configurations.
Les fonctions de la découverte de services
-
Localisation dynamique des services : Dans l'architecture des microservices, les instances de services peuvent démarrer, s'arrêter, migrer ou se mettre à l'échelle de manière dynamique. La découverte de services peut suivre automatiquement ces changements, garantissant que les clients peuvent toujours trouver des instances de services disponibles.
-
Tolérance aux pannes et basculement : Lorsqu'une instance de service tombe en panne, la découverte de services peut détecter son indisponibilité et rediriger les clients vers d'autres instances saines, permettant ainsi le basculement et la haute disponibilité.
-
Simplification de la configuration et de la gestion : Grâce à la découverte de services, les développeurs n'ont pas besoin de configurer et de gérer manuellement les adresses réseau de chaque service. Cela réduit les risques d'erreurs de configuration et simplifie le déploiement et la gestion des services.
La découverte de services dans API7 Enterprise
La découverte de services est souvent utilisée conjointement avec un équilibreur de charge ou une passerelle API pour s'assurer que les requêtes sont réparties uniformément entre plusieurs instances de services, améliorant ainsi le débit et le temps de réponse du système. Dans les systèmes distribués, les instances de services peuvent devenir indisponibles pour diverses raisons, et le mécanisme de découverte de services peut rapidement identifier ces problèmes et rediriger les requêtes vers d'autres instances de services saines via l'équilibreur de charge, garantissant ainsi la haute disponibilité des services.
Dans API7 Enterprise, le concept d'"upstream" étend encore cette flexibilité. En configurant l'upstream comme un registre de services, la passerelle API peut récupérer dynamiquement la liste des instances de services backend et ajuster la stratégie de distribution des requêtes en fonction des besoins. Cela signifie que même lorsque le nombre ou l'état des instances de services change, la passerelle API peut s'adapter rapidement, sans nécessiter de mises à jour manuelles de configuration ou de redémarrages de services.
La collaboration entre la découverte de services et la passerelle API fournit des capacités puissantes de gestion dynamique des services et de contrôle du trafic pour l'architecture des microservices. API7 Enterprise a encore amélioré et étendu cette fonctionnalité, permettant au système d'être plus flexible et efficace pour répondre à divers scénarios et exigences complexes. De plus, avec l'adoption généralisée des technologies cloud-native et de conteneurisation, le déploiement et la mise à l'échelle des instances de services sont devenus plus faciles et plus rapides.
Comment configurer la découverte de services dans API7 Enterprise ?
Ajout de registres de services
Dans le groupe de passerelles, accédez à la page du registre de services, cliquez sur le bouton "Ajouter une connexion de registre de services", et vous verrez le formulaire de connexion.

Dans le formulaire, nous devons remplir les informations de base et les configurations de connexion pertinentes pour le registre de services. Actuellement, API7 Enterprise prend en charge l'intégration des registres de services Kubernetes et Nacos. Ici, nous utiliserons Nacos comme exemple. Sélectionnez "Nacos" comme type de découverte, puis spécifiez comment API7 Enterprise obtiendra le jeton pour l'authentification, ce qui peut être fait via un compte/mot de passe, une clé d'accès et une clé secrète, ou en entrant directement la valeur du jeton.

En plus des configurations d'authentification de base, API7 Enterprise propose également des options de configuration plus fines, telles que le délai d'attente de connexion et le délai d'attente de lecture/écriture. Ces configurations peuvent être ajustées de manière flexible en fonction des besoins réels, évitant efficacement les requêtes en attente prolongée dues à des connexions réseau instables, et réduisant l'utilisation inefficace des ressources système.
Après avoir créé le registre de services, le nouvel élément de connexion apparaîtra immédiatement dans la liste, mais le statut de connexion peut être marqué comme sain après la vérification du système. Grâce à cet élément de connexion, les utilisateurs peuvent vérifier facilement l'état de la découverte de services et les configurations pertinentes du registre de services.
Configuration de la découverte de services dans l'upstream
Le registre de services est une ressource qui appartient au groupe de passerelles. Dans le groupe de passerelles où le registre de services a été créé, tout service publié dans ce groupe de passerelles peut utiliser la configuration de ce registre de services. Nous pouvons configurer l'upstream lors du processus de publication du service ou sur un service déjà publié.
Sélectionnez un modèle de service, publiez-le dans le groupe de passerelles qui vient d'ajouter le registre de services, choisissez d'utiliser la découverte de services comme upstream, puis sélectionnez le registre de services Nacos que nous venons de créer, et choisissez l'espace de noms, le groupe et l'instance spécifiques.
Après la publication du service, vous pouvez consulter le registre de services actuellement configuré sur la page upstream des détails du service, et modifier la configuration de la découverte de services à tout moment.
Voir les services associés, mettre à jour et supprimer les configurations de connexion
Dans la liste des registres de services, via le menu "Plus" à droite, vous pouvez gérer facilement les configurations de connexion, consulter l'historique des connexions, suivre l'utilisation du service, ou supprimer les configurations de connexion qui ne sont plus nécessaires.

La section "Services associés" montre clairement quels services ont modifié leurs configurations de découverte de services, nous permettant d'évaluer l'impact potentiel avant de procéder à des modifications de configuration, évitant ainsi efficacement les risques opérationnels.

Veuillez noter que la mise à jour des configurations de connexion du registre de services affectera tous les services upstream utilisant ce registre. S'il y a déjà des services upstream l'utilisant, vous ne pouvez pas changer le type de découverte du registre ou supprimer directement la connexion. Vous devez d'abord ajuster manuellement les configurations des services upstream pour utiliser d'autres registres ou nœuds, puis effectuer l'opération de suppression.

Conclusion
Nous avons parcouru le concept détaillé de la découverte de services, son rôle et son application dans API7 Enterprise. Grâce à la découverte de services, l'architecture des microservices peut gérer et invoquer dynamiquement les services, améliorant considérablement la flexibilité et la disponibilité du système.
Alors que l'architecture des microservices continue d'évoluer, l'importance de la découverte de services devient de plus en plus évidente. Nous nous attendons à ce que la découverte de services se concentre davantage sur l'intelligence, l'automatisation et la tolérance aux pannes à l'avenir.
API7 Enterprise explorera l'intégration avec plus de types de registres de services, et combinera les vérifications de santé pour atteindre une haute disponibilité encore plus forte, aidant les entreprises à construire des architectures de microservices plus robustes et efficaces.