Organisez efficacement la configuration de votre application avec Etcd

Online Coding Courses for Kids

Jetons un œil à certaines des fonctions les plus importantes. Nous allons écrire le code dans Kotlin en utilisant le client etcd-java.

Commencer

Le moyen le plus rapide de démarrer est d’utiliser une image Docker.

  1. Créer un docker-compose.yml fichier et mettez dans la configuration suivante:

Faites attention au point de terminaison de la passerelle gRPC. etcd v3.4 utilise [CLIENT-URL]/v3/* en gardant [CLIENT-URL]/v3beta/*. Pour plus d’informations sur la mise en route, consultez le guide de développement.

2. Démarrez etcd en exécutant cette commande:

docker-compose up -d

3. Maintenant, testons la connexion en vérifiant la version etcd:

curl -L http://127.0.0.1:2379/version

Vous devriez voir une réponse comme celle-ci:

{"etcdserver":"3.4.13","etcdcluster":"3.4.0"}

Mettre et obtenir les clés

Vous pouvez utiliser curl pour porter des paires clé-valeur vers etcd, mais dans ce didacticiel, nous allons démontrer les fonctionnalités à l’aide de Kotlin.

  1. Ouvrez votre IDE et créez un nouveau projet Gradle avec la bibliothèque Kotlin.
  2. Collez le contenu suivant dans votre build.gradle fichier:

Notez que nous utilisons la bibliothèque cliente com.ibm.etcd. L’implémentation d’IBM est robuste, en particulier en ce qui concerne les abstractions Lease and Watch.

3. Créez une classe appelée Main.kt.

4. Créons la connexion etcd dans le mainfonction et mettez quelques valeurs:

5. Exécutez l’application pour tester si la paire clé-valeur a été insérée.

Le résultat dans votre console devrait être value.

Notez que etcd utilise l’encodage Base64. Si vous insérez les valeurs-clés à l’aide de curl, vous devez écrire la chaîne codée. Dans cet exemple, la paire clé-valeur est foo-bar:

curl -L http://localhost:2379/v3/kv/put 
-X POST -d '{"key": "Zm9v", "value": "YmFy"}'

Montre clés

La fonction Regarder est pratique si vous souhaitez réagir aux modifications de valeur-clé.

Par exemple, imaginons que vous disposez d’un service avec état et que vous souhaitez mettre à jour le niveau de journal à partir de debug à info pendant l’exécution sans avoir à redémarrer l’application.

  1. Créez un observateur qui vérifie watch événements:

2. Mettez une paire clé-valeur comme nous l’avons fait auparavant:

3. Nous allons simuler des travaux. Pour plus de simplicité, déclenchez un Thread.sleep méthode pendant quelques secondes.

4. Enfin, fermez la montre.

Vous pouvez observer toutes vos clés ou clés spécifiques. Nous voulons regarder le loglevel clé uniquement.

5. Démarrez l’application et, pendant qu’elle attend, exécutez une requête curl POST pour mettre à jour le loglevel la valeur de la clé. Dans cet exemple, je vais mettre à jour debug à info. J’ai déjà encodé les chaînes en utilisant l’algorithme Base64.

curl -L http://localhost:2379/v3/kv/put 
-X POST -d '{"key": "bG9nbGV2ZWw=", "value": "aW5mbw=="}'

Vous devriez voir un événement de mise à jour dans votre console IDE:

watch event: WatchUpdate[rev=1129,events=[Event[type=PUT,key=loglevel,modRev=1129,prevKey=]]]

Close Menu