![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Czy ma ktoś doświadczenie z ta technologią ? Szukam informacji ile, na ten czas serwer node.js + socket.io może utrzymać użytkowników.. Z tego co czytałem to przeciętny serwer jest w stanie utrzymać do 64k połączeń. Powiedzmy że mamy uruchomiona aplikacje w node.js, jeden proces i zrobiony jeden socket który ma kilka pokoi. Idea działania to relacja wydarzenia. Użytkownicy wchodzą na taki pokój łącza się z tym socketem i czekają na wiadomości. Z drugiej strony admin tez łączy się z tym socketem i ma możliwość rozsyłania wiadomości do tych użytkowników powiedzmy 100msg/1min. Zakładając że mamy jakiegoś VPS'a z 2-4GB ramu. Czy serwer uciągnie około 20-30k użytkowników ? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Bez zająknięcia. Jak to dobrze zoptymalizujesz to z tymi 30k zmieścisz się w 1GB RAM.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za informacje. Jeśli chodzi o optymalizacje to jeszcze nie jestem w tym obeznany. Dopiero zacząłem się bawić ta technologią i wszystko działa jak na przykładowym tutorialu z chatem na oficjalnej stronie socket.io.
czyli np.
Oczywiście przed wysłaniem emit() jest to zapisywane w mongodb. ale robi to jedna/dwie osoba relacjonujące. Do użytkowników leci przez socket. Wiem że coś takiego na AJAXie który odpytuje MySQL/PHP zaczyna już mulić przy ~20k. Aha, mógłbyś coś polecić odnośnie tej optymalizacji ? Ten post edytował Qss 2.04.2015, 12:45:30 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak będziesz przy każdym requeście coś zapisywać do bazy i będziesz miał ich 30k, no to żadna baza ci na takim sprzęcie nie wytrzyma. Również samo node.js jest 1 wątkowe, co za tym idzie użyje tylko 1 rdzenia z kilku dostępnych. Do tego będziesz potrzebował odpalić swoją aplikacje jako cluster, tyle że wtedy nie będziesz mógł współdzielić emitów, bo sokety będą działać w osobnych procesach, więc będziesz musiał wykorzystać powiedzmy redisa. Jak dopiero zaczynasz, to jeszcze spora droga przed tobą..
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
by_ikar nie no zapis do bazy jest maksymalnie 100 razy na minute, chodzi tylko o to czy przykładowo 2GB ramu wystarczy na obsługę i utrzyma połączenie klient<->serwer (socketem) dla 30k ludzi którzy będą odbierać te informacje. Czyli wysyłka 100msg/min do 30k nasłuchujących na sockecie, a przed wysłaniem do użytkowników wiadomość jest zapisywana w bazie.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) ![]() ![]() |
zawsze może wykorzystać hbase, czy cassandre
![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 6 Dołączył: 2.02.2008 Ostrzeżenie: (10%) ![]() ![]() |
Moim zdaniem do 100k połączeń dasz radę. Jeśli jesteś chętny na jakąś współpracę to zapraszam na PW.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 10:15 |