sql >> Databáze >  >> NoSQL >> Redis

Dostávám duplicitní zprávy v mé seskupené aplikaci node.js/socket.io/redis pub/sub

Bojoval jsem s clusterem a socket.io. Pokaždé, když používám funkci clusteru (používám však vestavěný cluster Nodejs), dostávám spoustu problémů s výkonem a problémy se socket.io.

Když jsem se to snažil prozkoumat, probíral jsem hlášení o chybách a podobně na git socket.io a zdá se, že kdokoli, kdo používá clustery nebo externí nástroje pro vyrovnávání zátěže na svých serverech, má problémy se socket.io.

Zdá se, že to vytváří problém „klient, nikoli handshaken klient by se měl znovu připojit“, což uvidíte, pokud zvýšíte podrobné protokolování. To se často objevuje, když socket.io běží v clusteru, takže si myslím, že se to vrátí zpět k tomuto. Tj. klient se připojí k randomizované instanci v clusteru socket.io pokaždé, když provede nové připojení (při autorizaci provede několik připojení http/socket/flash a další neustále později, když požaduje nová data).

Prozatím jsem se vrátil zpět k používání pouze 1 procesu socket.io najednou, může to být chyba, ale také to může být nedostatek toho, jak je socket.io vytvořen.

Přidáno:Můj způsob, jak to v budoucnu vyřešit, bude přiřadit jedinečný port každé instanci socket.io uvnitř clusteru a poté výběr portu cache na straně klienta.



  1. Jak změním databázi redis?

  2. Jak mohu provádět příkazy v redis, aniž bych dostal vůbec žádnou odpověď?

  3. Vztahy MongoDB:vložit nebo odkazovat?

  4. Redis jako jedinečný generátor atomových id – bezpečný způsob pro webovou aplikaci, jak se vyhnout závodům