Partage de technologie

Notes d'étude de Grain Mall-23-Composants distribués-SpringCloud Alibaba-Nacos Configuration Center-Exemple simple

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

J'ai déjà appris à utiliser Nacos comme centre d'enregistrement. Dans cette section, nous apprendrons une autre fonction essentielle de Nacos :配置中心

1. Introduction au centre de configuration Nacos

Nacos est une plateforme facile à utiliser pour la découverte dynamique de services et la gestion de la configuration. En tant que centre de configuration, Nacos offre les fonctions et avantages essentiels suivants :

  1. Gestion de configuration dynamique: Nacos permet aux utilisateurs de modifier et de transmettre dynamiquement les informations de configuration sans redémarrer le service, réalisant ainsi des mises à jour de configuration en temps réel.

  2. Configurer le stockage centralisé: Nacos fournit un stockage de configuration centralisé, ce qui rend les informations de configuration faciles à gérer et à maintenir, et évite le problème de la dispersion de la configuration dans différents environnements et systèmes.

  3. Configurer le contrôle de version: Nacos prend en charge le contrôle de version de configuration, qui peut suivre l'historique des modifications de configuration et faciliter les opérations de restauration.

  4. Configurer le partage: Nacos permet le partage de configuration entre les services, améliorant ainsi la réutilisabilité de la configuration et réduisant la redondance.

  5. Configurer l'isolement: Grâce au concept d'espace de noms, Nacos prend en charge l'isolation de la configuration de différents environnements (tels que le développement, les tests et la production) pour garantir que les configurations entre les environnements n'interféreront pas les unes avec les autres.

  6. Configurer l'écoute et le push: Nacos fournit une fonction de surveillance de la configuration. Lorsque la configuration change, il peut activement envoyer des mises à jour au client pour réaliser une mise à jour à chaud de la configuration.

  7. sécurité: Nacos prend en charge le contrôle d'accès à la configuration et la gestion des autorisations pour garantir que seuls les utilisateurs autorisés peuvent accéder ou modifier les configurations.

  8. Prise en charge de plusieurs environnements: Nacos prend en charge une variété d'environnements de déploiement et peut répondre à la gestion de configuration à différentes échelles et besoins.

  9. Intégrer avec Spring Cloud: Nacos est étroitement intégré à Spring Cloud et fournit spring-cloud-starter-alibaba-nacos-config et d'autres composants, simplifiant le processus d'utilisation du centre de configuration Nacos dans les applications Spring Cloud.

  10. Facilité d'utilisation: Nacos fournit une interface utilisateur conviviale, rendant la visualisation, la modification et la gestion des configurations intuitives et simples.

En tant que centre de configuration, Nacos convient à l'architecture de microservices, aux applications cloud natives et aux systèmes distribués qui nécessitent une gestion de configuration dynamique. En gérant les configurations de manière centralisée, Nacos aide les entreprises à améliorer l'efficacité et la sécurité de la gestion des configurations, tout en simplifiant également les travaux de développement, d'exploitation et de maintenance.

2. Instructions d'utilisation du centre de configuration Nacos

Les instructions d'utilisation sont enregistrées en détail dans la documentation officielle, cliquez pour voir la documentationhttps://nacos.io/zh-cn/docs/v2/écologie/utiliser-nacos-avec-spring-cloud.html

1. Déclarez la dépendance de Maven sur le centre de configuration

Pour utiliser le centre de configuration, vous devez d'abord ajouter des dépendances.

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
  • 1
  • 2
  • 3
  • 4

Dans le projet Guli Mall, parce que tous les services doivent utiliser le centre de configuration Nacos, cette dépendance est ajoutée au module commun.

2. Configurez l'adresse et le nom de l'application du serveur Nacos dans bootstrap.properties

Dans le répertoire des ressources du projet ou du module, déclarez l'adresse et le nom de service du serveur Nacos dans bootstrap.properties.

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon
  • 1
  • 2

3. Créez un fichier de configuration dans l'interface de la liste de configuration Nacos

Insérer la description de l'image ici

Après avoir cliqué sur Créer une configuration, la page suivante apparaîtra.

Insérer la description de l'image ici

  • ① L'ID de données est équivalent au nom du fichier et doit inclure le nom du service, tel que gulimall-coupon.properties
  • ② Le type de fichier de configuration prend en charge plusieurs types. Pour les microservices, il s'agit généralement de yaml ou de propriétés.
  • ③ La boîte noire contient les informations de configuration à renseigner

exister Nacos Spring Cloud milieu,Data Id Le format complet de est le suivant :

${prefix}-${spring.profiles.active}.${file-extension}
  • 1
  • prefix La valeur par défaut estspring.application.name La valeur peut également être transmise via l'élément de configurationspring.cloud.nacos.config.prefixconfigurer.
  • spring.profiles.active C'est-à-dire correspondant à l'environnement actuelprofile , veuillez vous référer à la documentation Spring Boot pour plus de détails. Remarque : quandspring.profiles.active Lorsqu'il est vide, le connecteur correspondant n'existera pas et le format d'épissage de dataId devient${prefix}.${file-extension}
  • file-exetension Pour configurer le format de données du contenu, vous pouvez passer l'élément de configurationspring.cloud.nacos.config.file-extension configurer.Actuellement, ne prend en charge queproperties etyaml taper.

Trois, teste

1. Mettez les informations de configuration dans le projet

Nous mettons d'abord les informations dans le fichier de configuration du projet, et configurons les informations suivantes dans le fichier de configuration application.properties du module coupon :

coupon.user.name=lcy
coupon.age=22
  • 1
  • 2

Insérer la description de l'image ici

2. Écrivez le code de test

Ajoutez une méthode dans le contrôleur pour utiliser les informations de configuration dans le fichier de configuration.

	@Value("${coupon.user.name}")
    private String userName;
    @Value("${coupon.user.age}")
    private String userAge;

    @RequestMapping("test")
    public R test(){
        return R.ok().put("name", userName).put("age", userAge);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Notez que dans le code ci-dessus, nous injectons la configuration du fichier de configuration dans la variable de classe via l'annotation @Value, puis la référençons dans la méthode.

3. Testez

Après avoir démarré le service, saisissez l'adresse suivante dans votre navigateur.

http://localhost:7000/coupon/coupon/test
  • 1

Le résultat est le suivant, indiquant que les informations du fichier de configuration ont été lues.
Insérer la description de l'image ici

4. Configurez les informations de configuration dans le centre de configuration

Prenez le service de coupons comme exemple à configurer.
Insérer la description de l'image ici

Cliquez sur le bouton Modifier sur le côté droit de la liste des fichiers de configuration pour accéder à l'interface d'édition.

Insérer la description de l'image ici

Notez que afin de clarifier la différence et la connexion entre le fichier de configuration du centre de configuration et le fichier de configuration local, nous n'avons pas supprimé la configuration locale à l'étape précédente.

Actuellement, il n'y a qu'une seule configuration configurée dans le centre de configuration. Cette configuration est également disponible dans la configuration locale, mais la valeur est différente.coupon.user.name=lcy, le centre de configuration estcoupon.user.name=lcy2

Actualisez le navigateur après avoir redémarré le service. Les résultats sont les suivants.

Insérer la description de l'image ici
Évidemment, la valeur de name provient du centre de configuration plutôt que du fichier de configuration local.La valeur dans le centre de configuration écrasera la valeur dans le fichier de configuration local.

journal des erreurs

Enregistrement d'erreur du centre de configuration du centre commercial Guli