Czytałem o problemie z C10K, a na szczególną uwagę zasługuje ta część, która odnosi się do asynchronicznego I / O serwera. http://www.kegel.com/c10k.html#aio
Wierzę, że to w zasadzie podsumowuje to, co robi Node.js na serwerze, pozwalając wątkom przetwarzać żądania użytkowników, polegając na przerwaniach I / O (zdarzeniach) w celu powiadamiania wątków o zakończonych zadaniach, a nie tym, że wątek jest odpowiedzialny za pełne zadanie procesora. Wątek może zająć się innymi rzeczami (nieblokującymi) i być powiadamiany o zakończeniu zadania (np. Znalezieniu pliku lub skompresowaniu wideo).
Oznacza to następnie, że wątek jest bardziej „dostępny” dla gniazd, a zatem dla użytkowników na serwerze.
Potem znalazłem to: http://teddziuba.com/2011/10/straight-talk-on-event-loops.html
Autor tutaj twierdzi, że chociaż platforma sterowana zdarzeniami (przerwane wątki) może zwolnić wątki, to tak naprawdę nie zmniejsza nakładu pracy procesora! Uzasadnieniem jest to, że jeśli, powiedzmy, użytkownik zażąda skompresowania przesłanego filmu, procesor nadal musi wykonać tę pracę i będzie blokował się podczas jej wykonywania (dla uproszczenia, zapomnijmy o paralelności tutaj - chyba że wiedzieć lepiej!).
Jestem prostym programistą, nie jestem administratorem serwera ani nic takiego. Chciałbym tylko wiedzieć: czy Node.js jest prezentem od bogów „przetwarzania w chmurze”, czy to wszystko jest na gorącym powietrzu i nie zaoszczędzi czasu i / lub pieniędzy firmom dzięki poprawie skalowalności?
Wielkie dzięki.