Frage

Erlang Unterstützung seiner Knoten in Gruppen mithilfe der global_group Modul zu partitionieren. Ferner unterstützt die Erlang-Knoten im laufenden Betrieb mit dem Knoten-Netzwerk hinzugefügt wird. Sind diese beiden Funktionen nutzbar miteinander?
Soweit ich verstehe, haben Sie jeden Knoten beim Start nennen die globalen Gruppen zu verwenden.

War es hilfreich?

Lösung

Mit Blick auf die global_group Quelle Teil der Konfiguration überprüft durch die Knoten, die Liste der Knoten ist, wie sie synchronisiert werden.

Es gibt jedoch eine exportierte Funktion global_group : global_groups_changed , die den Knoten-Liste Wechsel behandelt

.

Das nennt man von kernel: config_change (Siehe Modul: config_change / 3 ), so ist es sicherlich möglich, neuen Knoten zu einem global_group bei einem Release-Upgrade (OTP Embedded-Systeme Stil) (Siehe "Aktualisieren von Anwendungsspezifikationen" )

Es könnte möglich sein, einfach tun:

application:set_env( kernel, global_groups, [GroupTuple|GroupTuples] ),
kernel:config_change( [ { global_groups, [GroupTuple|GroupTuples] } ], [], [] )

Angenommen, Sie bereits eine global_groups Konfiguration hat, oder

application:set_env( kernel, global_groups, [GroupTuple|GroupTuples] ),
kernel:config_change( [], [{ global_groups, [GroupTuple|GroupTuples] }], [] )

Wenn Sie global_groups in einem Cluster konfigurieren, wo sie nicht bereits vorhanden sind.

Sie müssen die oben auf jedem Knoten zu tun, und wenn sie sich entscheiden, während des Prozesses zu synchronisieren, werden sie die Linien der Config Differenz gespalten. (Siehe den Kommentar im global_group Quelle über die Synchronisierung bei einem Release-Upgrade)

Aber einmal, dass alle von ihnen gemacht worden ist,

global_group:sync()

sollte wieder alles funktioniert bekommen.

Ich habe nicht das oben Rezept getestet, aber es sieht mir schmackhaft. ^ _ ^

Andere Tipps

  

Ein Knoten ist eine Ausführung von Erlang-Laufzeit   System, das einen Namen gegeben wurde,   über die Befehlszeile Flag -Name   (Lange Namen) oder -sname (Kurznamen).

     

Ein versteckter Knoten ist ein Knoten gestartet mit   Die Befehlszeile Flag -hidden.   Die Verbindungen zwischen den versteckten Knoten und   andere Knoten transitiv sind nicht, sie   muss explizit festgelegt werden. Ebenfalls,   versteckte Knoten nicht erscheint in der   Liste der Knoten von Knoten () zurückgegeben wird.   Stattdessen Knoten (versteckt) oder   Knoten (verbunden) verwendet werden. Diese   bedeutet zum Beispiel, dass die versteckt   Knoten nicht zu dem Satz von zugefügt werden   Knoten, die global ist Spur zu halten.

Also kurz gesagt, ja, müssen Sie unserem Knoten einen Namen geben können andere Knoten sein, um es zu finden.

Es fühlt sich an, dass Sie entweder fragen, ohne versuchen oder haben eine sehr komplexe Frage und vielleicht ein Beispiel dafür, was Sie versuchen, es möglich zu geben, eine bessere Antwort zu erreichen machen könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top