Redis
 sql >> база данни >  >> NoSQL >> Redis

Получавам дублиращи се съобщения в моето клъстерирано приложение node.js/socket.io/redis pub/sub

Борих се с cluster и socket.io. Всеки път, когато използвам клъстерна функция (използвам обаче вградения клъстер на Nodejs), получавам много проблеми с производителността и проблеми с socket.io.

Докато се опитвах да проуча това, ровех около докладите за грешки и подобни на socket.io git и всеки, който използва клъстери или външни балансиращи натоварването към своите сървъри, изглежда има проблеми с socket.io.

Изглежда, че създава проблема „клиентът, а не ръкостисканият клиент, трябва да се свърже отново“, който ще видите, ако увеличите подробното регистриране. Това се появява много, когато socket.io работи в клъстер, така че мисля, че се връща към това. Т.е. клиентът се свързва с произволен екземпляр в клъстера socket.io всеки път, когато прави нова връзка (той прави няколко http/socket/flash връзки при оторизиране и повече през цялото време по-късно при запитване за нови данни).

Засега се върнах към използването само на 1 процес на socket.io наведнъж, това може да е грешка, но също така може да е недостатък в начина, по който е изграден socket.io.

Добавено:Моят начин да реша това в бъдеще ще бъде да задам уникален порт на всеки екземпляр socket.io в клъстера и след това да кешира избора на порт от страна на клиента.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да инсталирате и конфигурирате Redis на ElasticBeanstalk

  2. Как NoSQL бази данни се представят върху агрегатни функции (AVG, SUM и т.н.)

  3. Защо има KEYS и ARGV масиви при извикване на Redis Lua скриптове?

  4. Redis Cache в .NET Core 3 изисква ли използването на пакета Stack Exchange?

  5. NodeJS - сигурно свързване с външен Redis сървър