Aus meiner Erfahrung kann ich folgendes berichten.
Ich speichere derzeit Benutzer und statistische Klassen in der MongoDb und alles funktioniert gut.
Aber wie speichere ich das Protokoll, das jeder Benutzer erstellt?
Ich dachte an die Verwendung des LogBack SiftingAppender
und delegieren Sie die Protokollinformationen
zur Trennung von MongoDb Collections
. Wie jede MongoDb Collection
die ID des Benutzers haben.
Auf diese Weise muss ich keine erweiterten Mapreduce-Abfragen erstellen, da die Protokolle ordentlich gestapelt sind.
Oder verwenden Sie SiftingAppender
mit einem FileAppender, damit jeder Benutzer eine eigene Protokolldatei hat.
Ich gibt es ein Problem mit diesem, wenn die MongoDB eine Million Log-Sammlungen haben, die jeweils mit der User-ID benannt (ist es überhaupt möglich btw)
Wenn alles in der MongoDb gespeichert ist, macht die MongoDb Master-Slave-Replikation es einfach, wenn ein Master-Knoten stirbt.
Was ist mit dem FileAppender-Ansatz? Es scheint, als gäbe es eine ganze Menge von Protokolldateien zu verwalten. Man könnte sie vielleicht in Ordnern nach dem Alphabet speichern. Ordner A für Benutzer/Kennungen, deren Namen/Kennungen mit A beginnen.
Welche anderen Möglichkeiten gibt es, damit dies funktioniert?