Ich versuche, Marc21 Binärdatensätze zu dekodieren, die die folgende Spezifikation bezüglich des Felds haben, die die Länge des Datensatzes bereitstellen.Marc21 Binary Decoder mit Akka-Stream
Eine computergenerierte, aus fünf Zeichen bestehende Zahl, die der Länge des gesamten Datensatzes entspricht, einschließlich sich selbst und den Satzabschluss. Die Nummer ist rechtsbündig und nicht verwendete Positionen enthalten Nullen.
Ich versuche, ich weiß nur nicht,
Akka Stream-Framing.lengthField jedoch zu verwenden, wie die Größe des Feldes angeben. Ich stelle mir vor, dass ein Charakter 8 Bit ist, vielleicht 16 für eine Zahl, ich bin mir nicht sicher, ob das von der Plattform oder der Sprache abhängt. Kurz gesagt, die Frage ist, dass es möglich ist, zu sagen, wie groß das Feld ist. Ich weiß, dass ich in Scala/Java bin.
Auch was tut Mittel:
Die Zahl rechtsbündig und nicht verwendete Positionen Nullen“
enthält, die Auswirkungen auf hat, wie man den Wert lesen, wenn sie richtig gesammelt
? Wenn jemand etwas darüber wissen, teilen Sie bitte.
EDIT1
Kontext:
Ich versuche, ein Stream-Verarbeitungs Diagramm, in dem die erste Stufe das Ergebnis eines sys Kommando gegen eine Symphonie (Katalogisierungssystem Vendor) Server lief Verarbeitung würde zu bauen, die ein Strom von unstrukturierten Byte chunck ist welche als Ganzes alle angeforderten Marc21-Datensätze (Volldump oder Partialdump) repräsentieren.
Durch die Verarbeitung ich meine, chunking, dass unstrukturierte Byte-Stream in einen Strom von Frames, wo die Frames die Datensätze sind.
Mit anderen Worten, bereiten Sie die Bytes für einen Datensatz zu der Zeit vor, und emittieren Sie einzeln für die nächste Stufe.
Die nächste Stufe besteht darin, diesen Datensatz (Bytes) an Apache Kafka zu senden.
Offensichtlich würde die Emissionsstufe vollständig parallelisiert werden, um den Prozess zu beschleunigen.
Der Symphony-Server verfügt nicht über die Fähigkeit, bei Bedarf einen Speicherauszug zu streamen, insbesondere über das Netzwerk. Daher ist diese akkastrombasierte Graph-Verarbeitung für die Durchführung dieser Arbeit, für die schnelle Aufnahme/Produktion und die gesamte Streaming-Verarbeitung unserer Dumps in unserer insgesamt schnellen Dateninfrastruktur geeignet.
EDIT2
Basierend auf @badcook Eingang, ich frage mich, ob ComputeFramesize hier verwendet werden könnte. Nicht sicher, ich bin etwas verwirrt von der Funktion und was braucht es in Parameter.
Wenig Klärung würde sehr geschätzt werden.
In der Zukunft würde ich empfehlen, diese Art von Fragen in zwei Teile zu teilen und alle Informationen zur Hand zu haben. Ihre Frage zu 'Framing' in Akka ist völlig anders als Ihre (implizierte) Frage nach den MARC-Spezifikationen und gehört daher zu zwei getrennten Fragen. Sie haben MARC überhaupt nicht erwähnt, obwohl es ein entscheidender (wenn nicht * der * entscheidende) Teil Ihrer Frage ist. (Ich werde meine Downvote entfernen, wenn Sie zumindest MARC in Ihrer Frage und Ihrem Titel beschreiben). – badcook