Ich habe einen Java -Microservice, der Nachrichten vom Kafka -Thema konsumiert. Nach der Ausführung der Geschäftslogik bestehe ich die Nachrichten in der AWS Open -Suche. Im Codefluss verarbeite ich die eingehende Stapel von Nutzlasten und füge diese Dokumente in die offene Suche ein. Die eingehenden Nachrichten enthalten Status des Ereignisses wie -> Start, in_Progress, Halt, beendet. Es gibt mehrere eingehende Nachrichten mit verschiedenen Zuständen für eine eindeutige ID. < /P>
Mein Anwendungsfall ist. Als Teil der Lösung behalte ich eine Warteschlange und füge alle eindeutigen IDs hinzu, die den Zustand beenden. Ereignisse. Manchmal, wenn eine ID mit 6 Ereignissen verknüpft ist, haben nur 3 Ereignisse einen Wert für die Flagge. Manchmal werden selbst nicht alle Ereignisse für eine ID mit dem Flag aktualisiert. Eine der Lösung besteht darin, den Index vor der Aktualisierung der Abfrage zu aktualisieren, aber das ist wirklich teuer, da im Index Millionen von Dokumenten vorhanden sind. Wenn also der Microservice stoppt und neu startet, verschwindet meine lokale Warteschlange vor dem Update (Lösung dafür wäre, Redis -Cache und ID zu speichern, aber ich muss mich wieder um die Parallelität kümmern, da mehrere Instanzen von Microservices ausgeführt werden. Der Zweck dafür ist es, den Speicher von der offenen Suche zu befreien. Es ist ein geplant bei der Mitternacht. Reindenxing beginnt mit den Kriterien, dass nur ausgegebene = falsche Dokumente auf den neuen Index übertragen werden, und sobald die Rindexing abgeschlossen ist, wird der alte Index gelöscht. /> Wie können wir mit Ereignissen umgehen, die diese im letzten Zeitplan aktualisiert haben, aber zuvor bei der Reindexing begonnen hat.
AWS Öffnen Sie die Suche nicht aktualisiert die vollständige Kette von Ereignissen mit updateByQuery ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post