Unterschied zwischen Spring-Batch-Remote-Chunking und Remote-Partitionierung

8

Was ist der Unterschied zwischen Spring-Batch-Remote-Chunking und Remote-Partitionierung?

Ich kann den Unterschied zwischen Remote-Chunking und Remote-Partitionierung im Frühjahrsstapel nicht verstehen. Könnte jemand bitte erklären?

    
javalearner 02.12.2013, 07:49
quelle

1 Antwort

27

Fernpartitionierung

Partitionierung ist eine Master / Slave-Schrittkonfiguration, die es ermöglicht, Datenpartitionen parallel zu verarbeiten. Jede Partition wird über einige Metadaten beschrieben. Wenn Sie beispielsweise eine Datenbanktabelle verarbeiten, kann Partition 1 beispielsweise IDs 0-100, Partition 2 101-200 usw. sein. Für Spring Batch verwendet ein Masterschritt ein Partitionierer , um ExecutionContexts zu generieren, die die Metadaten für jede Partition enthalten. Diese ExecutionContexte werden zur Verarbeitung an einen PartitionHandler (für die Remote-Partitionierung die MessageChannelPartitionHandler wird normalerweise verwendet. Die Slaves führen ihren Schritt aus und geben die resultierenden Status für die Aggregation durch den Master zurück.

Was Sie bei der Remote-Partitionierung beachten sollten:

  • Eingang und Ausgang sind lokal für die Slaves. Wenn die Eingabe beispielsweise eine Datei ist, benötigen die Slaves Zugriff auf die Datei.
  • Slaves benötigen Zugriff auf das JobRepository. Slaves sind vollständig definierte Spring Batch-Schritte und benötigen daher den JobRepository-Zugriff.

Remote-Chunking

Remote-Chunking ähnelt der Remote-Partitionierung insofern, als es sich um eine Master / Slave-Konfiguration handelt. Beim Remote-Chunking werden die Daten jedoch vom Master gelesen und über die Leitung an den Slave zur Verarbeitung gesendet. Sobald die Verarbeitung abgeschlossen ist, wird das Ergebnis des ItemProcessor zum Schreiben an den Master zurückgegeben.

Was Sie über Remote-Chunking beachten sollten:

  • Alle I / O-Vorgänge werden vom Master ausgeführt.
  • Die Slaves verarbeiten nur die Verarbeitung und benötigen daher keinen JobRepository-Zugriff.
  • Remote-Chunking ist mehr I / O-intensiv als Remote-Partitionierung, da die eigentlichen Daten über die Leitung gesendet werden und nicht über Metadaten, die sie beschreiben.

Ich habe einen Vortrag über die Skalierung von Spring Batch gehalten und mache eine Demonstration der Remote-Partitionierung, die Sie hier ansehen können: Ссылка

    
Michael Minella 03.12.2013, 03:25
quelle

Tags und Links