2016-07-27 6 views
0


Wie sorgt der Spring Cloud-Datenfluss für die verteilte Verarbeitung? Wenn der Server auf PCF bereitgestellt wird und es zwei Instanzen gibt, wie werden die Eingabedaten zwischen diesen beiden Instanzen verteilt?
Quellwolken-Datenfluss verteilte Verarbeitung

Wie werden Fehler behandelt, wenn sie auf PCF bereitgestellt werden? PCF wird eine neue Instanz für einen fehlgeschlagenen erstellen. Aber wird es auch für die Bereitstellung des Streams sorgen oder ist dort ein manueller Eingriff erforderlich?

Antwort

2

Sie sollten unterscheiden zwischen dem, was die Spring Cloud Dataflow-Dokumentation "den Server" nennt, und den Apps, die einen verwalteten Stream bilden.

"Der Server" ist nur hier, um Bereitstellungsanforderungen zu empfangen und sie zu honorieren und Apps hervorzubringen, aus denen Ihre Streams bestehen. Wenn Sie mehrere Instanzen von "the server" bereitstellen, dann gibt es nichts Besonderes. PCF wird es mit einem LB konfrontieren und beide Instanzen werden Ihre REST-Anfragen bearbeiten. Bei der Bereitstellung auf PCF wird der Status in einem gebundenen Dienst beibehalten, daher gibt es hier nichts Besonderes.

Wenn Sie lieber sich beziehen „die Apps“, also einen Strom mit einigen oder allen seinen Teil den Einsatz mehr als eine Instanz verwenden, dh

stream create foo --definition "time | log" 
stream deploy foo --properties "app.log.count=3" 

dann standardmäßig ist es dem Bindemittel auf Implementierung, um zu wählen, wie Daten verteilt werden. Dies bedeutet oft Round Robin Balancing.

Wenn Sie steuern möchten, wie Daten, die zu demselben konzeptionellen Domänenobjekt gehören, in derselben Anwendungsinstanz landen, sollten Sie Dataflow mitteilen, wie dies geschieht. Etwas wie

Wie für die Behandlung von Fehlern, ich bin nicht sicher, was Sie fragen. Die bereitgestellten Apps sind der Stream. Sobald eine Anfrage, so viele Instanzen der Stream-Komponenten zu senden und von PCF empfangen zu haben, wird es sich darum kümmern, diese Anfrage zu erfüllen. Es liegt an dieser Stelle nicht in den Händen von Dataflow, und genau deshalb wurde die Grenze für den Spring Cloud Deployer-Vertrag dort festgelegt (dasselbe gilt für andere Laufzeiten)/