Ich bin ziemlich neu bei Akka und neu bei der verteilten Programmierung im Allgemeinen. Mit Akkas Mist-Komponente habe ich beaufsichtigte Schauspieler geschaffen, die HTTP-Anfragen asynchron bearbeiten. Derzeit läuft alles auf einer physischen Maschine mit lokalen Akteuren. Was ich nicht verstehe ist, wie man ein wirklich fehlertolerantes System mit mehr als einer Box baut. Wie in den Akka-Dokumenten angegeben:
Außerdem müssen Sie (normalerweise) wissen, ob eine Box ausfällt und / oder der Service, mit dem Sie auf der anderen Box sprechen, nicht funktioniert. Hier ist die Überwachung / Verknüpfung von Akteuren ein kritisches Werkzeug, um nicht nur den Zustand von entfernten Diensten zu überwachen, sondern den Dienst tatsächlich zu verwalten, etwas zu tun, wenn der Akteur oder Knoten ausgefallen ist. Wie zum Beispiel den Neustart von Akteuren auf dem gleichen Knoten oder auf einem anderen Knoten.
Wie mache ich das? Ich bin auf der Suche nach einem Beispiel oder nach Hinweisen, wie ich meine Anwendung verteilen kann. Andere Dienste in unserer Gruppe verwenden Apache-Gateways vor mehreren Tomcat-Instanzen, sodass das Ereignis eines Tomcat-Servers für den Benutzer transparent ist. Ich stelle meinen Dienst für den Akka-Mikrokernel bereit und muss eine ähnliche hohe Verfügbarkeit in mehr als einer physischen Box erreichen.
Ich benutze Akka 1.1.3.
Die Fernüberwachung funktioniert nur mit den vom Client verwalteten Fernaktoren für die Akka 1.x-Serie.
Akka 2.0, das derzeit entwickelt wird, wird transparentes Clustering, clusterweite Überwachung und clusterweite Überwachung des Lebenszyklus unterstützen.
Sie könnten einen HTTP-Load-Balancer vor Akka Microkernel-Instanzen, auf denen Mist ausgeführt wird, in Erwägung ziehen. Dies würde Ihrer Gruppe mit "Apache-Gateways" entsprechen.
Ein anderer Ansatz wäre, entfernte Akteure in einer Reihe von Instanzen zu exponieren und dann Akkas LoadBalancer oder Actor Pool zu verwenden, um Nachrichten zu senden, siehe hier
Der zweite Ansatz ist ein bisschen schmerzhaft, wenn Sie einen dynamischen Pool von Maschinen haben, weil der Pool von Geräten programmatisch spezifiziert werden soll. Akka 2.0 adressiert dies mit Cluster-Unterstützung, die in der akka.conf-Datei eingerichtet ist.
Was das Veröffentlichungsdatum 2.0 betrifft, so wurde es vor kurzem auf veröffentlicht 2011-Sept-19 .
Tags und Links scala distributed akka actor akka-supervision