2017-07-17 2 views
1

Ich versuche, einige AtLeastOnceDelivery Decorator für zuverlässige Messaging für verschiedene Akteure zu implementieren. Ein solcher Dekorateur versucht also, ziemlich intensive Nachrichten zu verarbeiten und wird den Lyfezyklus mit der Anwendung teilen.deliveryId owerflow für AtLeastOnceDelivery Garantie von akka Persistenz

Laut AtLeastOnceDelivery documentation ist die deliveryId eine streng monoton steigende Sequenznummer ohne Lücken (lang).

Die Frage ist: Was passiert, wenn der Wert die maximale Länge überläuft? Behandelt akka-persistence diesen Fall richtig?

+1

Ein kurzer Blick auf den Quellcode sagt mir, dass nichts für den Umgang mit der Situation vorhanden ist. Ich denke, das liegt daran, dass das Umwickeln sehr unwahrscheinlich ist. Scala Long max Wert ist 9223372036854775807. Um dies zu relativieren, selbst wenn Sie eine Milliarde Nachrichten pro Tag verarbeitet haben, würde es 25269512 Jahre dauern, bis die maximale Länge erreicht ist. –

+0

@JaakkoPallari Ich denke, das ist eine Antwort. Bitte poste es erneut und ich akzeptiere es. Vielen Dank! – Silk0vsky

Antwort

2

Ein kurzer Blick auf AtLeastOnceDelivery source code sagt mir, dass es nichts für den Umgang mit Long Überlaufsituationen gibt.

Ich glaube der Grund, warum es keine Handhabung gibt, ist, weil Überlauf sehr unwahrscheinlich ist. Scala Long maximaler Wert ist 9223372036854775807. Um dies zu relativieren, selbst wenn Sie eine Milliarde Nachrichten jeden Tag verarbeitet, würde es 25269512 Jahre dauern, bis der maximale Wert erreicht ist.

Verwandte Themen