Ich habe einen (Spring-Boot) Web-Service, der eine JSON-Antwort für jede Anfrage generiert. Diese Antwort muss, während sie an den anfragenden Benutzer zurückgegeben wird, auch irgendwo archiviert werden (damit wir wissen, was wir mit dem Benutzer beantwortet haben).Speichern Sie Streaming-Daten - schnell, günstig, zuverlässig und gut für den Massenverbrauch
Der Dienst muss 4.000 Anfragen/Sekunde unterstützen. Daher brauchen wir eine schnelle Archivierungsmethode. Die archivierten Daten würden später von einem Map-Reduce-Job (Batch) verbraucht werden.
Ich möchte wissen, welche Lösung zu verwenden - Kafka, S3, oder jede andere Lösung. Der Service wurde in AWS bereitgestellt. Daher sind Lösungen innerhalb von AWS ideal.
Die Anforderungen sind wie folgt:
- Writes sollte schnell 94K req/s zumindest).
- Schreibvorgänge sollten nicht blockierend sein (so dass die Serviceantwortzeit nicht beeinflusst wird).
- Lesevorgänge müssen nicht schnell sein, sollten aber für Map-Reduction-Jobs geeignet sein.
- Daten sollten widerstandsfähig gegen Serverabstürze usw. sein.
- Sollte nicht zu teuer zum Schreiben/Speichern und Lesen sein.
Es gibt keine data retirement plan
, d.h. die Daten müssen bis zum Ende der Zeit bestehen bleiben.
Welche Lösungen empfehlen Sie?