2011-06-28 19 views
15

Rozważam Redis dla części architektury nowego projektu. Będzie składał się z wielu klientów (połączeń node.js) SUBSKRYPCJA poszczególnych kluczy z jednym procesem OPUBLIKUJĄCYM do tych kluczy w razie potrzeby.Redis PUBLIKUJE/SUBSKRYBUJE limity

Jestem ciekawy limitów poleceń PUBLISH/SUBSCRIBE i sposobów ich łagodzenia. Oczywistym ograniczeniem jest liczba otwartych deskryptorów plików na komputerze z Redis, więc w pewnym momencie będę musiał zaimplementować Master-Slave lub Constant Hashing do wielu instancji Redis.

Czy ktoś ma jakieś rozwiązania dotyczące skalowania tej architektury za pomocą PubSub firmy Redis?

Odpowiedz

22

Redis PubSub bardzo łatwo skaluje, ponieważ replikacja Master/Slave automatycznie publikuje wszystkie niewolniki.

Najprostszym sposobem jest załadowanie salda połączeń do node.js za pomocą na przykład HAProxy, uruchomienie slave Redis na każdym serwerze WWW, który synchronizuje się z jednym wzorcem, który publikuje komunikaty.

Nie mogę podać dokładnych liczb, ponieważ zależy to bardzo od systemu bazowego, ale powinno to być bardzo dobre. I nie musisz zarządzać klientami i serwerem, z którym łączą się ręcznie. Oczywiście potrzebujesz sposobu na obsługę stanu sesji, więc i tak być może będziesz musiał to zrobić, ale to dużo łatwiej zrobić w systemie równoważenia obciążenia niż w aplikacji.