Ich evaluiere derzeit Pusher und PubNub, um eine bidirektionale Echtzeitkommunikation zwischen meinen hauptsächlich Webclients und meinen Servern zu ermöglichen. Beide sehen beeindruckend aus, da die Dokumente von Pusher besser zu sein scheinen und die Skalierbarkeit und Zuverlässigkeit von PubNub eindeutig eine Stärke für sie darstellt.
Da ich jedoch ein Budget verwalte, befürchte ich, dass die Kosten für Pusher & PubNub für uns zu einem Problem werden könnten, und erwäge daher, eine der Open-Source-Alternativen zu verwenden - ich habe mich hauptsächlich mit Socket.io, Faye und jWebSocket.
Ich habe meine Bedenken, obwohl ich den Dienst selbst betreibe:
- Hat jemand zuvor eine Socket.io oder eine andere Open Source-Lösung auf mehrere Server skaliert? PubNub behauptet, 1 Million Nachrichten pro Sekunde zu bearbeiten ! Ich bezweifle etwas, dass Socket.io dies ohne eine unergründliche Anzahl von Servern tun könnte, wenn es überhaupt funktionieren würde.
- Gibt es Funktionen in den kostenpflichtigen Diensten, die ich wahrscheinlich später verpassen werde, wenn ich mich für Open Source-Lösungen entscheide?
- Wird die Latenz wirklich ein Problem sein, wenn ich meinen Server trotzdem auf AWS habe? PubNub befindet sich an mehreren Standorten, daher erwarte ich, dass dies die Latenz verringern sollte. Wenn jedoch eine Nachricht aus den USA nach Japan gesendet werden muss, hilft ein Server in Japan nicht bei der Latenz, da er immer noch auf die eine oder andere Weise dorthin reisen muss.
Danke für den Hinweis.
Antworten:
Faye mit Node.js war für mich sehr einfach einzurichten und schnitt beim Testen anfangs sehr gut ab. Obwohl die Last in meiner App nur ungefähr 10 Anfragen pro Sekunde mit ungefähr 3000 offenen Verbindungen beträgt - als ich sie auf Live Node.js CPU umstellte, war die CPU-Auslastung auf 100% festgelegt (1 Kern von 8 auf meiner Box verfügbar). Ich war ein wenig enttäuscht und erwartete mehr.
Ich überlegte, Redis zu verwenden oder mehr als eine Knoteninstanz auf verschiedenen Ports auszuführen und dann die Last auf meinem Anwendungsende aufzuteilen, aber angesichts der Preise von PubNub schien es viel einfacher, all dies einfach auf diese zu verlagern.
Nachdem ich sowohl Pusher als auch PubNub ausprobiert hatte, stellte ich fest, dass PubNub sowohl für mich als auch für mich eine viel geringere Latenz ist (ich bin in Singapur gehostet und während Pusher für mich ~ 500 ms für mich war, war PubNub für mich ~ 250 ms Hin- und Rückfahrt von meiner Anwendung entfernt). Wenn Sie in den USA gehostet werden, ist der Unterschied wahrscheinlich viel geringer.
Ich habe mir auch Ape-Server angesehen, aber keine guten Tutorials / Dokumentationen zum Einrichten eines Publish / Subscribe-Modells gefunden, also habe ich es übersprungen - aber vielleicht bist du schlauer als ich und hast bessere Erfahrungen :)
quelle