Le contenu de cet article est un résumé (étapes détaillées) de la façon de configurer la gestion multi-environnements dans Nacos. Il a une certaine valeur de référence. J'espère qu'il le fera. vous être utile.
Gestion d'environnements multiples
Dans Nacos, il existe plusieurs concepts de différents niveaux de gestion, notamment : ID de données, Groupe, Espace de noms. Tant que vous faites bon usage de la relation entre ces concepts hiérarchiques, vous pouvez réaliser une gestion multi-environnements selon vos propres besoins.
Ensuite, je présenterai plusieurs méthodes d'implémentation qui peuvent être utilisées :
Utilisation de Data ID et de profils pour implémenter
Data ID dans Nacos, nous pouvons le comprendre tel qu'il est le nom du fichier de configuration d'une application Spring Cloud. D'après l'article précédent "Tutoriel de base Spring Cloud Alibaba : Explication détaillée des règles de chargement de la configuration Nacos", nous savons que par défaut le format de nom de Data ID est comme ceci : ${spring.application.name}.properties, c'est-à-dire : Spring Application cloud Fichier de propriétés nommé.
En fait, les règles d'identification des données incluent également une logique environnementale, similaire à la conception de Spring Cloud Config. Lorsque l'application démarre, nous pouvons spécifier le nom de l'environnement spécifique via spring.profiles.active. À ce stade, le client organisera l'ID de données pour obtenir la configuration comme : ${spring.application.name}-${spring.profiles. .active}.propriétés.
En fait, la règle de correspondance la plus originale et la plus courante est la suivante : ${spring.cloud.nacos.config.prefix}-${spring.profile.active}.${spring.cloud.config. .extension de fichier}. Le résultat ci-dessus est dû au fait que ${spring.cloud.nacos.config.prefix} et ${spring.cloud.nacos.config.file-extension} utilisent les valeurs par défaut.
Essayez-le
Nous pouvons utiliser les exemples de l'article "Spring Cloud Alibaba Basic Tutorial: Using Nacos as a Configuration Center" (disponible dans l'entrepôt à la fin de l'article) Comme base, expérimentons cette méthode de configuration qui distingue les environnements.
Étape 1 : Tout d'abord, créez le contenu de configuration de deux environnements différents dans Nacos selon cette règle. Par exemple :
Comme indiqué ci-dessus, nous avons défini deux configurations d'environnement indépendantes pour DEV et TEST pour l'application alibaba-nacos-config-client. Nous pouvons y définir différentes valeurs de contenu afin de pouvoir vérifier ultérieurement si la configuration correcte est réellement chargée.
Étape 2 : Dans le fichier de configuration de l'application alibaba-nacos-config-client, ajoutez la configuration de l'environnement : spring.profiles.active=DEV
Étape 3 : Démarrez l'application, nous peut voir le fichier de configuration chargé imprimé dans le journal :
2019-01-30 15:25:18.216 INFO 96958 --- [ main] o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'alibaba-nacos-config-client-DEV.properties', group: 'DEFAULT_GROUP'
Utilisation du groupe pour implémenter
Le groupe est un concept important utilisé dans Nacos pour la gestion de la collecte des ID de données. Par conséquent, si nous considérons la configuration d’un environnement comme un ensemble, nous pouvons alors réaliser une gestion de configuration de différents environnements. Il n'y a pas de réglementation fixe pour l'utilisation de Group, donc lorsque nous l'utilisons réellement, nous devons le faire en fonction de nos besoins spécifiques, qui peuvent être la gestion de plusieurs environnements en termes d'exploitation et de maintenance de l'architecture, ou la gestion des paramètres de différents modules. en affaires. Afin d'éviter les conflits, nous devons établir certains plans dès le début de la conception de l'architecture. Ici, parlons d'abord de l'implémentation spécifique de la façon d'utiliser Group pour implémenter la gestion de configuration multi-environnements.
Essayez-le vous-même
Première étape : Tout d'abord, dans Nacos, créez le contenu de configuration de deux environnements différents en distinguant le groupe. Par exemple :
Comme indiqué ci-dessus, nous avons défini deux configurations indépendantes de l'environnement DEV et de l'environnement TEST pour l'application alibaba-nacos-config-client. Ces deux correspondances sont différentes de la méthode précédente. Les ID de données sont exactement les mêmes, seul le GROUPE est différent.
Étape 2 : Dans le fichier de configuration de l'application alibaba-nacos-config-client, ajoutez la configuration spécifiée du groupe : spring.cloud.nacos.config.group=DEV_GROUP
Étape 3 : Démarrez l'application, nous pouvons voir que le fichier de configuration chargé est imprimé dans le log :
2019-01-30 15:55:23.718 INFO 3216 --- [main] o.s.c.a.n.c.NacosPropertySourceBuilder : Loading nacos data, dataId: 'alibaba-nacos-config-client.properties', group: 'DEV_GROUP'
Utilisation de Namespace pour implémenter
Namespace devrait apparaître pour la première fois dans cette série de tutoriels . Jetons d'abord un coup d'œil à la description officielle du concept : utilisé pour l'isolation de configuration granulaire des locataires. Les configurations du même groupe ou ID de données peuvent exister dans différents espaces de noms. L'un des scénarios courants de Namespace est la différenciation et l'isolation des configurations dans différents environnements, comme l'isolation des ressources (telles que les configurations et les services) entre les environnements de développement et de test et les environnements de production.
Dans l'introduction officielle, il est introduit qu'il peut être utilisé pour l'isolation environnementale. Essayons !
Essayez-le vous-même
Première étape : Tout d'abord, créez plusieurs espaces de noms en fonction du nom de l'environnement dans Nacos. Par exemple :
Étape 2 : En haut de la liste de configuration, vous pouvez voir qu'en plus de Public, plusieurs autres Namepsace viennent d'être créés. Créez du contenu de configuration pour l'application alibaba-nacos-config-client dans les espaces DEV et TEST respectivement :
Étape 3 : Dans le fichier de configuration de l'application alibaba-nacos-config-client, ajoutez la configuration spécifiée de Namespace, par exemple : spring.cloud.nacos.config.namespace=83eed625-d166-4619-b923-93df2088883a .
Il est à noter ici que la configuration de l'espace de noms n'utilise pas le nom, mais l'ID de l'espace de noms.
Étape 4 : Démarrez l'application et vérifiez si le contenu renvoyé est correct en accédant à l'interface localhost:8001/test. De cette manière, la version actuelle du journal ne génère pas d'informations relatives à l'espace de noms et ne peut donc pas être utilisée comme base pour déterminer le contenu à charger.
Réfléchir profondément
Ci-dessus, nous avons utilisé plusieurs dimensions différentes dans la fonction de gestion de configuration Nacos pour réaliser une gestion de configuration multi-environnements. En termes de résultats, quelle que soit la méthode utilisée, elle peut répondre aux besoins, mais laquelle est la meilleure ?
Le premier type : réalisé via Data ID et profil.
Avantages : Cette méthode est très similaire à l'implémentation de Spring Cloud Config. Les utilisateurs qui ont utilisé Spring Cloud Config peuvent y accéder sans aucun sentiment de désobéissance. Puisque les règles de dénomination sont similaires, elles doivent être modifiées. à partir de Spring Cloud Config La migration est également très simple.
Inconvénients : Cette méthode rendra le contenu de configuration très confus lorsqu'il y a de nombreux projets et environnements. Vous verrez une variété d'applications différentes dans la liste de configuration, et les configurations des différents environnements sont entrelacées, ce qui est très défavorable à la gestion.
Suggestion : utilisez-le lorsque le projet est petit, ou vous pouvez le combiner avec Group pour effectuer une planification fractionnée du projet en fonction de l'entreprise ou de la structure organisationnelle.
Deuxième type : mis en œuvre via le Groupe.
Avantages : La configuration de chaque application est isolée par environnement via Groupe. Il est très pratique d'utiliser la fonction de recherche de Data ID et Group pour visualiser la configuration respectivement à partir de la latitude de l'application et de la latitude de l'environnement.
Inconvénients : Comme il occupera la latitude du Groupe, vous devez planifier l'utilisation du Groupe. Après tout, cela peut entrer en conflit avec certains groupes de configuration de l'entreprise.
Suggestion : Bien que cette méthode soit structurellement meilleure que la précédente, elle peut néanmoins créer une certaine confusion. L'essentiel est de planifier et de contrôler la gestion du Groupe.
La troisième méthode : via Namespace.
Avantages : La méthode officiellement recommandée utilise Namespace pour distinguer différents environnements, libérant ainsi la liberté de Group, ce qui permet à l'utilisation de Group de se concentrer sur la gestion de groupe au niveau de l'entreprise. Dans le même temps, les espaces de noms sont également affichés en groupes sur la page de contrôle Nacos. Différentes configurations d'environnement peuvent être isolées sans recherche, ce qui est très simple à utiliser.
Inconvénients : Il n'y a aucune lacune. Il se peut qu'il introduise un concept supplémentaire et oblige les utilisateurs à le comprendre.
Suggestion : L'utilisation directe de cette méthode vous évitera des soucis à long terme. Même s'il se peut que pour une petite équipe avec peu de projets, les première et deuxième méthodes suffisent, mais que se passe-t-il si elle s'agrandit plus tard ?
Remarque : Quelle que soit la méthode utilisée. Pour la configuration de l'environnement spécifié (spring.profiles.active=DEV, spring.cloud.nacos.config.group=DEV_GROUP, spring.cloud.nacos.config.namespace=83eed625-d166-4619-b923-93df2088883a), effectuez ne pas le configurer dans le fichier bootstrap.properties de l'application. Utilisez plutôt -Dspring.profiles.active=DEV pour le spécifier dynamiquement dans la commande de démarrage du script de publication, ce qui sera plus flexible !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!