Was ist Deepstream.io?

8

Ich habe über Deepstream gelesen & amp; Es scheint eine großartige Lösung für Echtzeitanwendungen zu sein. Ich bin jedoch verwirrt, was Deepstreams eigentliche Rolle ist.

Die Dokumentation für die Kernfunktionen (Datensynchronisierung, Datensätze, Auth, Berechtigungen, Ereignisse, RPC, ...) ist wirklich gut geschrieben, außer dass es Low-Level ist. Ich denke, es fehlt eine Erklärung auf hoher Ebene darüber, wo Deepstream verwendet werden sollte.

Meine Frage ist:

  • Ist Deepstream ein vollwertiges / eigenständiges Backend-Framework für jede echtzeitbasierte Anwendung?
  • oder ist Deepstream eine Serverplattform, die für die Lenkung (Auth, Routing, Caching, Load Balancing) von Microservices (und / oder Principal Application Layers) zu Clients verwendet wird?
  • oder ist es etwas ganz anderes?

Wäre dankbar für eine detaillierte Erklärung, wie Entwickler Deepstream unterscheiden sollten und möglicherweise eine Richtung, wie Deepstream in unsere Anwendungen integriert werden sollte.

Danke.

    
rambossa 22.09.2016, 12:53
quelle

1 Antwort

9

Deepstream ist ein eigenständiger Server, der wie z. Nginx oder irgendeine Datenbank. Es ist über yum / apt für die meisten Linux-Distributionen sowie Windows und MacOS ausführbar.

Ein Deepstream-Server akzeptiert Clientverbindungen über TCP und WebSocket. Clients können sich über SDKs, die derzeit für JS / Node & amp; Java / Android und teilweise / bald verfügbar für IOs (Obj C / Swift), Python und .NET.

Deepstream bietet drei Kernkonzepte:

  • Datensynchronisierung: statusbehaftete und persistente JSON-Objekte, die ganz oder in Teilen manipuliert werden können und über alle hinweg synchronisiert werden verbundene Clients

  • Pub-Sub: Viele-zu-viele-Nachrichten basierend auf Subskriptionen zu Themen

  • Anfrage-Antwort: Frage / Antwort-Workflows

Der Server selbst ist konfigurierbar und verwendet Berechtigungsdateien, um eingehende Nachrichten zu überprüfen, aber er enthält keine andere Logik als diese. Die gesamte Logik wird von "Clients" bereitgestellt, bei denen es sich sowohl um Backend-Prozesse als auch um Endbenutzer handeln kann. Deepstream bietet zahlreiche Funktionen wie Abhören und aktive Abonnements, um die Anforderungen der Benutzer zu erfassen und Daten entsprechend bereitzustellen / umzuwandeln sowie Daten aus Komponenten oder APIs von Drittanbietern zu integrieren und abzurufen.

Dies macht Deepstream sowohl als Echtzeitserver für mobile / Browser- und Desktop-Clients als auch als Backbone für eine Microservice-Architektur

nutzbar

Deepstream kann optional in drei Arten von Systemen integriert werden:

  • Datenbanken können für die langfristige Speicherung und Abfrage von Daten verwendet werden
  • Caches können für den schnellen kurzfristigen Datenzugriff verwendet werden
  • Nachricht Busse können für mehrere Deepstream-Knoten verwendet werden, um miteinander zu kommunizieren

Anschlüsse sind für viele gängige Systeme verfügbar, z. RethinkDB, MongoDB, Redis, AMQP, Kafka oder ElasticSearch und kann auch einfach selbst geschrieben werden. Diese Animation soll einen Eindruck vermitteln, wie Deepstream mit anderen Systemen interagiert

Wenn kein externes System angegeben ist, wird Deepstream als einzelner Knoten ausgeführt und speichert Daten im internen Speicher, speichert sie jedoch nicht auf der Festplatte.

    
wolframhempel 22.09.2016, 14:25
quelle

Tags und Links