2017-03-01 6 views
4

Ich nur Service-Fabric in On-Premise testen. Ich habe viele Fehlerszenarien getestet, aber eines davon kann ich nicht verifizieren. Wie verhalten sich SF, wenn der Knoten gut funktioniert, aber die Anwendung abgestürzt ist? Zum Beispiel habe ich Stateless Web API und nach einer einzigen Anfrage ist es fehlschlägt und schaltet (fast unmöglich, aber es ist nur Annahme). SF sollte darüber Bescheid wissen und in der nächsten Anfrage an den gleichen Knoten sollte es die Anforderung für den gleichen Anwendungstyp umleiten, der in einem anderen Knoten gehostet wird, bis die Anwendung nicht erneut startet? Habe ich recht? Auf Statefull sollte es das gleiche tun, aber anstatt zu anderen Knoten umzuleiten, sollte es Replik verwenden?Service Fabric Anwendung Fehlerverhalten

ich versuchen, dieses Beispiel simulieren mit Restart-ServiceFabricDeployedCodePackage, aber es ist wahrscheinlich zu schnell neu zu starten, und ich kann meine Annahmen nicht bestätigen - i-Timeout zu bekommen.

Antwort

2

Die Annahme, dass Service Fabric Anforderungen an Dienste umleitet, ist im Allgemeinen nicht wahr, es sei denn, Sie verwenden den integrierten Reverse Proxy (Sie wissen, ob Sie ihn verwenden, da Sie Anforderungs-URLs sicher strukturieren müssen) Weg).

Angenommen, Sie verwenden nicht den integrierten Reverse Proxy, dann verbinden und kommunizieren Ihre Dienste direkt miteinander über IP: Port-Endpunkte. Service Fabric befindet sich nicht im Anforderungspfad. Service Fabric bietet nur Service Discovery.

SF erkennt Prozessabstürze. Sie können auch einen Fehler in Ihrem Servicecode melden. In diesen Fällen startet SF den Prozess, der abgestürzt ist, oder das Replikat, das den Fehler gemeldet hat. Sie können auf einem anderen Knoten neu gestartet werden. Stateful-Service-Replikate führen fast immer zu einem anderen Knoten, auf dem ein aktiver sekundärer Server zum primären Knoten heraufgestuft werden kann. Clients sind verantwortlich für die Auflösung des neuen Serviceendpunkts oder den Wechsel zu einer anderen Instanz, wenn der Service zustandslos ist.

+0

Danke für Ihre Antwort. Das erschweren ein wenig Konfiguration von hoher Verfügbarkeit. Previous Ich denke nur, dass ich HAProxy (Load Balancer) konfigurieren, die Knoten-Health-Check auf Port 19000 und das überprüfen für mich nicht nur das Knoten ist lebendig, sondern auch das ist SF-Dienst ausgeführt wird. Irgendwelche anderen Sachen wie Umleitung zu anderen Knoten bei App-Fehler oder Upgrade dachte ich, dass wird von SF gelöst werden. Die Verwendung von nur Lastausgleich mit SF ist sehr klar für Kunden (jede Logik auf ihrer Seite, jeder Reverse Proxy). Ich kann Anwendungen um Mitternacht bereitstellen, aber wenn App fehlschlägt, muss ich ein kleines Arbeitsloch akzeptieren. – tom