/ / Czy wielu asynchronicznych pracowników jest potrzebnych? - node.js, mongodb, asynchroniczne, wieloprocesowe

Czy wielu asynchronicznych pracowników jest niezbędnych? - node.js, mongodb, asynchroniczne, wieloprocesowe

Moja aplikacja używa node.js, ponieważ node.js i Mongo są idealnym dopasowaniem stworzonym w niebie. Ale zastanawiam się nad tym:

Moja aplikacja serwerowa działa w jednym procesie. Node.js jest asynchroniczne, ale jednowątkowe, czy to oznacza, że ​​węzeł nie prześle dwóch zapytań na serwer mongo?

Na serwerze Mongod działa z 5 procesami roboczymi. Czy to konieczne? Czy mogę zmniejszyć to do jednego i działa tak samo dobrze? (A jeśli tak, to jak?)

A może jest sposób, aby efektywnie uruchomić aplikację węzła na kilku procesach.

Odpowiedzi:

1 dla odpowiedzi № 1

oznacza to, że węzeł nie prześle dwóch zapytań jednocześnie do serwer mongo?

  1. Rzeczywiście, Węzeł będzie przesyłać żądania synchronicznie do mongo. Wysyłanie zgłoszeń odbywa się jednak w mgnieniu oka (zwykle w zakresie milisekund).

  2. Wszystko, co się dzieje, dzieje się wmongo-side, który musi wykonać trudne zadanie. Oto, do czego służą procesy robocze mongo i odbywa się równolegle (5 pracowników równa się 5 wątkom) UWAGA: Węzeł nie blokuje, podczas gdy mongo oblicza to reponse

  3. W końcu mongo wysyła odpowiedzi, które przechwytujesz w węźle za pomocą wywołania zwrotnego (asynchronicznego).

p.s: więc nie muszę jeszcze klastra. Jest tak samo asynchroniczny jak on (poza trafieniem w mongo z mnóstwem próśb jest więcej niż prawdopodobne IO, więc "grupowanie" go tak, aby inni cpu mogli dzielić obciążenie, nie będzie w tym przypadku zbyt pomocne.

h


0 dla odpowiedzi nr 2

powinno to w zasadzie odpowiedzieć na twoje pytanie:

http://nodejs.org/api/cluster.html

jeśli nie, to pozwala tworzyć procesy potomne dla aplikacji węzła, które uruchamiają określone części kodu.