Das Hauptproblem bei der Verwendung von Akka in diesem Zusammenhang ist, dass das Actor-System kein angemessen maleable Zugehörigkeitsverwaltungssystem für solch dezentrales verteiltes Rechnen hat.
Sie benötigen etwas, das mit der Knotenabwanderung umgehen kann, die Sie in Ihrem Szenario beschreiben. Insbesondere benötigen Sie etwas, das überwachen kann, wenn Knoten aufgrund von Fehlern beitreten, verlassen und als tot gelten. Ich würde empfehlen, Ibis: http://www.cs.vu.nl/ibis/ mit einer Klatsch-basierten Registrierung zu suchen. Sie benötigen immer noch einen bekannten Bootstrap-Knoten, um das System zu starten, aber ansonsten bietet das Modell Join, Elect, Leave, das Ibis verwendet, die Skalierbarkeit, die Sie in Kombination mit der Gossip-basierten Registry suchen. Dieses System ähnelt Akka-Akteuren insofern, als es auf einem System von Auf- oder Abrufen und unidirektionalen Leitungen basiert, über die Sie Nachrichten weiterleiten. Sehr einfach zu verteilendes Zeug zu programmieren, sobald du den Fu davon bekommst.
Im Hinblick auf die mögliche Konsistenz ist dies ein bekanntes Problem in so großen verteilten Umgebungen. Ich müsste mehr über die Arten von Transaktionen wissen, die Sie verteilen möchten, und das Niveau der Konsistenz und Historisierung, das erforderlich ist, um dort mehr Empfehlungen zu machen. Einige neuere Arbeiten haben bewiesen, dass das Beste, was man in solch einer feindlichen Umgebung finden kann, die fork-causal-consistency ist, wo zumindest jeder sehen kann, dass die Geschichte sich verzweigt hat, wenn nicht die "gewinnende" Gabel ohne eine andere Gabelung Auflösungsmechanismus. Ein Bitcoin ist ein interessantes Beispiel in diesem Raum, in dem "Gewinnen" durch die längste Kette bestimmt wird, aber es gibt andere Lösungen in diesem Raum, die je nach Anwendungssemantik funktionieren können oder nicht. Ihre Frage ist ein wenig zu vage, um in einem so großen Designbereich konkrete Empfehlungen zu geben.
Wie viele Knoten? –
@Viktor Klang Im Idealfall so viele wie möglich, in der Größenordnung von Dingen wie einem einzigen BitTorrent, aber einem ziemlich großen. – barrymac
Ich denke AKKA wurde unter Berücksichtigung hoch gekoppelter verteilter Systeme (wie Cluster) und nicht des von Ihnen beschriebenen Szenarios (wie Sensornetzwerke oder dezentrale soziale Netzwerke) konzipiert, obwohl diese immer noch im Bereich der verteilten Rechner, aber im heterogenen/dezentralen Bereich liegen). Aber da ich kein Experte bin, warten wir auf eine bessere Antwort: D – Filippos