2017-06-26 8 views
1

Je suis inscris un service externe consul via l'API de catalogue http://127.0.0.1:8500/v1/catalog/register avec une charge utile comme suit:Comment inscrire Durable services externes Consul

{ 
    "Datacenter": "dc1", 
    "Node": "pedram", 
    "Address": "www.google.com", 
    "Service": { 
    "ID": "google", 
    "Service": "google", 
    "Address": "www.google.com", 
    "Port": 80 
    }, 
    "Check": { 
    "Node": "pedram", 
    "CheckID": "service:google", 
    "Status": "passing", 
    "ServiceID": "google", 
    "script": "curl www.google.com > /dev/null 2>&1", 
    "interval": "10s" 
    } 
} 

Le service externe enregistre avec succès et je le vois dans la liste des inscrits services, mais après un certain temps, il disparaît. Il semble que cela ne soit pas enregistré automatiquement. Je suis le consul en mode -dev.

Quel est le problème?

Répondre

0

J'ai trouvé que je devrais enregistrer des services externes dans un noeud séparé. les services locaux de demande sont enregistrés dans un se nœud nommé

"Node": "pedram" 

quand j'enregistrer des services externes dans ce nœud, ils seront supprimeront pas automatiquement. Mais quand j'inscris mes services externes dans un nouveau nœud, tous les nouveaux services externes sont enregistrés durablement et prêts à être utilisés comme tous les autres services locaux.

ma nouvelle charge utile est la suivante:

{ 
    "Datacenter": "dc1", 
    "Node": "newNode", 
    "Address": "www.google.com", 
    "Service": { 
    "ID": "google", 
    "Service": "google", 
    "Address": "www.google.com", 
    "Port": 80 
    }, 
    "Check": { 
    "Node": "newNode", 
    "CheckID": "service:google", 
    "Status": "passing", 
    "ServiceID": "google" 
    } 
} 
0

Vous ne devriez pas utiliser le mode -dev, sauf pour tester/jouer. pour votre bilan de santé, je vous recommande de ne pas utiliser un "script": "curl www.google.com > /dev/null 2>&1", Au lieu de cela, je vous recommande d'utiliser un bilan de santé http: "http": "https://www.google.com",

En savoir plus sur les chèques de santé est disponible ici: https://www.consul.io/docs/agent/checks.html

En outre, vous devriez probablement passer à HTTPS (sur le port 443) si vous le pouvez.

il peut également être utile de sauvegarder ceci sous forme de fichier .JSON, et laisser consul le lire dans le cadre de son démarrage, car je suppose que vous voulez que ce soit un service externe de longue durée. Vous pouvez le faire avec une commande comme: /usr/local/bin/consul agent -config-dir=/etc/consul/consul.d et chaque fichier .json en /etc/consul/consul.d/ sera lu dans le cadre de sa config. Si vous modifiez les fichiers, consul reload redémarrera.

Je ferais ces changements (ne pas exécuter en mode de développement, etc) et voir si le problème existe toujours. Je suppose que ce ne sera pas le cas.

+0

Merci Zie pour votre participation. J'ai trouvé la réponse et je vais la partager. –