Während amq oder xmpp (Rabbitmq oder Ejabbered, die couchdb als Backends haben könnte) scheint eine gute Passform Echtzeit-Updates über Freund Zustand in einer Social-Gaming-Plattform, wo Updates sind klein, aber häufig, ich kann nicht helfen, aber denken Warum würde CouchDB nicht eine gute Plattform sein, um solche Updates zu liefern? Der Hauptvorteil, den ich mir vorstellen kann, ist die Fähigkeit, Updates basierend auf Freunden und der Verfügbarkeit von Änderungen zu filtern. Das macht die Entwicklung einer solchen Anwendung und deren Verwaltung (einschließlich Replikation) recht einfach im Vergleich zu ampq oder xmpp, wo Sie müssen Überlegen Sie, wie Sie die Pubsub-Knoten verwalten und wer sie zu irgendeinem Zeitpunkt abonniert hat.Warum sollte ich couchdb nicht für Nachrichtenübertragungen oder Echtzeit-Aktivitäten verwenden?
Allerdings kann ich nicht helfen, aber denke, das ist zu gut, um wahr zu sein, kann ich keine Informationen darüber finden, was Couchdb Mängel sind. Irgendwie fühlt es sich an, als würde man MySQL für die Nachrichtenübermittlung verwenden, weshalb ich zögere, es zu benutzen.
Hat jemand Erfahrung mit der Verwendung von Couchdb für solche Anwendungen? Würden Sie eine andere Plattform empfehlen?
also, wenn ich die Updates mit node.js aggregieren und couchdb regelmäßig aktualisieren würde (alle paar Minuten) mit Bulk-Updates nur mit dieser einzigen Instanz von Knoten.js, dann wäre das Aktualisieren nicht mein größtes Problem. Meine Sorge wäre dann, Filtern der Updates mit Ansichten für die vielen Clients Verbindung zu Couchdb. Dies könnte irgendwie gelindert werden, wenn ich eine Datenbank pro Benutzer auf Kosten des Speicherplatzes erstelle und einfach seine Aktualisierungen in diese Datenbank posten, so dass jeder Client ungefilterte Aktualisierungen erhält, wobei die Filterung tatsächlich durch Routing von Nachrichten an dbs –
erfolgt Ja, das ist ein Weg. Sie können auch nur einen Knotenprozeß alle Änderungen abhören lassen und die Filterung der Änderungen bereitstellen, die alle zusätzlichen IO-Latenzzeiten für den Aufruf des View-Servers pro Änderung des Listeners entfernen würden. Es gibt auch Möglichkeiten, atomare Updates mit couchdb zu "fälschen", was die Revisionsprobleme lindern kann. http://www.mikealrogers.com/archives/737 – mikeal
Ich denke, dass hier etwas Verwirrung über den Begriff "update" besteht. Es hört sich für mich so an, als würde der Fragesteller mehr über die Erstellung vieler Nachrichten reden, die nicht unbedingt alle aktualisieren. Der Einwand über "Jedes Update ändert die Revision" könnte daher hier nicht gelten. Vermutlich würde jede Nachricht ein neues "Dokument" erstellen, und alle nachfolgenden "Ansichten" würden diese Informationen nach Bedarf rendern. –