Chat-Projekt - load-balance mit sockel.io
Ich bin beteiligt an einem Entwicklungsprojekt für ein chat, wo wir mit node.js socket.io (Zimmer) und mongodb. Wir sind in der Phase der performance-Tests und wir sind sehr besorgt, wenn sich das system muss ein load-Balancing.
Wie können wir entwickeln, wenn unser Projekt braucht es? J ' a erforscht auf NGINX sieht cool aus, aber wir sind im Zweifel, ob löst unser problem, wie das system ein chat, fürchten wir uns vor, die Server sind nicht ~reden~ mit einander richtig ...
Wohin gehen wir, wenn wir brauchen einen Lastenausgleich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um sicherzustellen, dass wir skalieren können, um mehrere Knoten, aber halten Sie Interkonnektivität zwischen verschiedenen clients und mehreren Servern, die ich verwenden redis. Es ist eigentlich sehr einfach zu bedienen und einzurichten.
Was dieser tut, ist, schafft ein pub/sub-system zwischen Ihren Servern zu behalten Ihre verschiedenen socket-clients.
Lesen Sie hier mehr: socket.io-redis
Soweit Umgang mit den verschiedenen Knoten-Servern, gibt es verschiedene Ansätze.
Unter anderem...
Check-out der NPM-Paket mong.socket.io . Es hat die Fähigkeit, zu speichern-Buchse.io-Daten zu mongoDB wie unten;
Oder Sie können die redis-adapter wie dort bereits erwähnt;
Socket.IO Mit mehreren Knoten
Dann verwenden Sie einfach die NGINX-reverse-proxy und alle Knoten Prozesse teilen sollte-Buchse.E /a-Ereignisse mit einander.