Frage

Ich möchte die Verarbeitung großer Chargen verteilen.Die Idee besteht darin, mit Spring Batch eine Reihe von AMQP-Konsumenten in einer Cloud zu starten und dann kostengünstige Aufgaben (wie Artikel-IDs) zu laden und sie an eine AMQP-Börse zu senden.Das Verfassen der Ergebnisse erfolgt durch die Verbraucher selbst.

Gibt es eine fertige Bibliothek, um dies zu erreichen?

Ein paar Gedanken:

  • Spring Batch ist völlig verhandelbar.
  • Die Losgröße beträgt mehrere Millionen.Ich möchte meinen Nachrichtenbroker nicht durch die brutale Übermittlung all dieser IDs auf einmal zerstören, sondern stattdessen eine Art Drosselung verwenden.
  • Ich möchte wissen, welche Artikel verarbeitet wurden, damit ich den Prozess überwachen kann.Daher muss der Chargenkontrollprozess Antworten von den Verbrauchern erhalten.
War es hilfreich?

Lösung

Ja, siehe Spring-Batch-Integration Projekt.Es kombiniert Spring Batch und Spring Integration, um das zu erreichen, was Sie wollen.

Für Batch 2.2.x ist es Teil von spring-batch-admin Verteilung;In der kommenden Batch-Version 3.0.0 wurde es in den eigentlichen Batch verschoben.

Bei der Remote-Partitionierung werden lediglich Metadaten über die Partitionen gesendet, und die Worker rufen die Daten tatsächlich ab.

Es kommt mit einem JMS-Beispiel Es wäre jedoch nicht schwer, die JMS-Gateways mit Spring-Integration gegen AMQP-Gateways mit Spring-Integration auszutauschen.

Es gibt auch eine Remote-Chunking-Version, bei der die Daten über den Transport statt über Partitionsmetadaten gesendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top