2014-12-31 4 views

Antwort

8

Eine Möglichkeit ist durch den Cluster mit http://<localhost_ip_address>:8500/v1/status/leader Aufruf

dies den aktuellen Führer zurückkehren wird. Überprüfen Sie dann die IP-Adresse, die für die lokale IP-Adresse zurückgegeben wird.

+1

//, So wissen externe Programme, wer der aktuelle Leiter ist. Aber es sagt nicht, wie diese Instanz des Konsuls selbst weiß, dass es der gegenwärtige Führer ist. –

+0

@NathanBasanese Ich denke nicht, AlexandreSantos kümmert sich, was die richtige Antwort ist. – jeremyjjbrown

11

Der Konsul-Führer wird über eine Implementierung des Raft Protocol aus dem Kollegium der Konsul-Server gewählt. Nur Consul-Instanzen, die als Server konfiguriert sind, nehmen an der Raft-Protokoll-Kommunikation teil. Der Consul Agent (der Daemon) kann entweder als Client oder als Server gestartet werden. Nur ein Server kann der Anführer eines Rechenzentrums sein.

Das Raft-Protokoll wurde von Diego Ongaro und John Ousterhout von der Stanford University in Reaktion auf die Komplexität bestehender Konsensprotokolle wie Paxos erstellt. Raft wählt einen Anführer über den Einsatz von zufälligen Timern. Der Algorithmus ist detailliert in Ongaro and Ousterhout's paper.

Consul Instanzen, die als Clients konfiguriert sind, kommunizieren mit dem Cluster über die Gossip Protocol die auf Serf basiert. Serf Kommunikation ist schließlich konsistent. Der Serf-Cluster hat keinen zentralen Server, jeder Knoten wird als gleich angesehen. Alle Knoten (Clients und Server), die am Gossip/Serf-Protokoll teilnehmen, verbreiten Nachrichten an ihre Nachbarn, die wiederum Nachrichten an ihre Nachbarn verteilen, bis die Nachricht an den gesamten Cluster weitergegeben wurde. So ähnlich wie der Infektionspfad einer Zombie-Apokalypse. Dies geschieht, um den Kommunikationsaufwand im Cluster bei der Skalierung auf möglicherweise mehrere zehntausend Knoten erheblich zu reduzieren.

Consul Clients können Nachrichten an jeden Consul Server weiterleiten, der die Nachricht dann an den Leader weiterleitet. Consul Clients müssen sich nicht darum kümmern, welcher Consul Server der Leader ist. Nur die Server müssen sich darum kümmern.

Die Consul HTTP API auf jedem Consul Server wird Ihnen sagen, welcher Server ist der Marktführer bei $ANY_CONSUL_SERVER/v1/status/leader. Dies hat jedoch nichts damit zu tun, wie Konsulagenten die Wahl des Leiters durchführen.

+0

Ich hasse es, eine Antwort abzuschalten, aber die ersten 5 Sätze haben nichts mit der Frage zu tun, während nur die sechste die gleiche Antwort enthält wie vorher. –

+3

Sie haben gefragt, wie ein Agent weiß, dass es der Anführer des Clusters ist. Der Typ des Agenten hat alles damit zu tun, die Person einzuschränken, die der Anführer sein kann. – jeremyjjbrown

Verwandte Themen