Based on the Kinesis docs, gibt es eine "grobe Bestellung" (basierend auf Zeit) mit der PutRecord
. Was ist die Präzision dieser Bestellung? Sekunden? Millisekunden? Ich kann nirgends präzise Aussagen finden.Präzision von AWS Kinesis PutRecord Bestellung
Antwort
Wahrscheinlich in der Dokumentation nicht, aber auf ein allgemeines Verständnis dieses Dienstes going basiert:
„Grob“ Bestellung soll in der Reihenfolge zu sagen, sie sind ein einfacher Weg, in dem die Server empfängt und speichert sie intern. Wenn Sie einen single-threaded Plattenproduzenten haben, werden sie in der gleichen Reihenfolge gesendet, in der Sie sie senden.
Sobald Sie mit mehreren Producer-Threads/Hosts beschäftigen, hängt es vollständig davon ab, welche Anfrage zuerst über die Netzwerk, in AWS und in den Backend-Code, der die Anfragen anordnet. Selbst wenn Anfrage A vor Anfrage B empfangen wird, kann Anfrage B den Backend-Code schneller durchlaufen und somit schneller gespeichert werden.
Nun, diese Informationen mit einer spezifischeren Antwort auf Ihre Frage zu geben:
- Realistisch betrachtet, der Back-End-Code ist recht schnell - ein Single-Threaded Kinesis Produzent mit einer guten Anbindung an AWS (wie EC2) kann irgendwo im Bereich von 50-200 single-record
PutRecord
Aufrufe pro Sekunde unterstützen. Basierend darauf ist es sehr wahrscheinlich, dass diese "Grobheit" im Bereich von 5 bis 20 Millisekunden liegt.
Wenn Sie Notwendigkeit genaue Reihenfolge, sollten entweder eine Single-Threaded-Hersteller und/oder mit dem SequenceNumberForOrdering
Parameter
Auf der Produzent Seite, die Datensätze, die auf dem gleichen Shard platziert sind sequentiell.
Wenn jedoch mehrere Datensätze, die in den Stream gepusht werden, auf verschiedenen Shards platziert werden, ist die Reihenfolge für Sie wichtig. Sie sollten den "ApproximateArrivalTimestamp" -Wert jedes Datensatzes auf der Seite des Verbrauchers überprüfen.
In Java ist dieser Zeitstempelwert java.util.Date und die Auflösung ist in Millisekunden.
Jeder Datensatz Amazon Kinesis enthält einen Wert, ApproximateArrivalTimestamp, das gesetzt wird, wenn ein Strom erfolgreich empfängt und speichert einen Datensatz. Dies wird allgemein als serverseitiger Zeitstempel bezeichnet, während ein clientseitiger Zeitstempel festgelegt wird, wenn ein Datenerzeuger den Datensatz in einem Stream erstellt oder sendet (ein Datenproduzent ist eine Datenquelle, die Datensätze in einen Stream einfügt, zum Beispiel mit PutRecords). Der Zeitstempel hat eine Genauigkeit von Millisekunden. Es gibt keine Garantien über die Zeitstempelgenauigkeit, oder dass der Zeitstempel immer größer wird. Beispielsweise können Datensätze in einem Shard oder über einen Stream Zeitstempel haben, die nicht in der richtigen Reihenfolge sind.
http://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html
- 1. AWS kinesis kehrt Aufzeichnungen nicht
- 2. Kinesis Lambda DynamoDB
- 3. AWS Lambda - verwenden Kinesis unter VPC
- 4. AWS Kinesis Firehose - mit Index Rotation (Elasticsearch)
- 5. AWS Kinesis-Client schlägt mit java.lang.NoClassDefFoundError fehl
- 6. Push-Daten von AWS Lambda zu Kinesis Firehose
- 7. Amazon Kinesis Emulator
- 8. Gibt es eine Möglichkeit, eine ElasticSearch-Dokument-ID beim Einfügen über AWS Kinesis Firehose manuell festzulegen?
- 9. Wie können wir AWS Kinesis in einem Webbrowser verwenden?
- 10. Kinesis - Cluster von Verbrauchern
- 11. Kann AWS Kinesis-Stream nicht mit Ansible-Modul erstellen ...!
- 12. Auto-Kabel Kinesis-Stream zu Kinesis Firehose?
- 13. Aws-Cloud-Formationsvorlage: Wie wird StreamName für Kinesis-Ressource bereitgestellt?
- 14. Amazon Kinesis + Integrationstests
- 15. kinesis Abrufen von Daten aus mehreren Scherben
- 16. Präzision der Multiplikation von Floats
- 17. Wie man Daten vom Server zu Kinesis Stream setzt
- 18. Kinesis Firehose Endpunkt fehlt
- 19. Amazon Kinesis KPL SerializationException
- 20. Boto3 las von Kinesis Strom bei Zeitstempel
- 21. assertEquals Präzision
- 22. Bestellung von mnesia-Ereignissen
- 23. Mysql, Bestellung von "Muster"?
- 24. Bestellung von zwei Säulen
- 25. MySQL Bestellung von Hilfe!
- 26. Z-Bestellung von MKAnnotationViews
- 27. acts_as_votable Bestellung von upvotes
- 28. Bestellung 1.17 von Quadratpaare
- 29. Bestellung von Kategorie-Elementen
- 30. Antlr4 - Bestellung von Klauseln