In Consul können Sie viele Agenten als Server oder Clients haben. Unter allen Servern wird einer als Anführer ausgewählt. Aus der Sicht des Agenten, woher weiß es, dass es der Anführer ist?Wie weiß ein Konsul-Agent, dass er der Anführer eines Clusters ist?
Antwort
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.
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.
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. –
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
- 1. Wie können Sie sicherstellen, dass ein Benutzer weiß, dass er auf Ihrer Website ist?
- 2. Fehlender Anführer in Vim
- 3. Wie weiß ein CBPeripheralManager, dass er von einem zentralen Gerät in Core Bluetooth verbunden oder getrennt ist?
- 4. Wenn der Computer eingeschaltet ist: Woher weiß er, von welcher Anweisung er gestartet werden muss?
- 5. Wie kann ich meinem Skript mitteilen, dass es darauf warten muss, dass der Konsul einen Anführer auswählt, bevor er versucht, Schlüssel/Wert-Paare beim Start hinzuzufügen?
- 6. Woher weiß Firefox, dass die Seite ein Atom-Feed ist?
- 7. Woher weiß ich, wie der storeName eines Zertifikats ist?
- 8. Systemkonfiguration eines eigenständigen Hadoop-Clusters
- 9. Woher weiß der Benutzer, dass er auf "X" oder "Schließen" geklickt hat?
- 10. Wie kann man einen Stream von einer Methode zurückgeben, weil er weiß, dass er entsorgt werden sollte?
- 11. Wie kann ein Webpack-Loader wissen, dass er der letzte Loader in einer Kette ist?
- 12. JsonCpp - wenn ich ein json :: Value-Objekt habe, woher weiß ich, dass es der Schlüsselname ist?
- 13. Wie weiß der Atom Package Manager (apm), dass ein Paket für Atom ist?
- 14. Wie weiß ReSharper, dass dieser Rückgabetyp niemals null ist?
- 15. Woher weiß ich in Akka, wann ein Schauspieler bereit ist, nachdem er bei actorOf() registriert wurde?
- 16. Wie stelle ich den Sicherheitstest eines Adapters so ein, dass er von worklight.properties kommt?
- 17. Wie macht man einen Neustart eines Clusters von Mischlingen?
- 18. Zeichnen eines Clusters mit [1 * n] Matrixvariable
- 19. Ausführen eines Hadoop-Clusters auf Andockcontainern
- 20. Starten eines Thin-Clusters unter Windows
- 21. Wie funktioniert ein endlicher Automat, wenn er nicht eindeutig ist?
- 22. Wie weiß ein Webserver, was damit verbunden ist?
- 23. Stresstest ein einzelner Knoten des Clusters
- 24. Was würde ein Scrum Teammitglied tun, wenn er merkt, dass er seine tägliche Arbeit missverstanden hat?
- 25. Ist es idiomatisch wie „* er“
- 26. Woher weiß ich, dass eine Seite wirklich vollständig geladen ist?
- 27. Kann ein Handler erkennen, dass er entfernt wurde?
- 28. Woher weiß ASP.NET MVC, dass eine Methode eine Aktionsmethode ist?
- 29. Wie kann ich einen jFrame so einstellen, dass er immer oben und fokusiert ist, bis er geschlossen ist?
- 30. In C# überprüfen, ob der Dateiname * möglicherweise * gültig ist (nicht dass er existiert)
//, 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. –
@NathanBasanese Ich denke nicht, AlexandreSantos kümmert sich, was die richtige Antwort ist. – jeremyjjbrown