Dans les applications distribuées, il est souvent nécessaire de modifier les propriétés de configuration, telles que la mise à jour des chaînes de connexion à la base de données et des adresses de cache. S’il n’y a pas beaucoup d’applications, vous pouvez les modifier manuellement, une fois qu’il y a de nombreuses applications, la configuration distribuée est très importante, cet article explique l’architecture de stockage clé/valeur de .net/c# basée sur Consul pour implémenter la configuration distribuée.
Installer le consul
Brève introduction
Consul est un outil de découverte et d’enregistrement de services distribué et hautement évolutif.
Consul comprend principalement les caractéristiques suivantes :
- Découverte de service : Prise en charge de l’enregistrement et de la découverte de services pour les protocoles HTTP et DNS.
- Contrôle de surveillance : Prend en charge plusieurs contrôles de santé.
- Stockage clé/valeur : Prend en charge le stockage distribué des données KV via l’API HTTP.
- Prise en charge multi-centres de données : Un nombre quelconque de centres de données est pris en charge.
Installation
Adresse de téléchargement :
La connexion hyperlientérée est visible.
Cet article utilise Windows 10 x64 comme environnement de test.
Après téléchargement et décompression, exécutez-le avec la commande cmd, le code est le suivant :
dev signifie exécuter en mode développement, et le paramètre -client peut être utilisé pour spécifier quelle IP le client peut accéder, par exemple, -client 127.0.0.1 signifie qu’il peut être utilisé, et en mode développement, les données ne seront pas conservées.
(le mode développeur, le mode cluster est recommandé pour les environnements de production)
Accès :http://127.0.0.1:8500/ui/dc1/servicesVoir ci-dessous :
Interface KV
Adresse de documentation API :
La connexion hyperlientérée est visible.
D’abord, j’utilise une page web en ligne et je crée une nouvelle paire clé/valeur.
Obtiens la valeur via le chemin de requête GET /v1/kv/ :key.
http://127.0.0.1:8500/v1/kv/test
[ { « LockIndex » : 0, « Clé » : « test », « Drapeaux » : 0, « Value » : « aXRzdnNlLmNvbQ== », « CreateIndex » : 194, « ModifyIndex » : 194 }
]
- CreateIndex est une valeur d’index interne qui représente la date de création de l’entrée.
- ModifyIndex est le dernier indice à modifier cette clé. Cet indice correspond à la valeur d’en-tête retournée par X-Consul-Index dans la réponse, et peut être défini par ? Le paramètre de requête d’indice est utilisé pour établir des requêtes bloquantes. Vous pouvez même effectuer des requêtes de blocage sur l’ensemble du sous-arbre du KV store : et si ? recurse fournit une requête, et la valeur retournée X-Consul-Index correspond à la dernière valeur de ModifyIndex dans le préfixe, en utilisant la requête bloquante ?index attendra qu’une clé de ce préfixe soit mise à jour.
- LockIndex est le nombre de fois où la clé dans la serrure a été acquise avec succès. Si le verrou est maintenu, la clé de session fournira la session qui possède le cadenas.
- La clé, c’est simplement le chemin complet de l’entrée.
- Les drapeaux sont des entiers opaques sans signe qui peuvent être attachés à chaque entrée. Les clients peuvent choisir d’utiliser cette option, mais cela a du sens pour leur application.
- Value est un blob de données codé en base64.
.NET/C# Clé/Valeur lecture et écriture
Tout d’abord, créez un projet .NET 4.6.1 et utilisez Nuget pour installer les paquets nécessaires, comme suit :
Le code est le suivant :
Les rendus sont les suivants :
- La clé est sensible aux majuscules
- Double key, valeurs de valeur
(Fin) |