2017-12-04 4 views
0

Ich erstelle eine Transportschicht für eine WebApp Frontend. Benutzer können über Mobile Apps, Browser beide verbunden werden. Die Transportschicht ist für mehrere Anwendungen vorgesehen, einschließlich Chat-Anwendungen, mehrseitige Web-Anwendungen, Benachrichtigungs- und E-Mail-Server. Die Skalierung liegt bei 4000 gleichzeitigen Benutzern. Wenige Szenarien Verschiedene Dienste müssen möglicherweise auch miteinander interagieren. B. Chat-Server könnte eine E-Mail senden.Socketcluster mit Pub Sub in Cloud

Ich suche das beste Design für diese Transportschicht. Das gesamte System muss in der Cloud bereitgestellt werden, muss jedoch herstellerunabhängig sein.

Mein Design: 1. Erstellen Sie Sockets über NettoSphere (https://github.com/Atmosphere/nettosphere) oder Netty mit FallBacks für HTTP-Abruf. 2. Verbinden Sie die Socket-Schicht mit einem Pub/Sub wie Redis (für die Verwendung von Cloud Pub/Sub). Jeder funktionale Server (E-Mail, Chat usw.) erhält einen eigenen Kanal.

Zweifel: 1. Übertreibe ich es? Gibt es irgendwelche Ready of Shelf Libraries, die ich benutzen kann? Ich habe gesucht, konnte aber nicht finden. Ich denke, dies sollte ein häufiger Anwendungsfall sein und es sollte etwas von der Stange sein. 2. Wird Java für Java über Cluster skalieren? Oder Soll ich SocketCluster in Node.js verwenden? Ich fühle mich in Java wohler.

Antwort

0

Einfache Pub/Sub ist nicht zu schwierig, um sich von Grund auf mit WebSockets zu implementieren.

Aber sobald Sie eine Authentifizierung und/oder Skalierbarkeit Anforderung einführen, wird das Problem sehr schwierig. Wenn Sie der Meinung sind, dass Ihr System wahrscheinlich eines dieser beiden Features benötigt, kann SocketCluster Ihnen viel Zeit sparen.