Wir erstellen eine XMPP-Anwendung, in der wir ejabberd als unseren Server gewählt haben. Wir haben viele Änderungen auf Protokollebene vorgenommen, um sie unserem Anwendungsfall anzupassen. Wir sind jedoch nicht zufrieden damit, wie Ejabberd Anwendungslogik mit seinen mnesia Backends koppelt. Wir möchten alle mnesia-Tabellen mit Ausnahme derjenigen, die Sitzungen enthalten, auf andere Knoten verschieben, um unser System von der Wartung und dem Debuggen zu entkoppeln und Ressourcenkompromisse mit der ejabberd-Steuerungslogik zu vermeiden. Wir wissen, dass Latenz leiden wird, wenn dies der Fall ist. Unsere Frage ist, ist es ein besseres Design mit diesem Ansatz? Werden wir mehr Probleme mit dem Vertrieb haben? Oder was noch? Bitte geben Sie einen detaillierten Grund für Ihre Option an.Ejabberd verbindet Anwendungslogik mit Backends
0
A
Antwort
0
Eigentlich sind Module, die Daten speichern, rund um das Konzept des Backends konzipiert. Sie sind nicht zu Mnesia eng. Sie können die API für jedes Modul im vorhandenen Code überprüfen. Sie werden sehen, dass normalerweise Module zum Speichern in relationaler DB, Riak, Redis usw. verfügbar sind.
Sie können genau dieselbe API verwenden, um eigene benutzerdefinierte Backends zu implementieren.
Verwandte Themen
- 1. Geschäfts- und Anwendungslogik?
- 2. Anwendungslogik (Platz für Authentifizierung/Autorisierung)
- 3. Anwendungslogik für Fakturierung und Abonnements?
- 4. ejabberd - mucsub mit ejabberdctl
- 5. eJabberd API mit OAuth2
- 6. Reaktive Backends/Reaktive Serverarchitekturen
- 7. Wie Videoanruf mit Ejabberd machen?
- 8. Ejabberd Check-Chiffre mit openssl
- 9. ejabberd gescheitert Zusammenstellung mit Elixir
- 10. nginx Reverse-Proxy mehrere Backends
- 11. nxt-py keine Backends Fehler
- 12. Front-Controller beste Möglichkeit, Parameter mit Anwendungslogik zu verknüpfen?
- 13. Einstellen mehrerer Django Cache-Backends
- 14. Ejabberd - Offline-Nachrichten in mysql speichern
- 15. ejabberd Dateiübertragung fehlschlagen
- 16. eJabberD TLS-Treiberfehler
- 17. mit #hash Arbeiten verbindet
- 18. Aktualisierung mit 2 verbindet
- 19. Leapfrogging mit natürlichen verbindet
- 20. selbst verbindet mit Aggregatfunktion
- 21. Unterstützt ejabberd Offline-Dateiübertragungen?
- 22. Ejabberd postgreSql Verbindung
- 23. Ejabberd mod_mam Fehler
- 24. Ejabberd Push Notification Konfiguration
- 25. ejabberd add_rosteritem process_rosteritems
- 26. Ejabberd Installationsproblem für Mac
- 27. Teilnehmer in Chatrooms mit Ejabberd hinzufügen
- 28. XMPP SASL-Authentifizierung auf Ejabberd mit PHP
- 29. rabbitmq - Erlang Client-Integration mit Ejabberd-Modul
- 30. XMPP libstrophe Client-Verbindung mit ejabberd
Was sagen Sie über das Verschieben der Tabellen zu Nicht-Ejabberd-Knoten, damit sie von einem anderen Dienst verwendet werden können? Auf diese Weise liest und schreibt ejabberd das Backend durch Nachrichtenübermittlung unter Verwendung einer speziellen Nachrichten-API. –
Nun, Sie können Backend-Module schreiben, die dank der ejabberd-Backend-API alles machen, was Sie wollen. Tatsächlich können diese Backend-Module eine HTTP/ReST-API aufrufen. Dies ist eine ziemlich häufige Verwendung für diese ejabberd-Backend-API. –