Consul

Consul bietet folgende Services

  • Key-Value-Store
  • Service Discovery

Architektur

Consul besteht aus

  • Consul Server Cluster Consul Server Cluster verwendet wird
    • es gibt einen sog. Leader unter den Cluster Knoten
  • Consul Client Agents
    • werden von Prozessen für den Zugriff auf das Consul Server Cluster verwendet

Ports

Das sind die Standardports von Consul Client und Server:

Getting Started

Wie immer in der heutigen Zeit kommt man am schnellsten mit Docker voran:

docker run -d --net=host --name=myConsul consul

Das WEB UI steht dann unter http://localhost:8500/ui zur Verfügung (ACHTUNG: der Container verliert seine Daten durch einen Restart). Hier können dann Key/Values (z. B. service/foo/server/port) manuell eingegeben werden (zum rumspielen).

Anwendungen benötigen i. a. eine Konfiguration als Property File. Vor dem Start der Anwendung würde man ausgehend von einem Property-File Template (z. B. application.yaml.ctmpl - enthält Platzhalter)

server:
  port: {{ key "service/foo/server/port" }}

per consul-template die Platzhalter auflösen

/usr/bin/consul-template \
    -config=consul-template.hcl \
    -once \
    -log-level=debug \
    -consul-retry-attempts=2

und eine platzhalterfreie Konfigurationsdatei application.yaml` erzeugen, die in der Anwendung referenziert wird.

Die referenzierte Konfigurationsdatei consul-template.hcl könnte so aussehen:

template {
    error_on_missing_key = true
    source = "application.yaml.ctmpl"
    destination = "application.yaml"
}

results matching ""

    No results matching ""