2016-03-26 14 views
1

In meinen Konfigurationen werden Servicedefinitionen in /etc/consul.d/server gehalten.Konsul registriert Dienste nicht, wenn es kommt

Consul ist mit folgendem Befehl gestartet:

consul agent -config-dir /etc/consul.d/server 

Als Konsul gestartet wird, keiner der Dienst registriert ist. Dieselben Dienste können jedoch unter Verwendung der Web-API mit denselben Definitionsdateien registriert werden.

Was ist das Problem mit mehreren Servicedefinitionen, da sie nicht registriert werden?

Antwort

1

Haben Sie mehrere Dateien? Wenn ja -> stellen Sie sicher, dass alle in .json enden.

Auch beim Laden der Konfiguration lädt Consul die Konfiguration aus Dateien und Verzeichnissen in lexikalischer Reihenfolge. Beispielsweise wird die Konfigurationsdatei basic_config.json vor extra_config.json verarbeitet. Die später angegebene Konfiguration wird mit der zuvor angegebenen Konfiguration zusammengeführt. In den meisten Fällen bedeutet "Zusammenführen", dass die neuere Version die frühere überschreibt. In einigen Fällen, z. B. bei Ereignisbehandlungsroutinen, hängt das Zusammenführen die Handler an die vorhandene Konfiguration an. Das genaue Zusammenführungsverhalten wird für jede Option in den Dokumenten angegeben.

https://www.consul.io/docs/agent/options.html

Ansonsten versuchen, alle Definitionen Ihres Dienstes in eine JSON-Datei zu setzen.

mit dem Diensteschlüssel in Ihrer Konfigurationsdatei. (nicht der Plural S)

{ 
    "services": [ 
    { 
     "id": "red0", 
     "name": "redis", 
     "address": "127.0.0.1", 
     "port": 6000, 
    }, 
    { 
     "id": "red1", 
     "name": "redis", 
     "address": "127.0.0.1", 
     "port": 7000, 
    }, 
    ] 
} 
+0

Wichtiger Punkt, den Sie abgedeckt haben, ist, dass kleine Buchstaben verwenden. – doptimusprime

Verwandte Themen